
As we can't extend our grenade job timeout past 3 hours, and we have some fairly log running jobs, that essentially means we need to find time that is not absolutely necessary in the entire test run in order to reduce load. Disabling cleaning for the grenade tests as well as setting a regex for the basic server ops as opposed to basic network ops which can take as much as 3x the amount of time that the basic test takes. Change-Id: Ib795e6dc3ad1f484f79bee81a5bcfdb8c3434fa1
161 lines
7.8 KiB
YAML
161 lines
7.8 KiB
YAML
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
# 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: primary
|
|
name: Autoconverted job legacy-grenade-dsvm-ironic-multinode-multitenant from old
|
|
job gate-grenade-dsvm-ironic-multinode-multitenant-ubuntu-xenial
|
|
tasks:
|
|
|
|
# NOTE(TheJulia): Python supports recompiling bytecode if a precompiled
|
|
# (.pyc) file is written to disk. Python will automatically recompile
|
|
# should that file disappear and attempt to load and use that bytecode.
|
|
# This can lead to unexpected and undesirable behavior such as python
|
|
# crashing.
|
|
#
|
|
# As this job scenario upgrades across possible structural changes to
|
|
# python modules, and operates in a mixed environment between releases
|
|
# it is a good idea to prevent scenarios where newer modules installed
|
|
# by packages are leveraged by un-upgraded services because their
|
|
# underlying python packages have been updated during runtime.
|
|
#
|
|
# This is unique to Ironic's rolling upgrade grenade job, as Nova is
|
|
# excluded from being upgraded in the stack, and Ironic is left in
|
|
# a half-upgraded situation. The net result of which is we have an
|
|
# unstable Nova installation.
|
|
# https://bugs.launchpad.net/ironic/+bug/1744139
|
|
#
|
|
# TODO(TheJulia): We either need to find a better way to test rolling
|
|
# upgrades. Something which supports virtualenvs would be ideal, as
|
|
# well as something that allows us greater upgrade order control as
|
|
# the Ironic upgrade sequence is problematic and breaks towards the end
|
|
# of every cycle.
|
|
- shell:
|
|
cmd: |
|
|
echo 'DefaultEnvironment="PYTHONDONTWRITEBYTECODE=1"' >>/etc/systemd/system.conf
|
|
systemctl daemon-reexec
|
|
become: yes
|
|
|
|
- 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://git.openstack.org/openstack/ironic"
|
|
|
|
EOF
|
|
chdir: '{{ ansible_user_dir }}/workspace'
|
|
environment: '{{ zuul | zuul_legacy_vars }}'
|
|
|
|
- shell:
|
|
cmd: |
|
|
cat << 'EOF' >> ironic-extra-vars
|
|
export PROJECTS="openstack-dev/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 BUILD_TIMEOUT
|
|
|
|
export GRENADE_PLUGINRC+=$'\n'"enable_grenade_plugin networking-generic-switch https://git.openstack.org/openstack/networking-generic-switch"
|
|
|
|
export DEVSTACK_GATE_TOPOLOGY="multinode"
|
|
|
|
# networking-generic-switch requires sudo to execute ovs-vsctl commands
|
|
export DEVSTACK_GATE_REMOVE_STACK_SUDO=0
|
|
export PROJECTS="openstack/networking-generic-switch $PROJECTS"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin networking-generic-switch git://git.openstack.org/openstack/networking-generic-switch"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_USE_LINK_LOCAL=True"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"OVS_PHYSICAL_BRIDGE=brbm"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"PHYSICAL_NETWORK=mynetwork"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_NETWORK_NAME=ironic-provision"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_SUBNET_PREFIX=10.0.5.0/24"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_SUBNET_GATEWAY=10.0.5.1"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_PLUGIN=ml2"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_USE_PROVIDERNET_FOR_PUBLIC=False"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"ENABLE_TENANT_VLANS=True"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_ML2_TENANT_NETWORK_TYPE=vlan"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"TENANT_VLAN_RANGE=100:150"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_NETWORK_INTERFACES=flat,neutron"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_NETWORK_INTERFACE=neutron"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_AUTOMATED_CLEAN_ENABLED=False"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
|
|
export DEVSTACK_GATE_TEMPEST_REGEX=test_server_basic_ops
|
|
|
|
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=4
|
|
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-tempest-plugin $PROJECTS"
|
|
export PROJECTS="openstack/python-ironicclient $PROJECTS"
|
|
export PROJECTS="openstack/pyghmi $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 DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEFAULT_DEPLOY_INTERFACE=direct"
|
|
|
|
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
|
|
|
|
# the direct deploy interface requires Swift temporary URLs
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"SWIFT_ENABLE_TEMPURLS=True"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"SWIFT_TEMPURL_KEY=secretkey"
|
|
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
|
|
|
|
export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
|
|
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=7"
|
|
|
|
# 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 git://git.openstack.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 }}'
|