project-config/jenkins/jobs/ironic.yaml

1172 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"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BUILD_DEPLOY_RAMDISK=False"
- 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}-{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: '{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-{driver}-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
- ironic-ipxe-disabled
- devstack-virtual-ironic:
build-ramdisk: ''
deploy_driver: '{driver}'
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: partition
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