3dfce5f2de
It's just a library we consume, there is no reason to use its git head. Currently 1.4.0 is breaking us. Story: #2006301 Task: #36014 Change-Id: Ib1b1e32bc60d7ec271098dcd17086f79518c09df
169 lines
8.2 KiB
YAML
169 lines
8.2 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://opendev.org/openstack/ironic"
|
|
|
|
EOF
|
|
chdir: '{{ ansible_user_dir }}/workspace'
|
|
environment: '{{ zuul | zuul_legacy_vars }}'
|
|
|
|
- shell:
|
|
cmd: |
|
|
|
|
# Precreate brbm so that it is created before neutron services are started, as they fail if it
|
|
# is not present
|
|
DEBIAN_FRONTEND=noninteractive sudo -E apt-get --option Dpkg::Options::=--force-confold --assume-yes install openvswitch-switch
|
|
sudo systemctl restart openvswitch-switch
|
|
sudo ovs-vsctl -- --may-exist add-br brbm
|
|
|
|
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 BUILD_TIMEOUT
|
|
|
|
export GRENADE_PLUGINRC+=$'\n'"enable_grenade_plugin networking-generic-switch https://opendev.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 https://opendev.org/openstack/networking-generic-switch"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_USE_LINK_LOCAL=True"
|
|
export DEVSTACK_LOCAL_CONFIG+=$'\n'"OVS_BRIDGE_MAPPINGS=mynetwork:brbm,public:br_ironic_vxlan"
|
|
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'"PUBLIC_BRIDGE=br_ironic_vxlan"
|
|
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_DEFAULT_BOOT_OPTION=local"
|
|
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/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 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 }}'
|