Native zuulv3 grenade job for ironic

Based on the native 'grenade' job

Change-Id: Ia51b32a6499b5e1d37197e6d21556344a85d3b5e
This commit is contained in:
Iury Gregory Melo Ferreira 2020-01-17 16:00:54 +01:00
parent 2e43e83e50
commit 90777c1277
7 changed files with 78 additions and 206 deletions

View File

@ -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

View File

@ -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 }}'

View File

@ -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

View File

@ -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 }}'

View File

@ -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

View File

@ -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

View File

@ -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