From 90777c1277325b5c2a7e370e3f9156f64597a2b3 Mon Sep 17 00:00:00 2001 From: Iury Gregory Melo Ferreira Date: Fri, 17 Jan 2020 16:00:54 +0100 Subject: [PATCH] Native zuulv3 grenade job for ironic Based on the native 'grenade' job Change-Id: Ia51b32a6499b5e1d37197e6d21556344a85d3b5e --- doc/source/contributor/jobs-description.rst | 2 +- playbooks/legacy/grenade-dsvm-ironic/run.yaml | 121 ------------------ playbooks/legacy/ironic-dsvm-base/post.yaml | 15 --- playbooks/legacy/ironic-dsvm-base/pre.yaml | 22 ---- zuul.d/ironic-jobs.yaml | 75 +++++++++++ zuul.d/legacy-ironic-jobs.yaml | 45 ------- zuul.d/project.yaml | 4 +- 7 files changed, 78 insertions(+), 206 deletions(-) delete mode 100644 playbooks/legacy/grenade-dsvm-ironic/run.yaml delete mode 100644 playbooks/legacy/ironic-dsvm-base/post.yaml delete mode 100644 playbooks/legacy/ironic-dsvm-base/pre.yaml diff --git a/doc/source/contributor/jobs-description.rst b/doc/source/contributor/jobs-description.rst index 24b4fa2174..a2ca0fe78c 100644 --- a/doc/source/contributor/jobs-description.rst +++ b/doc/source/contributor/jobs-description.rst @@ -24,7 +24,7 @@ The description of each jobs that runs in the CI when you submit a patch for * - ironic-tempest-functional-python3 - Deploys Ironic in standalone mode and runs tempest functional tests that matches the regex `ironic_tempest_plugin.tests.api` under Python3 - * - ironic-grenade-dsvm + * - ironic-grenade - Deploys Ironic in a DevStack and runs upgrade for all enabled services. * - ironic-grenade-dsvm-multinode-multitenant - Deploys Ironic in a multinode DevStack and runs upgrade for all enabled diff --git a/playbooks/legacy/grenade-dsvm-ironic/run.yaml b/playbooks/legacy/grenade-dsvm-ironic/run.yaml deleted file mode 100644 index 080287a121..0000000000 --- a/playbooks/legacy/grenade-dsvm-ironic/run.yaml +++ /dev/null @@ -1,121 +0,0 @@ -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# NOTE(sambetts) DO NOT UPDATE this job when you update the other jobs with -# changes related to the current branch. The devstack local config defined in -# this job is run against the last (old) version of the devstack plugin in the -# grenade steps. -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -- hosts: all - name: Autoconverted job legacy-grenade-dsvm-ironic from old job gate-grenade-dsvm-ironic-ubuntu-xenial-nv - tasks: - - - name: Show the environment - shell: - cmd: | - env - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - cat << 'EOF' >> ironic-vars-early - # Set this early so that we do not have to be as careful with builder ordering in jobs. - export GRENADE_PLUGINRC="enable_grenade_plugin ironic https://opendev.org/openstack/ironic" - - EOF - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - cat << 'EOF' >> ironic-extra-vars - export PROJECTS="openstack/grenade $PROJECTS" - export DEVSTACK_GATE_GRENADE=pullup - export DEVSTACK_GATE_OS_TEST_TIMEOUT=2600 - export DEVSTACK_GATE_TEMPEST_BAREMETAL_BUILD_TIMEOUT=1200 - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BUILD_DEPLOY_RAMDISK=False" - export DEVSTACK_GATE_TLSPROXY=0 - export DEVSTACK_GATE_USE_PYTHON3=True - export BUILD_TIMEOUT - - # Standardize VM size for each supported ramdisk - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa" - - EOF - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - cat << 'EOF' >> ironic-vars-early - # use tempest plugin - export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic-tempest-plugin'" - export TEMPEST_CONCURRENCY=1 - EOF - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - set -e - set -x - export PROJECTS="openstack/ironic $PROJECTS" - export PROJECTS="openstack/ironic-lib $PROJECTS" - export PROJECTS="openstack/ironic-python-agent $PROJECTS" - export PROJECTS="openstack/ironic-python-agent-builder $PROJECTS" - export PROJECTS="openstack/ironic-tempest-plugin $PROJECTS" - export PROJECTS="openstack/python-ironicclient $PROJECTS" - export PROJECTS="openstack/virtualbmc $PROJECTS" - export PYTHONUNBUFFERED=true - export DEVSTACK_GATE_TEMPEST=1 - export DEVSTACK_GATE_IRONIC=1 - export DEVSTACK_GATE_NEUTRON=1 - export DEVSTACK_GATE_VIRT_DRIVER=ironic - export DEVSTACK_GATE_CONFIGDRIVE=1 - export DEVSTACK_GATE_IRONIC_DRIVER=ipmi - export BRANCH_OVERRIDE="{{ zuul.override_checkout | default('default') }}" - if [ "$BRANCH_OVERRIDE" != "default" ] ; then - export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE - fi - - if [[ "$ZUUL_BRANCH" != "stable/ocata" && "$BRANCH_OVERRIDE" != "stable/ocata" ]]; then - export DEVSTACK_GATE_TLSPROXY=1 - fi - - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1" - - export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0 - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False" - - # NOTE(TheJulia): Keep the runtime down by disabling cleaning - # the nodes and focus on the server related tests as opposed - # to network scenario testing - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_AUTOMATED_CLEAN_ENABLED=False" - export DEVSTACK_GATE_TEMPEST_REGEX=test_server_basic_ops - - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=7" - - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_REQUIRE_AGENT_TOKEN=False" - - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEFAULT_BOOT_OPTION=netboot" - - # Ensure the ironic-vars-EARLY file exists - touch ironic-vars-early - # Pull in the EARLY variables injected by the optional builders - source ironic-vars-early - - export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic https://opendev.org/openstack/ironic" - - # Ensure the ironic-EXTRA-vars file exists - touch ironic-extra-vars - # Pull in the EXTRA variables injected by the optional builders - source ironic-extra-vars - - cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh - ./safe-devstack-vm-gate-wrap.sh - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' diff --git a/playbooks/legacy/ironic-dsvm-base/post.yaml b/playbooks/legacy/ironic-dsvm-base/post.yaml deleted file mode 100644 index e07f5510ae..0000000000 --- a/playbooks/legacy/ironic-dsvm-base/post.yaml +++ /dev/null @@ -1,15 +0,0 @@ -- hosts: primary - tasks: - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/logs/** - - --include=*/ - - --exclude=* - - --prune-empty-dirs diff --git a/playbooks/legacy/ironic-dsvm-base/pre.yaml b/playbooks/legacy/ironic-dsvm-base/pre.yaml deleted file mode 100644 index c2530b2bfa..0000000000 --- a/playbooks/legacy/ironic-dsvm-base/pre.yaml +++ /dev/null @@ -1,22 +0,0 @@ -- hosts: primary - name: Clone devstack-gate to /opt/git - tasks: - - name: Ensure legacy workspace directory - file: - path: '{{ ansible_user_dir }}/workspace' - state: directory - - shell: - cmd: | - set -e - set -x - cat > clonemap.yaml << EOF - clonemap: - - name: openstack/devstack-gate - dest: devstack-gate - EOF - /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \ - https://opendev.org \ - openstack/devstack-gate - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' diff --git a/zuul.d/ironic-jobs.yaml b/zuul.d/ironic-jobs.yaml index b381a12823..54403e3821 100644 --- a/zuul.d/ironic-jobs.yaml +++ b/zuul.d/ironic-jobs.yaml @@ -647,3 +647,78 @@ s-container: True s-object: True s-proxy: True + +- job: + name: ironic-grenade + parent: grenade + timeout: 10800 + irrelevant-files: + - ^driver-requirements.txt$ + - ^.*\.rst$ + - ^api-ref/.*$ + - ^doc/.*$ + - ^install-guide/.*$ + - ^ironic/locale/.*$ + - ^ironic/tests/.*$ + - ^releasenotes/.*$ + - ^setup.cfg$ + - ^tools/.*$ + - ^tox.ini$ + required-projects: + - openstack/grenade + - openstack/ironic + - openstack/ironic-python-agent + - openstack/ironic-python-agent-builder + - openstack/ironic-tempest-plugin + - openstack/virtualbmc + vars: + grenade_devstack_localrc: + shared: + DEFAULT_INSTANCE_TYPE: baremetal + FORCE_CONFIG_DRIVE: True + INSTALL_TEMPEST: False + VIRT_DRIVER: ironic + BUILD_TIMEOUT: 1200 + IRONIC_BAREMETAL_BASIC_OPS: True + IRONIC_BUILD_DEPLOY_RAMDISK: False + IRONIC_CALLBACK_TIMEOUT: 600 + IRONIC_DEPLOY_DRIVER: ipmi + IRONIC_INSPECTOR_BUILD_RAMDISK: False + IRONIC_RAMDISK_TYPE: tinyipa + IRONIC_TEMPEST_WHOLE_DISK_IMAGE: False + IRONIC_VM_COUNT: 6 + IRONIC_VM_EPHEMERAL_DISK: 1 + IRONIC_VM_SPECS_RAM: 384 + IRONIC_DEFAULT_BOOT_OPTION: netboot + IRONIC_AUTOMATED_CLEAN_ENABLED: False + IRONIC_REQUIRE_AGENT_TOKEN: False + Q_AGENT: openvswitch + Q_ML2_TENANT_NETWORK_TYPE: vxlan + EBTABLES_RACE_FIX: True + old: + IRONIC_VM_LOG_DIR: '{{ devstack_bases.old }}/ironic-bm-logs' + grenade_tempest_concurrency: 1 + grenade_test_timeout: 2600 + devstack_plugins: + ironic: https://opendev.org/openstack/ironic + devstack_services: + c-api: False + c-bak: False + c-sch: False + c-vol: False + cinder: False + ir-api: True + ir-cond: True + tempest_plugins: + - ironic-tempest-plugin + tempest_test_regex: 'test_server_basic_ops' + tox_envlist: all + tempest_concurrency: 1 + zuul_copy_output: + '{{ devstack_bases.old }}/ironic-bm-logs': logs + +# Keeping till we can rename the job on grenade +- job: + name: ironic-grenade-dsvm + parent: ironic-grenade + timeout: 10800 diff --git a/zuul.d/legacy-ironic-jobs.yaml b/zuul.d/legacy-ironic-jobs.yaml index 1ae8342b46..cfc2ca2671 100644 --- a/zuul.d/legacy-ironic-jobs.yaml +++ b/zuul.d/legacy-ironic-jobs.yaml @@ -1,31 +1,3 @@ -- job: - name: legacy-ironic-dsvm-base - parent: legacy-dsvm-base - irrelevant-files: - - ^driver-requirements.txt$ - - ^.*\.rst$ - - ^api-ref/.*$ - - ^doc/.*$ - - ^install-guide/.*$ - - ^ironic/locale/.*$ - - ^ironic/tests/.*$ - - ^releasenotes/.*$ - - ^setup.cfg$ - - ^tools/.*$ - - ^tox.ini$ - # NOTE: When adding to 'required-projects' also need to add a corresponding - # "export PROJECTS=..." line in all the playbooks/legacy/*/run.yaml files - required-projects: - - openstack/ironic - - openstack/ironic-lib - - openstack/ironic-python-agent - - openstack/ironic-python-agent-builder - - openstack/ironic-tempest-plugin - - openstack/python-ironicclient - - openstack/virtualbmc - pre-run: playbooks/legacy/ironic-dsvm-base/pre.yaml - post-run: playbooks/legacy/ironic-dsvm-base/post.yaml - # TODO(TheJulia): When we migrate to a non-legacy job, we will need to set the BUILD_TIMEOUT # and the DEVSTACK_GATE_TEMPEST_BAREMETAL_BUILD_TIMEOUT to 1200 seconds to prevent # needless CI job timeouts as the scale of the job is greater than a normal test jobs. @@ -57,22 +29,6 @@ pre-run: playbooks/legacy/ironic-dsvm-base-multinode/pre.yaml post-run: playbooks/legacy/ironic-dsvm-base-multinode/post.yaml -# TODO(TheJulia): When we migrate to a non-legacy job, we will need to set the BUILD_TIMEOUT -# and the DEVSTACK_GATE_TEMPEST_BAREMETAL_BUILD_TIMEOUT to 1200 seconds to prevent -# needless CI job timeouts as the scale of the job is greater than a normal test jobs. -- job: - name: ironic-grenade-dsvm - parent: legacy-ironic-dsvm-base - run: playbooks/legacy/grenade-dsvm-ironic/run.yaml - timeout: 10800 - required-projects: - - openstack/grenade - - openstack/devstack-gate - - openstack/ironic - - openstack/ironic-lib - - openstack/ironic-python-agent - - openstack/python-ironicclient - - openstack/virtualbmc - job: name: ironic-grenade-dsvm-multinode-multitenant @@ -88,4 +44,3 @@ - openstack/networking-generic-switch - openstack/python-ironicclient - openstack/virtualbmc - diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index d63bd36a3d..379e0c3d14 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -12,7 +12,7 @@ - ironic-tox-unit-with-driver-libs - ironic-standalone - ironic-tempest-functional-python3 - - ironic-grenade-dsvm + - ironic-grenade # Temporary disable voting because of end of cycle CI instability. - ironic-grenade-dsvm-multinode-multitenant: voting: false @@ -50,7 +50,7 @@ - ironic-tox-unit-with-driver-libs - ironic-standalone - ironic-tempest-functional-python3 - - ironic-grenade-dsvm + - ironic-grenade # removing from voting due to end of cycle gate instability. # - ironic-grenade-dsvm-multinode-multitenant - ironic-tempest-partition-bios-redfish-pxe