project-config/jenkins/jobs/ironic.yaml
Anton Arefiev 98fe4b16c5 Decrease cache sync time in inspector discovery job
We are deleting node from ironic for simulate node discovery,
so it's possible race when node cache become inconsistency.

This change decrease period time from default 60 to 5 sec to avoid
cache inconsistency.

Change-Id: I6af4dc6acebb673d256940278ca94a657774cdf9
2016-11-03 11:37:32 +02:00

1170 lines
40 KiB
YAML

- builder:
name: ironic-extra-vars
builders:
- shell: |
cat << 'EOF' >> ironic-extra-vars
{script}
EOF
- builder:
name: ironic-grenade
builders:
- ironic-extra-vars:
script: |
export PROJECTS="openstack-dev/grenade $PROJECTS"
export DEVSTACK_GATE_GRENADE=pullup
export DEVSTACK_GATE_OS_TEST_TIMEOUT=2400
export DEVSTACK_GATE_TEMPEST_BAREMETAL_BUILD_TIMEOUT=1200
export GRENADE_PLUGINRC="enable_grenade_plugin ironic https://git.openstack.org/openstack/ironic"
- builder:
name: ironic-client-from-source
builders:
- ironic-extra-vars:
script: |
export DEVSTACK_PROJECT_FROM_GIT="python-ironicclient,$DEVSTACK_PROJECT_FROM_GIT"
- builder:
name: ironic-lib-from-source
builders:
- ironic-extra-vars:
script: |
export DEVSTACK_PROJECT_FROM_GIT="ironic-lib,$DEVSTACK_PROJECT_FROM_GIT"
- builder:
name: ironic-pygmi-from-source
builders:
- ironic-extra-vars:
script: |
export DEVSTACK_PROJECT_FROM_GIT="pyghmi,$DEVSTACK_PROJECT_FROM_GIT"
- builder:
name: ironic-virtualbmc-from-source
builders:
- ironic-extra-vars:
script: |
export DEVSTACK_PROJECT_FROM_GIT="virtualbmc,$DEVSTACK_PROJECT_FROM_GIT"
- builder:
name: ironic-deploy-with-IPA
builders:
- ironic-extra-vars:
script: |
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
# Support for non-CoreOS IPA ramdisks was added in Mitaka
if [ "$ZUUL_BRANCH" != "stable/liberty" ] ; then
# Standardize VM size for each supported ramdisk
case "{ramdisk-type}" in
'tinyipa')
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
;;
'tinyipa256')
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
;;
'coreos')
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
;;
# if using a ramdisk without a known good value, use the devstack
# default by not exporting any value for IRONIC_VM_SPECS_RAM
esac
else
# For kilo and liberty, we still need 1280mb of ram as
# we only have the CoreOS ramdisk.
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
fi
- builder:
name: ironic-ipxe-disabled
builders:
- ironic-extra-vars:
script: |
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_IPXE_ENABLED=False"
- builder:
name: ironic-tempest-full
builders:
- ironic-extra-vars:
script: |
export DEVSTACK_GATE_TEMPEST_FULL=1
- builder:
name: ironic-tempest-regex
builders:
- ironic-extra-vars:
script: |
export DEVSTACK_GATE_TEMPEST_REGEX="{tempest-regex}"
- builder:
name: ironic-multitenant
builders:
- ironic-extra-vars:
script: |
export DEVSTACK_GATE_OS_TEST_TIMEOUT=2400
# 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'"Q_PLUGIN_EXTRA_CONF_PATH=/etc/neutron/plugins/ml2"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_PLUGIN_EXTRA_CONF_FILES['networking-generic-switch']=ml2_conf_genericswitch.ini"
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_GATE_TEMPEST_REGEX=baremetal_multitenancy
- builder:
name: ironic-multinode
builders:
- ironic-extra-vars:
script: |
export DEVSTACK_GATE_TOPOLOGY="multinode"
- builder:
name: ironic-inspector-enabled
builders:
- ironic-extra-vars:
script: |
export PROJECTS="openstack/ironic-inspector $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic-inspector git://git.openstack.org/openstack/ironic-inspector"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic-inspector'"
export IRONIC_INSPECTOR_AUTO_DISCOVERY={inspector-auto-discovery}
if [ "$IRONIC_INSPECTOR_AUTO_DISCOVERY" == "1" ]; then
# discovery test requires sudo for iptables and virsh
export DEVSTACK_GATE_REMOVE_STACK_SUDO=0
# enable enroll hook
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_NODE_NOT_FOUND_HOOK=enroll"
# we are deleting node from ironic for simulate node discovery,
# so inspector has to sync cache asap
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_CLEAN_UP_PERIOD=5"
fi
- builder:
name: ironic-inspector-client-from-source
builders:
- ironic-extra-vars:
script: |
export PROJECTS="openstack/python-ironic-inspector-client $PROJECTS"
export DEVSTACK_PROJECT_FROM_GIT="python-ironic-inspector-client,$DEVSTACK_PROJECT_FROM_GIT"
- builder:
name: ironic-postgres-enabled
builders:
- ironic-extra-vars:
script: |
export DEVSTACK_GATE_POSTGRES=1
- builder:
# NOTE(adam_g): This is a temporary macro until we can define the Ironic d-s-g job in a
# standard, minimal fashion.
name: devstack-virtual-ironic
builders:
- shell: |
#!/bin/bash -xe
export PROJECTS="openstack/ironic $PROJECTS"
export PROJECTS="openstack/ironic-lib $PROJECTS"
export PROJECTS="openstack/ironic-python-agent $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={deploy_driver}
export TEMPEST_CONCURRENCY=1
export BRANCH_OVERRIDE={branch-override}
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
if [ "{image-type}" == "wholedisk" ] ; then
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
else
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
fi
if [ -n "{build-ramdisk}" ] ; then
export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
else
export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
fi
export DEVSTACK_PROJECT_FROM_GIT=""
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT={bm-vm-count}"
# use tempest plugin
if [[ "$ZUUL_BRANCH" != "master" ]] ; then
# NOTE(jroll) if this isn't a patch against master, then
# fetch master to install the plugin
export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS=git+git://git.openstack.org/openstack/ironic"
else
# on master, use the local change, so we can pick up any changes to the plugin
export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS=/opt/stack/new/ironic"
fi
# devstack plugin didn't exist until mitaka
if [[ "$ZUUL_BRANCH" != "stable/liberty" ]] ; then
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
fi
# 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
- job-template:
name: '{pipeline}-ironic-dsvm-functional{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 80
- timestamps
builders:
- link-logs
- net-info
- devstack-checkout
- shell: |
#!/bin/bash -xe
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 TEMPEST_CONCURRENCY=2
export BRANCH_OVERRIDE={branch-override}
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
# tempest-lib support was added in Mitaka. Fall back to tempest for other stable branches.
if [ "$ZUUL_BRANCH" == "stable/liberty" ] ; then
export DEVSTACK_GATE_TEMPEST_REGEX='baremetal'
else
export DEVSTACK_GATE_TEMPEST_ALL_PLUGINS=1
export DEVSTACK_GATE_TEMPEST_REGEX='ironic'
fi
export PROJECTS="openstack/ironic $PROJECTS"
export PROJECTS="openstack/ironic-python-agent $PROJECTS"
export DEVSTACK_LOCAL_CONFIG="enable_plugin ironic git://git.openstack.org/openstack/ironic"
# No post_test_hook is needed while tests live in tempest
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-ironicclient-dsvm-functional{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 80
- timestamps
builders:
- link-logs
- net-info
- devstack-checkout
- shell: |
#!/bin/bash -xe
export PYTHONUNBUFFERED=true
export DEVSTACK_GATE_TEMPEST=0
export DEVSTACK_PROJECT_FROM_GIT=python-ironicclient
export OVERRIDE_ENABLED_SERVICES=key,mysql,rabbit,ir-api,ir-cond
export BRANCH_OVERRIDE={branch-override}
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
export PROJECTS="openstack/ironic openstack/python-ironicclient $PROJECTS"
export DEVSTACK_LOCAL_CONFIG="enable_plugin ironic git://git.openstack.org/openstack/ironic"
function post_test_hook {{
# Configure and run functional tests
$BASE/new/python-ironicclient/ironicclient/tests/functional/hooks/post_test_hook.sh
}}
export -f post_test_hook
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-ironic-inspector-dsvm-{ramdisk}{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 80
- timestamps
builders:
- link-logs
- net-info
- devstack-checkout
- shell: |
#!/bin/bash -xe
export PYTHONUNBUFFERED=true
export DEVSTACK_GATE_TEMPEST=0
export DEVSTACK_GATE_IRONIC=1
export DEVSTACK_GATE_NEUTRON=1
export DEVSTACK_GATE_VIRT_DRIVER=ironic
export DEVSTACK_GATE_CONFIGDRIVE=1
export BRANCH_OVERRIDE={branch-override}
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
export PROJECTS="openstack/ironic openstack/ironic-inspector $PROJECTS"
# devstack plugin didn't exist until mitaka
if [[ "$ZUUL_BRANCH" != "stable/liberty" ]] ; then
export DEVSTACK_LOCAL_CONFIG="enable_plugin ironic git://git.openstack.org/openstack/ironic"
else
export DEVSTACK_LOCAL_CONFIG=""
fi
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic-inspector https://git.openstack.org/openstack/ironic-inspector"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_AUTOMATED_CLEAN_ENABLED=False"
if [ "{ramdisk}" != "dib" ] ; then
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_RAMDISK_ELEMENT=ironic-agent"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BUILD_DEPLOY_RAMDISK=False"
# IPA requires at least 1 GiB of RAM
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1024"$'\n'"IRONIC_VM_COUNT=1"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_IPXE_ENABLED=True"
if [ "{ramdisk}" == "ipa-src" ] ; then
export PROJECTS="openstack/ironic-python-agent $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
fi
fi
function post_test_hook {{
source $BASE/new/devstack/openrc admin admin
cd /opt/stack/new/ironic-inspector
sudo -E -u stack ./devstack/exercise.sh
}}
export -f post_test_hook
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-ironic-inspector-dsvm-discovery{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 80
- timestamps
builders:
- link-logs
- net-info
- devstack-checkout
- shell: |
#!/bin/bash -xe
export PYTHONUNBUFFERED=true
export DEVSTACK_GATE_TEMPEST=0
export DEVSTACK_GATE_IRONIC=1
export DEVSTACK_GATE_NEUTRON=1
export DEVSTACK_GATE_VIRT_DRIVER=ironic
export DEVSTACK_GATE_CONFIGDRIVE=1
export BRANCH_OVERRIDE={branch-override}
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
export PROJECTS="openstack/ironic openstack/ironic-inspector $PROJECTS"
export DEVSTACK_LOCAL_CONFIG="enable_plugin ironic git://git.openstack.org/openstack/ironic"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic-inspector https://git.openstack.org/openstack/ironic-inspector"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_AUTOMATED_CLEAN_ENABLED=False"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_RAMDISK_ELEMENT=ironic-agent"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BUILD_DEPLOY_RAMDISK=False"
# IPA requires at least 1 GiB of RAM
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1024"$'\n'"IRONIC_VM_COUNT=1"
# enable enroll hook
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_NODE_NOT_FOUND_HOOK=enroll"
# discovery_exercise.sh requires iptables and virsh direct access
export DEVSTACK_GATE_REMOVE_STACK_SUDO=0
function post_test_hook {{
source $BASE/new/devstack/openrc admin admin
cd /opt/stack/new/ironic-inspector
sudo -E -u stack ./devstack/discovery_exercise.sh
}}
export -f post_test_hook
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-python-ironic-inspector-client-dsvm{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 80
- timestamps
builders:
- link-logs
- net-info
- devstack-checkout
- shell: |
#!/bin/bash -xe
export PYTHONUNBUFFERED=true
export DEVSTACK_GATE_TEMPEST=0
export DEVSTACK_GATE_IRONIC=1
export DEVSTACK_GATE_NEUTRON=1
export DEVSTACK_GATE_VIRT_DRIVER=ironic
export DEVSTACK_GATE_CONFIGDRIVE=1
export BRANCH_OVERRIDE={branch-override}
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
export DEVSTACK_PROJECT_FROM_GIT="python-ironic-inspector-client"
export PROJECTS="openstack/ironic openstack/python-ironic-inspector-client openstack/ironic-inspector $PROJECTS"
# devstack plugin didn't exist until mitaka
if [[ "$ZUUL_BRANCH" != "stable/liberty" ]] ; then
export DEVSTACK_LOCAL_CONFIG="enable_plugin ironic git://git.openstack.org/openstack/ironic"
else
export DEVSTACK_LOCAL_CONFIG=""
fi
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic-inspector https://git.openstack.org/openstack/ironic-inspector"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_AUTOMATED_CLEAN_ENABLED=False"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_RAMDISK_ELEMENT=ironic-agent"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BUILD_DEPLOY_RAMDISK=False"
# IPA requires at least 1 GiB of RAM
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1024"$'\n'"IRONIC_VM_COUNT=1"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_IPXE_ENABLED=True"
function post_test_hook {{
source $BASE/new/devstack/openrc admin admin
cd /opt/stack/new/ironic-inspector
sudo -E -u stack ./devstack/exercise.sh
}}
export -f post_test_hook
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-ironic-staging-drivers-dsvm{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 80
- timestamps
builders:
- link-logs
- net-info
- devstack-checkout
- shell: |
#!/bin/bash -xe
export PYTHONUNBUFFERED=true
export DEVSTACK_GATE_IRONIC=1
export DEVSTACK_GATE_NEUTRON=1
export DEVSTACK_GATE_VIRT_DRIVER=ironic
export BRANCH_OVERRIDE={branch-override}
export PROJECTS="openstack/ironic $PROJECTS"
export PROJECTS="openstack/ironic-staging-drivers $PROJECTS"
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
export DEVSTACK_LOCAL_CONFIG="enable_plugin ironic git://git.openstack.org/openstack/ironic"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic-staging-drivers git://git.openstack.org/openstack/ironic-staging-drivers"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BUILD_DEPLOY_RAMDISK=False"
# No post_test_hook is needed while tests live in tempest
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-ironic-pxe_ssh{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-ipxe-disabled
- ironic-tempest-regex:
tempest-regex: ironic
- devstack-virtual-ironic:
build-ramdisk: 'yes'
deploy_driver: pxe_ssh
image-type: partition
branch-override: '{branch-override}'
bm-vm-count: 1
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-ironic-ipa-{image-type}-{driver}-{ramdisk-type}{src}{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 75
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-deploy-with-IPA:
ramdisk-type: '{ramdisk-type}'
- ironic-tempest-regex:
tempest-regex: ironic
- devstack-virtual-ironic:
build-ramdisk: '{src}'
deploy_driver: '{driver}'
image-type: '{image-type}'
branch-override: '{branch-override}'
bm-vm-count: 1
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-ironic-lib-{image-type}-{driver}-{node}{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 75
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-deploy-with-IPA:
ramdisk-type: 'tinyipa'
- ironic-tempest-regex:
tempest-regex: ironic
- ironic-lib-from-source
- devstack-virtual-ironic:
build-ramdisk: ''
deploy_driver: '{driver}'
image-type: '{image-type}'
branch-override: '{branch-override}'
bm-vm-count: 1
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-ironic-ipa-{image-type}-{driver}-{ramdisk-type}{src}-multinode{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-deploy-with-IPA:
ramdisk-type: '{ramdisk-type}'
- ironic-tempest-regex:
tempest-regex: ironic
- ironic-multinode
- ironic-multitenant
- devstack-virtual-ironic:
build-ramdisk: '{src}'
deploy_driver: '{driver}'
image-type: '{image-type}'
branch-override: '{branch-override}'
bm-vm-count: 3
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-ironic-pxe_ipa-full{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 160
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-deploy-with-IPA:
ramdisk-type: 'tinyipa'
- ironic-tempest-full
- devstack-virtual-ironic:
build-ramdisk: ''
deploy_driver: pxe_ssh
image-type: partition
branch-override: '{branch-override}'
bm-vm-count: 7
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-ironic-pxe_ipa-postgres-{node}{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-deploy-with-IPA:
ramdisk-type: 'tinyipa'
- ironic-tempest-regex:
tempest-regex: ironic
- ironic-postgres-enabled
- devstack-virtual-ironic:
build-ramdisk: ''
deploy_driver: pxe_ssh
image-type: partition
branch-override: '{branch-override}'
bm-vm-count: 1
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-ironic-parallel{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- shell: |
#!/bin/bash -xe
export PROJECTS="openstack/ironic $PROJECTS"
export PROJECTS="openstack/ironic-lib $PROJECTS"
export PROJECTS="openstack/ironic-python-agent $PROJECTS"
export PROJECTS="openstack/python-ironicclient $PROJECTS"
export PYTHONUNBUFFERED=true
export DEVSTACK_GATE_TEMPEST=1
# NOTE(deva): tempest-lib support was added in Mitaka
# but this job doesn't run on stable branches, so we can keep it simple here
export DEVSTACK_GATE_TEMPEST_ALL_PLUGINS=1
export DEVSTACK_GATE_IRONIC=1
export DEVSTACK_GATE_NEUTRON=1
export DEVSTACK_GATE_VIRT_DRIVER=ironic
export DEVSTACK_GATE_CONFIGDRIVE=1
export TEMPEST_CONCURRENCY=2
export BRANCH_OVERRIDE={branch-override}
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
# Run only baremetal tests
export DEVSTACK_GATE_TEMPEST_REGEX='ironic'
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-ironic-pxe_ipmitool-pyghmi-src{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-deploy-with-IPA:
ramdisk-type: 'coreos'
- ironic-tempest-regex:
tempest-regex: ironic
- ironic-pygmi-from-source
- devstack-virtual-ironic:
build-ramdisk: ''
deploy_driver: pxe_ipmitool
image-type: partition
branch-override: '{branch-override}'
bm-vm-count: 1
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-ironic-pxe_ipmitool-virtualbmc-src{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-deploy-with-IPA:
ramdisk-type: 'tinyipa'
- ironic-tempest-regex:
tempest-regex: ironic
- ironic-virtualbmc-from-source
- ironic-pygmi-from-source
- devstack-virtual-ironic:
build-ramdisk: ''
deploy_driver: pxe_ipmitool
image-type: partition
branch-override: '{branch-override}'
bm-vm-count: 1
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-python-ironicclient-src{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-deploy-with-IPA:
ramdisk-type: 'tinyipa'
- ironic-tempest-regex:
tempest-regex: ironic
- ironic-client-from-source
- devstack-virtual-ironic:
build-ramdisk: ''
deploy_driver: pxe_ssh
image-type: partition
branch-override: '{branch-override}'
bm-vm-count: 1
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-ironic-multitenant-network-{node}{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-deploy-with-IPA:
ramdisk-type: 'tinyipa'
- ironic-tempest-regex:
tempest-regex: ironic
- ironic-multitenant
- devstack-virtual-ironic:
build-ramdisk: ''
deploy_driver: agent_ssh
image-type: wholedisk
branch-override: '{branch-override}'
bm-vm-count: 3
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-ironic-inspector{src}{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-deploy-with-IPA:
ramdisk-type: 'tinyipa'
- ironic-tempest-regex:
tempest-regex: InspectorBasicTest
- ironic-inspector-enabled:
inspector-auto-discovery: 0
- devstack-virtual-ironic:
build-ramdisk: '{src}'
deploy_driver: agent_ssh
image-type: wholedisk
branch-override: '{branch-override}'
bm-vm-count: 1
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-python-ironic-inspector-client{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-deploy-with-IPA:
ramdisk-type: 'tinyipa'
- ironic-tempest-regex:
tempest-regex: InspectorSmokeTest
- ironic-inspector-enabled:
inspector-auto-discovery: 0
- ironic-inspector-client-from-source
- devstack-virtual-ironic:
build-ramdisk: ''
deploy_driver: agent_ssh
image-type: wholedisk
branch-override: '{branch-override}'
bm-vm-count: 1
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-tempest-dsvm-ironic-inspector-discovery{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-deploy-with-IPA:
ramdisk-type: 'tinyipa'
- ironic-tempest-regex:
tempest-regex: InspectorDiscoveryTest
- ironic-inspector-enabled:
inspector-auto-discovery: 1
- devstack-virtual-ironic:
build-ramdisk: ''
deploy_driver: agent_ssh
image-type: wholedisk
branch-override: '{branch-override}'
bm-vm-count: 1
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-grenade-dsvm-ironic{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- shell: |
#!/bin/bash -xe
export PROJECTS="openstack/ironic $PROJECTS"
export PROJECTS="openstack/ironic-lib $PROJECTS"
export PROJECTS="openstack/ironic-python-agent $PROJECTS"
export PROJECTS="openstack/python-ironicclient $PROJECTS"
export PROJECTS="openstack-dev/grenade $PROJECTS"
export PYTHONUNBUFFERED=true
export DEVSTACK_GATE_TEMPEST=1
export DEVSTACK_GATE_GRENADE=pullup
export DEVSTACK_GATE_IRONIC=1
export DEVSTACK_GATE_NEUTRON=1
export DEVSTACK_GATE_VIRT_DRIVER=ironic
export DEVSTACK_GATE_CONFIGDRIVE=1
export TEMPEST_CONCURRENCY=1
export DEVSTACK_GATE_OS_TEST_TIMEOUT=2400
export DEVSTACK_GATE_TEMPEST_BAREMETAL_BUILD_TIMEOUT=1200
export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
export DEVSTACK_LOCAL_CONFIG="IRONIC_VM_SPECS_RAM=384"$'\n'"IRONIC_VM_COUNT=7"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
# Make IPXE configuration consistent between Mitaka and Master
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_IPXE_ENABLED=True"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BUILD_DEPLOY_RAMDISK=False"
export BRANCH_OVERRIDE={branch-override}
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
export GRENADE_PLUGINRC="enable_grenade_plugin ironic https://git.openstack.org/openstack/ironic"
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-grenade-dsvm-ironic-multitenant{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- ironic-grenade
- ironic-multitenant
- ironic-deploy-with-IPA:
ramdisk-type: 'tinyipa'
- devstack-virtual-ironic:
build-ramdisk: ''
deploy_driver: pxe_ssh
image-type: wholedisk
branch-override: '{branch-override}'
bm-vm-count: 7
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-grenade-dsvm-ironic-inspector{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- net-info
- devstack-checkout
- shell: |
#!/bin/bash -xe
export PROJECTS="openstack/ironic $PROJECTS"
export PROJECTS="openstack/ironic-lib $PROJECTS"
export PROJECTS="openstack/ironic-python-agent $PROJECTS"
export PROJECTS="openstack/python-ironicclient $PROJECTS"
export PROJECTS="openstack/ironic-inspector $PROJECTS"
export PROJECTS="openstack/python-ironic-inspector-client $PROJECTS"
export PROJECTS="openstack-dev/grenade $PROJECTS"
export PYTHONUNBUFFERED=true
export DEVSTACK_GATE_TEMPEST=1
export DEVSTACK_GATE_GRENADE=pullup
export DEVSTACK_GATE_IRONIC=1
export DEVSTACK_GATE_NEUTRON=1
export DEVSTACK_GATE_VIRT_DRIVER=ironic
export DEVSTACK_GATE_CONFIGDRIVE=1
export TEMPEST_CONCURRENCY=1
export DEVSTACK_GATE_OS_TEST_TIMEOUT=2400
export DEVSTACK_GATE_TEMPEST_BAREMETAL_BUILD_TIMEOUT=1200
export DEVSTACK_LOCAL_CONFIG="IRONIC_VM_SPECS_RAM=384"$'\n'"IRONIC_VM_COUNT=7"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
# Make IPXE configuration consistent between Mitaka and Master
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_IPXE_ENABLED=True"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_RAMDISK_ELEMENT=ironic-agent"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_MANAGE_FIREWALL=True"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BUILD_DEPLOY_RAMDISK=False"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
export BRANCH_OVERRIDE={branch-override}
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
export GRENADE_PLUGINRC+=$'\n'"enable_grenade_plugin ironic https://git.openstack.org/openstack/ironic"
export GRENADE_PLUGINRC+=$'\n'"enable_grenade_plugin ironic-inspector https://git.openstack.org/openstack/ironic-inspector"
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-ironic-dsvm-multitest{job-suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 180
- timestamps
builders:
- link-logs
- net-info
- devstack-checkout
- shell: |
#!/bin/bash -xe
export PROJECTS="openstack/ironic $PROJECTS"
export PROJECTS="openstack/ironic-lib $PROJECTS"
export PROJECTS="openstack/ironic-python-agent $PROJECTS"
export PROJECTS="openstack/python-ironicclient $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_BUILD_RAMDISK=0
export DEVSTACK_GATE_IRONIC_DRIVER=agent_ssh
# The tests will be launched by devstack/exercise.sh
export DEVSTACK_GATE_TEMPEST_NOTESTS=1
export DEVSTACK_GATE_REMOVE_STACK_SUDO=0
export BRANCH_OVERRIDE={branch-override}
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
export DEVSTACK_LOCAL_CONFIG="enable_plugin ironic git://git.openstack.org/openstack/ironic"
function post_test_hook {{
source $BASE/new/devstack/openrc admin admin
cd /opt/stack/new/ironic
sudo -E -u stack ./devstack/exercise.sh
}}
export -f post_test_hook
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
publishers:
- devstack-logs
- console-log