
The SNMP driver uses pysnmp-lextudio, we'll be lucky if it works through the deprecation period. If by the start of the 2026.2 cycle it's not been migrated to a different library, it will need to be removed. In order to keep CI running on an unsupported driver, I've added an option to the devstack plugin to skip failing on upgrade check. Related-Bug: 2106674 Generated-By: Jetbrains Junie Change-Id: Ibe5576d04fc3ca1cc102f126853ed3d1e8c404d2
1377 lines
48 KiB
YAML
1377 lines
48 KiB
YAML
---
|
|
- job:
|
|
name: ironic-base
|
|
abstract: true
|
|
description: Base job for devstack/tempest based ironic jobs.
|
|
parent: devstack-tempest
|
|
nodeset: openstack-single-node-noble
|
|
post-run: playbooks/ci-workarounds/get_extra_logging.yaml
|
|
timeout: 10800
|
|
required-projects:
|
|
# TODO(TheJulia): Explicitly pull in DIB until we get a release cut.
|
|
- opendev.org/openstack/diskimage-builder
|
|
- opendev.org/openstack/ironic
|
|
- opendev.org/openstack/ironic-python-agent
|
|
- opendev.org/openstack/ironic-python-agent-builder
|
|
- opendev.org/openstack/ironic-tempest-plugin
|
|
- opendev.org/openstack/virtualbmc
|
|
irrelevant-files:
|
|
- ^.*\.rst$
|
|
- ^api-ref/.*$
|
|
- ^doc/.*$
|
|
- ^driver-requirements.txt$
|
|
- ^install-guide/.*$
|
|
- ^ironic/locale/.*$
|
|
- ^ironic/tests/.*$
|
|
- ^\.pre-commit-config\.yaml$
|
|
- ^redfish-interop-profiles/.*$
|
|
- ^releasenotes/.*$
|
|
- ^setup.cfg$
|
|
- ^test-requirements.txt$
|
|
- ^tox.ini$
|
|
vars:
|
|
tox_envlist: all
|
|
tempest_test_timeout: 2600
|
|
tempest_test_regex: ironic_tempest_plugin.tests.scenario
|
|
tempest_concurrency: 1
|
|
devstack_localrc:
|
|
DEFAULT_INSTANCE_TYPE: baremetal
|
|
FORCE_CONFIG_DRIVE: True
|
|
INSTALL_TEMPEST: False # Don't install a tempest package globally
|
|
VIRT_DRIVER: ironic
|
|
BUILD_TIMEOUT: 2000
|
|
IRONIC_BAREMETAL_BASIC_OPS: True
|
|
IRONIC_BUILD_DEPLOY_RAMDISK: False
|
|
IRONIC_CALLBACK_TIMEOUT: 1800
|
|
IRONIC_DEPLOY_DRIVER: ipmi
|
|
IRONIC_INSPECTOR_BUILD_RAMDISK: False
|
|
IRONIC_INSPECTOR_TEMPEST_INTROSPECTION_TIMEOUT: 1200
|
|
IRONIC_TEMPEST_BUILD_TIMEOUT: 2000
|
|
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: False
|
|
IRONIC_VM_COUNT: 2
|
|
IRONIC_VM_EPHEMERAL_DISK: 1
|
|
IRONIC_VM_SPECS_RAM: 2600
|
|
IRONIC_VM_LOG_DIR: '{{ devstack_base_dir }}/ironic-bm-logs'
|
|
# NOTE(dtantsur): in some jobs we end up with 12 disks total, so reduce
|
|
# each of them. For don't need all 10 GiB for CirrOS anyway.
|
|
IRONIC_VM_SPECS_DISK: 4
|
|
IRONIC_VM_SPECS_CPU: 2
|
|
Q_AGENT: openvswitch
|
|
Q_ML2_TENANT_NETWORK_TYPE: vxlan
|
|
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
|
|
SERVICE_TIMEOUT: 90
|
|
# NOTE(TheJulia): Devstack default glance limit is 1GB, we need
|
|
# something more like 5GB for baremetal jobs due to image sizes
|
|
# with firmware.
|
|
GLANCE_LIMIT_IMAGE_SIZE_TOTAL: 5000
|
|
# NOTE(TheJulia): Disable neutron firewall as bug
|
|
# https://bugs.launchpad.net/neutron/+bug/1944201
|
|
# causes us an abnormally high job failure rate due to the ports
|
|
# not being found (as neutron crashed on initialization).
|
|
Q_USE_SECGROUP: False
|
|
# Default API workers is 2, however only 1 is needed,
|
|
# which cuts API memory utilziation in half reducing the risk of
|
|
# oom-killer events in CI.
|
|
API_WORKERS: 1
|
|
CIRROS_VERSION: 0.6.1
|
|
devstack_plugins:
|
|
ironic: https://opendev.org/openstack/ironic
|
|
tempest_plugins:
|
|
- ironic-tempest-plugin
|
|
zuul_copy_output:
|
|
'{{ devstack_base_dir }}/ironic-bm-logs': 'logs'
|
|
'{{ devstack_base_dir }}/data/networking-generic-switch/netmiko_session.log': 'logs'
|
|
devstack_services:
|
|
# TODO: re-enable dstat once https://storyboard.openstack.org/#!/story/2008185
|
|
# is resolved
|
|
dstat: false
|
|
atop: True
|
|
q-agt: true
|
|
q-dhcp: true
|
|
q-l3: true
|
|
q-meta: true
|
|
q-svc: true
|
|
ovn-controller: false
|
|
ovn-northd: false
|
|
q-ovn-metadata-agent: false
|
|
c-api: False
|
|
c-bak: False
|
|
c-sch: False
|
|
c-vol: False
|
|
cinder: False
|
|
s-account: False
|
|
s-container: False
|
|
s-object: False
|
|
s-proxy: False
|
|
openstack-cli-server: True
|
|
|
|
- job:
|
|
name: ironic-standalone-aarch64
|
|
description:
|
|
Test ironic standalone configured with ipmi hardware type, ramdisk and
|
|
direct deploy interfaces, rescue enabled.
|
|
parent: ironic-base
|
|
irrelevant-files:
|
|
- ^.*\.rst$
|
|
- ^api-ref/.*$
|
|
- ^doc/.*$
|
|
- ^install-guide/.*$
|
|
- ^ironic/locale/.*$
|
|
- ^ironic/tests/.*$
|
|
- ^\.pre-commit-config\.yaml$
|
|
- ^releasenotes/.*$
|
|
- ^setup.cfg$
|
|
- ^test-requirements.txt$
|
|
- ^tools/.*$
|
|
- ^tox.ini$
|
|
vars:
|
|
tempest_test_regex: BaremetalDriverDirectWholedisk
|
|
tempest_concurrency: 2
|
|
devstack_localrc:
|
|
FORCE_CONFIG_DRIVE: False
|
|
IRONIC_AGENT_IMAGE_DOWNLOAD_SOURCE: http
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
IRONIC_BUILD_DEPLOY_RAMDISK: False
|
|
IRONIC_DEPLOY_DRIVER: redfish
|
|
IRONIC_DEFAULT_RESCUE_INTERFACE: agent
|
|
IRONIC_ENABLED_BOOT_INTERFACES: "ipxe,redfish-virtual-media,http-ipxe,pxe,http"
|
|
IRONIC_ENABLED_HARDWARE_TYPES: redfish
|
|
IRONIC_ENABLED_MANAGEMENT_INTERFACES: redfish
|
|
IRONIC_ENABLED_DEPLOY_INTERFACES: "direct,ramdisk"
|
|
IRONIC_ENABLED_RESCUE_INTERFACES: "agent,no-rescue"
|
|
IRONIC_BOOT_MODE: uefi
|
|
IRONIC_CALLBACK_TIMEOUT: 800
|
|
IRONIC_GRUB2_SHIM_FILE: https://mirror.stream.centos.org/9-stream/BaseOS/aarch64/os/EFI/BOOT/BOOTAA64.EFI
|
|
IRONIC_GRUB2_FILE: https://mirror.stream.centos.org/9-stream/BaseOS/aarch64/os/EFI/BOOT/grubaa64.efi
|
|
IRONIC_HW_ARCH: aarch64
|
|
IRONIC_DIB_RAMDISK_OS: debian-arm64
|
|
IRONIC_VM_SPECS_RAM: 4096
|
|
IRONIC_VM_SPECS_CPU: 1
|
|
IRONIC_VM_COUNT: 1
|
|
IRONIC_VM_VOLUME_COUNT: 2
|
|
# We're using a lot of disk space in this job. Some testing nodes have
|
|
# a small root partition, so use /opt which is mounted from a bigger
|
|
# ephemeral partition on such nodes
|
|
LIBVIRT_STORAGE_POOL_PATH: /opt/libvirt/images
|
|
devstack_services:
|
|
atop: True
|
|
n-api: False
|
|
n-api-meta: False
|
|
n-cond: False
|
|
n-cpu: False
|
|
n-novnc: False
|
|
n-sch: False
|
|
nova: False
|
|
placement-api: False
|
|
s-account: False
|
|
s-container: False
|
|
s-object: False
|
|
s-proxy: False
|
|
|
|
# NOTE(TheJulia): This job is being phased out as it ends up executing
|
|
# the wholedisk standalone deploy, the partition standalone deploy,
|
|
# software raid tests, and ramdisk iso boot tests. All of this while in
|
|
# UEFI mode. Although the redfish test runs the exact same tests and *more*.
|
|
# On top of that, there really is not a good variation which would be
|
|
# impacted through IPMI while we keep other ipmi jobs in our CI config.
|
|
- job:
|
|
name: ironic-standalone
|
|
description:
|
|
Test ironic standalone configured with ipmi hardware type, ramdisk and
|
|
direct deploy interfaces, rescue enabled.
|
|
parent: ironic-base
|
|
irrelevant-files:
|
|
- ^.*\.rst$
|
|
- ^api-ref/.*$
|
|
- ^doc/.*$
|
|
- ^install-guide/.*$
|
|
- ^ironic/locale/.*$
|
|
- ^ironic/tests/.*$
|
|
- ^\.pre-commit-config\.yaml$
|
|
- ^redfish-interop-profiles/.*$
|
|
- ^releasenotes/.*$
|
|
- ^setup.cfg$
|
|
- ^test-requirements.txt$
|
|
- ^tools/.*$
|
|
- ^tox.ini$
|
|
vars:
|
|
tempest_test_regex: ironic_standalone
|
|
tempest_concurrency: 2
|
|
devstack_localrc:
|
|
FORCE_CONFIG_DRIVE: False
|
|
IRONIC_AGENT_IMAGE_DOWNLOAD_SOURCE: http
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
IRONIC_DEFAULT_RESCUE_INTERFACE: agent
|
|
IRONIC_ENABLED_HARDWARE_TYPES: ipmi
|
|
IRONIC_ENABLED_DEPLOY_INTERFACES: "direct,ramdisk"
|
|
IRONIC_ENABLED_RESCUE_INTERFACES: "agent,no-rescue"
|
|
IRONIC_JSON_RPC_AUTH_STRATEGY: 'http_basic'
|
|
IRONIC_RAMDISK_TYPE: tinyipa
|
|
IRONIC_RPC_TRANSPORT: json-rpc
|
|
IRONIC_VM_SPECS_RAM: 1024
|
|
IRONIC_VM_SPECS_CPU: 1
|
|
IRONIC_VM_COUNT: 4
|
|
IRONIC_VM_VOLUME_COUNT: 2
|
|
# We're using a lot of disk space in this job. Some testing nodes have
|
|
# a small root partition, so use /opt which is mounted from a bigger
|
|
# ephemeral partition on such nodes
|
|
LIBVIRT_STORAGE_POOL_PATH: /opt/libvirt/images
|
|
Q_AGENT: ovn
|
|
Q_ML2_TENANT_NETWORK_TYPE: vlan
|
|
Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn
|
|
ENABLE_CHASSIS_AS_GW: True
|
|
ML2_L3_PLUGIN: "ovn-router,trunk"
|
|
OVN_DBS_LOG_LEVEL: dbg
|
|
devstack_services:
|
|
atop: True
|
|
n-api: False
|
|
n-api-meta: False
|
|
n-cond: False
|
|
n-cpu: False
|
|
n-novnc: False
|
|
n-sch: False
|
|
nova: False
|
|
placement-api: False
|
|
s-account: False
|
|
s-container: False
|
|
s-object: False
|
|
s-proxy: False
|
|
q-agt: False
|
|
q-dhcp: False
|
|
q-l3: False
|
|
ovn-controller: True
|
|
ovn-northd: True
|
|
q-ovn-metadata-agent: True
|
|
|
|
- job:
|
|
name: ironic-standalone-redfish
|
|
parent: ironic-base
|
|
description:
|
|
Test ironic standalone configured with redfish hardware type, ansible and
|
|
direct and ansible deploy interfaces, rescue it's not enabled.
|
|
required-projects:
|
|
- opendev.org/openstack/sushy-tools
|
|
vars:
|
|
tempest_test_regex: ironic_standalone
|
|
tempest_concurrency: 2
|
|
devstack_localrc:
|
|
FORCE_CONFIG_DRIVE: False
|
|
IRONIC_AGENT_IMAGE_DOWNLOAD_SOURCE: http
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
IRONIC_DEPLOY_DRIVER: redfish
|
|
# NOTE(TheJulia): We test numerous boot interfaces here, but "http"
|
|
# with "grub2" is functionally unstable. Basically high odds of failure
|
|
# with VMs in EFI request handling with VMs.
|
|
# FIXME(dtantsur): add back the pxe interface once it actually works
|
|
# and the boot interface handling in the tempest plugin is fixed.
|
|
IRONIC_ENABLED_BOOT_INTERFACES: "ipxe,redfish-virtual-media,http-ipxe"
|
|
IRONIC_ENABLED_HARDWARE_TYPES: redfish
|
|
IRONIC_ENABLED_POWER_INTERFACES: redfish
|
|
IRONIC_ENABLED_MANAGEMENT_INTERFACES: redfish
|
|
IRONIC_ENABLED_DEPLOY_INTERFACES: "direct,ansible,ramdisk"
|
|
IRONIC_RPC_TRANSPORT: json-rpc
|
|
IRONIC_RAMDISK_TYPE: tinyipa
|
|
IRONIC_VM_COUNT: 4
|
|
IRONIC_VM_VOLUME_COUNT: 2
|
|
IRONIC_VM_SPECS_RAM: 1024
|
|
IRONIC_VM_SPECS_CPU: 1
|
|
IRONIC_ENFORCE_SCOPE: True
|
|
# We're using a lot of disk space in this job. Some testing nodes have
|
|
# a small root partition, so use /opt which is mounted from a bigger
|
|
# ephemeral partition on such nodes
|
|
LIBVIRT_STORAGE_POOL_PATH: /opt/libvirt/images
|
|
devstack_services:
|
|
atop: True
|
|
n-api: False
|
|
n-api-meta: False
|
|
n-cond: False
|
|
n-cpu: False
|
|
n-novnc: False
|
|
n-sch: False
|
|
nova: False
|
|
placement-api: False
|
|
s-account: False
|
|
s-container: False
|
|
s-object: False
|
|
s-proxy: False
|
|
|
|
- job:
|
|
name: ironic-standalone-anaconda
|
|
parent: ironic-standalone-redfish
|
|
description:
|
|
Test ironic with the anaconda deployment interface.
|
|
Test also uses Redfish.
|
|
required-projects:
|
|
- opendev.org/openstack/sushy-tools
|
|
vars:
|
|
tempest_test_regex: BaremetalRedfishIPxeAnacondaNoGlance
|
|
tempest_test_timeout: 4800
|
|
tempest_concurrency: 2
|
|
devstack_localrc:
|
|
IRONIC_ENABLED_DEPLOY_INTERFACES: "anaconda"
|
|
IRONIC_VM_COUNT: 2
|
|
IRONIC_VM_VOLUME_COUNT: 1
|
|
IRONIC_VM_SPECS_RAM: 3192
|
|
IRONIC_VM_SPECS_CPU: 3
|
|
IRONIC_ENFORCE_SCOPE: True
|
|
# We're using a lot of disk space in this job. Some testing nodes have
|
|
# a small root partition, so use /opt which is mounted from a bigger
|
|
# ephemeral partition on such nodes
|
|
LIBVIRT_STORAGE_POOL_PATH: /opt/libvirt/images
|
|
IRONIC_ANACONDA_IMAGE_REF: https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/
|
|
IRONIC_ANACONDA_KERNEL_REF: https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/images/pxeboot/vmlinuz
|
|
IRONIC_ANACONDA_RAMDISK_REF: https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/images/pxeboot/initrd.img
|
|
IRONIC_ANACONDA_INSECURE_HEARTBEAT: True
|
|
IRONIC_DEPLOY_CALLBACK_WAIT_TIMEOUT: 3600
|
|
IRONIC_PXE_BOOT_RETRY_TIMEOUT: 3600
|
|
|
|
# NOTE(TheJulia): This job should likely be phased out as the standalone
|
|
# job mostly checks the related code paths, the overlap pertinant here is
|
|
# BIOS mode, which is not commonly deployed, and the minimum feature set
|
|
# flag for the emulator.
|
|
- job:
|
|
name: ironic-tempest-bios-redfish-pxe
|
|
description: "Deploy ironic node over PXE using BIOS boot mode"
|
|
parent: ironic-tempest-uefi-redfish-vmedia
|
|
required-projects:
|
|
- opendev.org/openstack/sushy-tools
|
|
vars:
|
|
devstack_localrc:
|
|
IRONIC_ENABLED_BOOT_INTERFACES: ipxe
|
|
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
SWIFT_ENABLE_TEMPURLS: False
|
|
SWIFT_TEMPURL_KEY: ''
|
|
# Parent job has a longer timeout due to vmedia usage,
|
|
# Reset the callback to a normal-ish value.
|
|
IRONIC_CALLBACK_TIMEOUT: 600
|
|
IRONIC_BOOT_MODE: bios
|
|
# Make sure this feature works even with the minimum implementation
|
|
IRONIC_REDFISH_EMULATOR_FEATURE_SET: minimum
|
|
# Test sharding support
|
|
IRONIC_SHARDS: 1
|
|
devstack_services:
|
|
atop: True
|
|
# Parent job uses swift, this one does not, thus we can turn it off.
|
|
s-account: False
|
|
s-container: False
|
|
s-object: False
|
|
s-proxy: False
|
|
|
|
- job:
|
|
name: ironic-tempest-uefi-redfish-vmedia
|
|
description: "Deploy ironic node over Redfish virtual media using UEFI boot mode"
|
|
parent: ironic-base
|
|
vars:
|
|
# NOTE(iurygregory): switch to only wholedisk test, since the
|
|
# partition test is failing randomly.
|
|
tempest_test_regex: test_baremetal_server_ops_wholedisk_image
|
|
devstack_localrc:
|
|
IRONIC_DEPLOY_DRIVER: redfish
|
|
IRONIC_ENABLED_HARDWARE_TYPES: redfish
|
|
IRONIC_ENABLED_POWER_INTERFACES: redfish
|
|
IRONIC_ENABLED_MANAGEMENT_INTERFACES: redfish
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
IRONIC_ENABLED_BOOT_INTERFACES: redfish-virtual-media
|
|
SWIFT_ENABLE_TEMPURLS: True
|
|
SWIFT_TEMPURL_KEY: secretkey
|
|
# Ironic has to master a new image, and this CAN take longer as a
|
|
# result and makes this job VERY sensitive to heavy disk IO of the
|
|
# underlying hypervisor/cloud.
|
|
IRONIC_CALLBACK_TIMEOUT: 800
|
|
IRONIC_GRUB2_SHIM_FILE: https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/EFI/BOOT/BOOTX64.EFI
|
|
IRONIC_GRUB2_FILE: https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/EFI/BOOT/grubx64.efi
|
|
IRONIC_GRUB2_CONFIG_PATH: EFI/BOOT/grub.cfg
|
|
IRONIC_REDFISH_EMULATOR_FEATURE_SET: vmedia
|
|
devstack_services:
|
|
atop: True
|
|
s-account: True
|
|
s-container: True
|
|
s-object: True
|
|
s-proxy: True
|
|
|
|
- job:
|
|
name: ironic-tempest-uefi-redfish-https
|
|
description: "Deploy ironic node utilizing https boot interface"
|
|
parent: ironic-base
|
|
required-projects:
|
|
- opendev.org/openstack/sushy
|
|
- opendev.org/openstack/sushy-tools
|
|
vars:
|
|
tempest_test_regex: test_baremetal_server_ops_wholedisk_image
|
|
devstack_localrc:
|
|
IRONIC_DEPLOY_DRIVER: redfish
|
|
IRONIC_ENABLED_HARDWARE_TYPES: redfish
|
|
IRONIC_ENABLED_POWER_INTERFACES: redfish
|
|
IRONIC_ENABLED_MANAGEMENT_INTERFACES: redfish
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
IRONIC_ENABLED_BOOT_INTERFACES: redfish-https
|
|
SWIFT_ENABLE_TEMPURLS: True
|
|
SWIFT_TEMPURL_KEY: secretkey
|
|
# Ironic has to master a new image, and this CAN take longer as a
|
|
# result and makes this job VERY sensitive to heavy disk IO of the
|
|
# underlying hypervisor/cloud.
|
|
IRONIC_CALLBACK_TIMEOUT: 800
|
|
IRONIC_GRUB2_SHIM_FILE: "https://{{ zuul_site_mirror_fqdn }}/centos-stream/9-stream/BaseOS/x86_64/os/EFI/BOOT/BOOTX64.EFI"
|
|
IRONIC_GRUB2_FILE: "https://{{ zuul_site_mirror_fqdn }}/centos-stream/9-stream/BaseOS/x86_64/os/EFI/BOOT/grubx64.efi"
|
|
IRONIC_GRUB2_CONFIG_PATH: EFI/BOOT/grub.cfg
|
|
devstack_services:
|
|
atop: True
|
|
s-account: True
|
|
s-container: True
|
|
s-object: True
|
|
s-proxy: True
|
|
|
|
- job:
|
|
name: ironic-inspector-tempest-uefi-redfish-vmedia
|
|
description: "Inspect and deploy ironic node over Redfish virtual media using UEFI"
|
|
parent: ironic-tempest-uefi-redfish-vmedia
|
|
required-projects:
|
|
- opendev.org/openstack/ironic-inspector
|
|
vars:
|
|
# NOTE(dtantsur): the inspector job includes booting an instance too.
|
|
# Excluding the abort tests since it hits "node locked" too often.
|
|
tempest_test_regex: test_baremetal_introspection
|
|
devstack_localrc:
|
|
IRONIC_INSPECTOR_MANAGED_BOOT: True
|
|
IRONIC_INSPECTOR_NODE_NOT_FOUND_HOOK: ''
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
IRONIC_VM_COUNT: 1
|
|
devstack_plugins:
|
|
ironic-inspector: https://opendev.org/openstack/ironic-inspector
|
|
devstack_services:
|
|
atop: True
|
|
ironic-inspector: True
|
|
ironic-inspector-dhcp: True
|
|
|
|
# NOTE(rpittau): converted job but not running for now as there
|
|
# could be an issue with the lookup in ironic-python-agent
|
|
- job:
|
|
name: ironic-tempest-ipa-wholedisk-bios-agent_ipmitool
|
|
description: Gate-ish job with classic name. Executes rescue!
|
|
parent: ironic-base
|
|
vars:
|
|
devstack_localrc:
|
|
IRONIC_DEFAULT_RESCUE_INTERFACE: agent
|
|
IRONIC_ENABLED_RESCUE_INTERFACES: "fake,agent,no-rescue"
|
|
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
IRONIC_VM_SPECS_RAM: 3096
|
|
SWIFT_ENABLE_TEMPURLS: True
|
|
SWIFT_TEMPURL_KEY: secretkey
|
|
IRONIC_BOOT_MODE: bios
|
|
devstack_services:
|
|
atop: True
|
|
s-account: True
|
|
s-container: True
|
|
s-object: True
|
|
s-proxy: True
|
|
|
|
- job:
|
|
name: ironic-tempest-ramdisk-bios-snmp-pxe
|
|
description: SNMP power, iPXE, OVN, no-op management and whole disk images.
|
|
parent: ironic-base
|
|
vars:
|
|
# NOTE(TheJulia): No reason to go much further than the network boot,
|
|
# Hence the use of the ramdisk test scenario as opposed to the others.
|
|
tempest_test_regex: test_ramdisk_iso
|
|
devstack_localrc:
|
|
IRONIC_ENABLED_HARDWARE_TYPES: snmp
|
|
IRONIC_DEPLOY_DRIVER: snmp
|
|
IRONIC_ENABLED_DEPLOY_INTERFACES: "ramdisk"
|
|
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
IRONIC_ALLOW_UNSUPPORTED_DRIVERS: True
|
|
# NOTE(TheJulia): Explicitly set scope enforcement to False until we
|
|
# remove the legacy policies.
|
|
IRONIC_ENFORCE_SCOPE: False
|
|
IRONIC_BOOT_MODE: bios
|
|
Q_AGENT: ovn
|
|
Q_ML2_TENANT_NETWORK_TYPE: vlan
|
|
Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn
|
|
ENABLE_CHASSIS_AS_GW: True
|
|
ML2_L3_PLUGIN: "ovn-router,trunk"
|
|
OVN_DBS_LOG_LEVEL: dbg
|
|
devstack_services:
|
|
atop: True
|
|
q-agt: False
|
|
q-dhcp: False
|
|
q-l3: False
|
|
ovn-controller: True
|
|
ovn-northd: True
|
|
q-ovn-metadata-agent: True
|
|
n-api: False
|
|
n-api-meta: False
|
|
n-cond: False
|
|
n-cpu: False
|
|
n-novnc: False
|
|
n-sch: False
|
|
nova: False
|
|
placement-api: False
|
|
s-account: False
|
|
s-container: False
|
|
s-object: False
|
|
s-proxy: False
|
|
|
|
- job:
|
|
name: ironic-tempest-ovn-uefi-ipmi-pxe
|
|
description: IPMI power, UEFI, iPXE, OVN image.
|
|
parent: ironic-base
|
|
vars:
|
|
# NOTE(iurygregory): switch to only wholedisk test, since the
|
|
# partition test is failing randomly.
|
|
tempest_test_regex: test_baremetal_server_ops_wholedisk_image
|
|
devstack_localrc:
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
Q_AGENT: ovn
|
|
Q_ML2_TENANT_NETWORK_TYPE: vlan
|
|
Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn
|
|
ENABLE_CHASSIS_AS_GW: True
|
|
ML2_L3_PLUGIN: "ovn-router,trunk"
|
|
OVN_DBS_LOG_LEVEL: dbg
|
|
devstack_services:
|
|
atop: True
|
|
q-agt: False
|
|
q-dhcp: False
|
|
q-l3: False
|
|
ovn-controller: True
|
|
ovn-northd: True
|
|
ovn-vswitchd: True
|
|
q-ovn-metadata-agent: True
|
|
|
|
- job:
|
|
name: ironic-tempest-bfv
|
|
description: ironic-tempest-bfv
|
|
parent: ironic-base
|
|
vars:
|
|
tempest_test_regex: baremetal_boot_from_volume
|
|
devstack_localrc:
|
|
IRONIC_ENABLED_STORAGE_INTERFACES: cinder,noop
|
|
IRONIC_STORAGE_INTERFACE: cinder
|
|
IRONIC_ENABLED_BOOT_INTERFACES: http-ipxe,ipxe,pxe,fake
|
|
IRONIC_DEFAULT_BOOT_INTERFACE: http-ipxe
|
|
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
IRONIC_VM_COUNT: 3
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
SWIFT_ENABLE_TEMPURLS: True
|
|
SWIFT_TEMPURL_KEY: secretkey
|
|
IRONIC_ENFORCE_SCOPE: True
|
|
devstack_services:
|
|
atop: True
|
|
c-api: True
|
|
c-bak: True
|
|
c-sch: True
|
|
c-vol: True
|
|
cinder: True
|
|
|
|
- job:
|
|
name: ironic-inspector-tempest
|
|
description: ironic-inspector-tempest
|
|
parent: ironic-base
|
|
required-projects:
|
|
- opendev.org/openstack/ironic-inspector
|
|
irrelevant-files:
|
|
- ^.*\.rst$
|
|
- ^api-ref/.*$
|
|
- ^doc/.*$
|
|
- ^driver-requirements.txt$
|
|
- ^install-guide/.*$
|
|
- ^ironic/locale/.*$
|
|
- ^ironic/tests/.*$
|
|
# This job is also run on inspector
|
|
- ^ironic_inspector/locale/.*$
|
|
- ^ironic_inspector/test/.*$
|
|
- ^\.pre-commit-config\.yaml$
|
|
- ^redfish-interop-profiles/.*$
|
|
- ^releasenotes/.*$
|
|
- ^setup.cfg$
|
|
- ^test-requirements.txt$
|
|
- ^tools/.*$
|
|
- ^tox.ini$
|
|
vars:
|
|
tempest_test_regex: InspectorBasicTest
|
|
devstack_localrc:
|
|
IRONIC_INSPECTOR_MANAGE_FIREWALL: True
|
|
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
IRONIC_VM_COUNT: 1
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
SWIFT_ENABLE_TEMPURLS: True
|
|
SWIFT_TEMPURL_KEY: secretkey
|
|
devstack_plugins:
|
|
ironic-inspector: https://opendev.org/openstack/ironic-inspector
|
|
devstack_services:
|
|
atop: True
|
|
s-account: True
|
|
s-container: True
|
|
s-object: True
|
|
s-proxy: True
|
|
|
|
- job:
|
|
name: ironic-inspector-tempest-rbac-scope-enforced
|
|
description: ironic-inspector-tempest-rbac-scope-enforced
|
|
parent: ironic-inspector-tempest
|
|
required-projects:
|
|
- openstack/ironic-inspector
|
|
vars:
|
|
devstack_localrc:
|
|
IRONIC_ENFORCE_SCOPE: True
|
|
IRONIC_INSPECTOR_ENFORCE_SCOPE: True
|
|
|
|
- job:
|
|
name: ironic-tempest-functional-python3
|
|
description: ironic-tempest-functional-python3
|
|
parent: ironic-base
|
|
pre-run: playbooks/ci-workarounds/etc-neutron.yaml
|
|
vars:
|
|
tempest_test_regex: ironic_tempest_plugin.tests.api
|
|
devstack_localrc:
|
|
IRONIC_BAREMETAL_BASIC_OPS: False
|
|
IRONIC_DEFAULT_DEPLOY_INTERFACE: ""
|
|
IRONIC_DEFAULT_NETWORK_INTERFACE: noop
|
|
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
IRONIC_RPC_TRANSPORT: json-rpc
|
|
devstack_services:
|
|
atop: True
|
|
rabbit: True
|
|
g-api: False
|
|
n-api: False
|
|
n-api-meta: False
|
|
n-cond: False
|
|
n-cpu: False
|
|
n-novnc: False
|
|
n-sch: False
|
|
nova: False
|
|
placement-api: False
|
|
# NOTE(TheJulia): This job runs neutron so neutron dependent
|
|
# tests can also exercised as part of CI.
|
|
- job:
|
|
name: ironic-tempest-functional-rbac-scope-enforced
|
|
description: ironic-tempest-funcitonal-rbac-scope-enforced
|
|
parent: ironic-tempest-functional-python3
|
|
vars:
|
|
devstack_localrc:
|
|
IRONIC_ENFORCE_SCOPE: True
|
|
|
|
- job:
|
|
name: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
|
|
description: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
|
|
parent: tempest-multinode-full-base
|
|
nodeset: openstack-two-node-noble
|
|
pre-run: playbooks/ci-workarounds/pre.yaml
|
|
required-projects:
|
|
- opendev.org/openstack/ironic
|
|
- opendev.org/openstack/ironic-python-agent
|
|
- opendev.org/openstack/ironic-python-agent-builder
|
|
- opendev.org/openstack/ironic-tempest-plugin
|
|
- opendev.org/openstack/virtualbmc
|
|
- opendev.org/openstack/networking-generic-switch
|
|
irrelevant-files:
|
|
- ^.*\.rst$
|
|
- ^api-ref/.*$
|
|
- ^doc/.*$
|
|
- ^driver-requirements.txt$
|
|
- ^install-guide/.*$
|
|
- ^ironic/locale/.*$
|
|
- ^ironic/tests/.*$
|
|
- ^\.pre-commit-config\.yaml$
|
|
- ^redfish-interop-profiles/.*$
|
|
- ^releasenotes/.*$
|
|
- ^setup.cfg$
|
|
- ^tools/.*$
|
|
- ^tox.ini$
|
|
roles:
|
|
- zuul: opendev.org/zuul/zuul-jobs
|
|
vars:
|
|
tox_envlist: all
|
|
tempest_concurrency: 3
|
|
tempest_test_regex: "BaremetalMultitenancy"
|
|
tempest_test_timeout: 2400
|
|
devstack_localrc:
|
|
BUILD_TIMEOUT: 2400
|
|
DEFAULT_INSTANCE_TYPE: baremetal
|
|
ENABLE_TENANT_TUNNELS: False
|
|
ENABLE_TENANT_VLANS: True
|
|
FORCE_CONFIG_DRIVE: True
|
|
GENERIC_SWITCH_KEY_FILE: /opt/stack/.ssh/id_rsa
|
|
HOST_TOPOLOGY: multinode
|
|
HOST_TOPOLOGY_ROLE: primary
|
|
INSTALL_TEMPEST: False # Don't install a tempest package globally
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
HOST_TOPOLOGY_SUBNODES: "{{ hostvars['compute1']['nodepool']['public_ipv4'] }}"
|
|
IRONIC_BAREMETAL_BASIC_OPS: True
|
|
IRONIC_BUILD_DEPLOY_RAMDISK: False
|
|
IRONIC_CALLBACK_TIMEOUT: 600
|
|
IRONIC_DEPLOY_DRIVER: ipmi
|
|
IRONIC_ENABLED_NETWORK_INTERFACES: flat,neutron
|
|
IRONIC_INSPECTOR_BUILD_RAMDISK: False
|
|
IRONIC_NETWORK_INTERFACE: neutron
|
|
IRONIC_PROVISION_NETWORK_NAME: ironic-provision
|
|
IRONIC_PROVISION_SUBNET_GATEWAY: 10.0.5.1
|
|
IRONIC_PROVISION_SUBNET_PREFIX: 10.0.5.0/24
|
|
IRONIC_RAMDISK_TYPE: tinyipa
|
|
IRONIC_TEMPEST_BUILD_TIMEOUT: 600
|
|
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
|
|
IRONIC_USE_LINK_LOCAL: True
|
|
IRONIC_VM_COUNT: 3
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
IRONIC_VM_LOG_DIR: '{{ devstack_base_dir }}/ironic-bm-logs'
|
|
IRONIC_VM_SPECS_RAM: 1024
|
|
IRONIC_VM_SPECS_DISK: 4
|
|
IRONIC_VM_SPECS_CPU: 1
|
|
OVS_BRIDGE_MAPPINGS: 'mynetwork:brbm,public:br-infra'
|
|
OVS_PHYSICAL_BRIDGE: brbm
|
|
PHYSICAL_NETWORK: mynetwork
|
|
PUBLIC_BRIDGE: br-infra
|
|
Q_AGENT: openvswitch
|
|
Q_ML2_TENANT_NETWORK_TYPE: vlan
|
|
Q_PLUGIN: ml2
|
|
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
|
|
SWIFT_ENABLE_TEMPURLS: True
|
|
SWIFT_TEMPURL_KEY: secretkey
|
|
TENANT_VLAN_RANGE: 100:150
|
|
VIRT_DRIVER: ironic
|
|
# We're using a lot of disk space in this job. Some testing nodes have
|
|
# a small root partition, so use /opt which is mounted from a bigger
|
|
# ephemeral partition on such nodes
|
|
LIBVIRT_STORAGE_POOL_PATH: /opt/libvirt/images
|
|
ML2_L3_PLUGIN: router,trunk
|
|
|
|
devstack_plugins:
|
|
ironic: https://opendev.org/openstack/ironic
|
|
networking-generic-switch: https://opendev.org/openstack/networking-generic-switch
|
|
tempest_plugins:
|
|
- ironic-tempest-plugin
|
|
zuul_copy_output:
|
|
'{{ devstack_base_dir }}/ironic-bm-logs': 'logs'
|
|
'{{ devstack_base_dir }}/data/networking-generic-switch/netmiko_session.log': 'logs'
|
|
devstack_services:
|
|
atop: True
|
|
c-api: False
|
|
c-bak: False
|
|
c-sch: False
|
|
c-vol: False
|
|
cinder: False
|
|
|
|
s-account: True
|
|
s-container: True
|
|
s-object: True
|
|
s-proxy: True
|
|
|
|
dstat: True
|
|
g-api: True
|
|
key: True
|
|
mysql: True
|
|
n-api: True
|
|
n-api-meta: True
|
|
n-cond: True
|
|
n-cpu: True
|
|
n-novnc: True
|
|
n-sch: True
|
|
placement-api: True
|
|
q-agt: True
|
|
q-dhcp: True
|
|
q-l3: True
|
|
q-meta: True
|
|
q-metering: True
|
|
q-svc: True
|
|
ovn-controller: False
|
|
ovn-northd: False
|
|
q-ovn-metadata-agent: False
|
|
rabbit: True
|
|
group-vars:
|
|
subnode:
|
|
devstack_localrc:
|
|
ENABLE_TENANT_TUNNELS: False
|
|
ENABLE_TENANT_VLANS: True
|
|
FORCE_CONFIG_DRIVE: True
|
|
HOST_TOPOLOGY: multinode
|
|
HOST_TOPOLOGY_ROLE: subnode
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
IRONIC_BAREMETAL_BASIC_OPS: True
|
|
IRONIC_DEPLOY_DRIVER: ipmi
|
|
IRONIC_ENABLED_NETWORK_INTERFACES: flat,neutron
|
|
IRONIC_NETWORK_INTERFACE: neutron
|
|
IRONIC_PROVISION_NETWORK_NAME: ironic-provision
|
|
IRONIC_RAMDISK_TYPE: tinyipa
|
|
IRONIC_USE_LINK_LOCAL: True
|
|
IRONIC_VM_COUNT: 3
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
IRONIC_VM_LOG_DIR: '{{ devstack_base_dir }}/ironic-bm-logs'
|
|
IRONIC_VM_NETWORK_BRIDGE: sub1brbm
|
|
IRONIC_VM_SPECS_RAM: 1024
|
|
IRONIC_VM_SPECS_DISK: 4
|
|
IRONIC_VM_SPECS_CPU: 1
|
|
OVS_BRIDGE_MAPPINGS: 'mynetwork:sub1brbm,public:br-infra'
|
|
OVS_PHYSICAL_BRIDGE: sub1brbm
|
|
PHYSICAL_NETWORK: mynetwork
|
|
Q_AGENT: openvswitch
|
|
Q_ML2_TENANT_NETWORK_TYPE: vlan
|
|
VIRT_DRIVER: ironic
|
|
PUBLIC_BRIDGE: br-infra
|
|
LIBVIRT_STORAGE_POOL_PATH: /opt/libvirt/images
|
|
devstack_services:
|
|
atop: True
|
|
c-api: False
|
|
c-bak: False
|
|
c-sch: False
|
|
c-vol: False
|
|
cinder: False
|
|
|
|
q-agt: True
|
|
ovn-controller: False
|
|
ovn-northd: False
|
|
q-ovn-metadata-agent: False
|
|
n-cpu: True
|
|
|
|
- job:
|
|
# NOTE(JayF) This job sets up two nova-computes with two different shards
|
|
# TODO(JayF) Add a post-run validation to ensure the two n-cpus did not
|
|
# see each others' nodes
|
|
name: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-shard
|
|
description: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-shard
|
|
parent: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
|
|
nodeset: openstack-two-node-noble
|
|
vars:
|
|
tempest_test_regex: "BaremetalBasicOps"
|
|
devstack_localrc:
|
|
IRONIC_SHARDS: 1
|
|
IRONIC_SHARD_1_NAME: "main-node"
|
|
group-vars:
|
|
subnode:
|
|
devstack_localrc:
|
|
IRONIC_SHARDS: 1
|
|
IRONIC_SHARD_1_NAME: "subnode"
|
|
|
|
- job:
|
|
name: ironic-tox-unit-with-driver-libs
|
|
parent: openstack-tox
|
|
description: |
|
|
Run python 3 unit tests with driver dependencies installed.
|
|
vars:
|
|
tox_envlist: unit-with-driver-libs
|
|
|
|
- job:
|
|
name: ironic-tox-unit-mysql-migrations
|
|
parent: openstack-tox
|
|
description: |
|
|
Run MySQL based data model migrations separate to isolate failures.
|
|
vars:
|
|
tox_envlist: mysql-migrations
|
|
|
|
- job:
|
|
name: ironic-inspector-tempest-discovery-fast-track
|
|
description: ironic-inspector-tempest-discovery-fast-track
|
|
parent: ironic-inspector-tempest-discovery
|
|
vars:
|
|
tempest_test_regex: BareMetalFastTrackTest
|
|
devstack_localrc:
|
|
IRONIC_INSPECTOR_POWER_OFF: False
|
|
IRONIC_DEPLOY_FAST_TRACK: True
|
|
IRONIC_DEPLOY_FAST_TRACK_CLEANING: True
|
|
|
|
- job:
|
|
name: ironic-tempest-ipa-partition-uefi-pxe-grub2
|
|
description: Ironic tempest scenario test utilizing PXE, UEFI, and Grub2
|
|
parent: ironic-base
|
|
vars:
|
|
devstack_localrc:
|
|
IRONIC_ENABLED_HARDWARE_TYPES: ipmi
|
|
IRONIC_ENABLED_BOOT_INTERFACES: pxe
|
|
IRONIC_IPXE_ENABLED: False
|
|
IRONIC_RAMDISK_TYPE: tinyipa
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
|
|
- job:
|
|
name: ironic-tempest-ipa-wholedisk-bios-ipmi-direct-dib
|
|
parent: ironic-base
|
|
vars:
|
|
devstack_services:
|
|
atop: True
|
|
s-account: True
|
|
s-container: True
|
|
s-object: True
|
|
s-proxy: True
|
|
devstack_localrc:
|
|
IRONIC_DIB_RAMDISK_OS: centos9
|
|
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
IRONIC_VM_INTERFACE_COUNT: 1
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
SWIFT_ENABLE_TEMPURLS: True
|
|
SWIFT_TEMPURL_KEY: secretkey
|
|
IRONIC_BOOT_MODE: bios
|
|
|
|
# NOTE(TheJulia): This job does not work on Ubuntu Noble, much less
|
|
# newer EDK2 images when in UEFI mode. As such is being disabled.
|
|
# Reasons: EDK2 has a ton of ipv6 bugs. IPv6 support not in qemu/ipxe
|
|
# bios roms *either*. Concurrently, this means we can't test realistic
|
|
# deployment and booting, nor can we test a short circuited ipxe workflow
|
|
# upstream. In case this situation changes, keeping the job configuration
|
|
# below.
|
|
- job:
|
|
name: ironic-tempest-ipxe-ipv6
|
|
description: ironic-tempest-ipxe-ipv6
|
|
parent: ironic-base
|
|
required-projects:
|
|
- opendev.org/openstack/networking-generic-switch
|
|
vars:
|
|
tempest_test_timeout: 2400
|
|
devstack_services:
|
|
atop: True
|
|
# NOTE(TheJulia): It seems our devstack plugin does not play well
|
|
# with multitenancy and the newer neutron service names.
|
|
q-agt: True
|
|
q-dhcp: True
|
|
q-l3: True
|
|
q-meta: False
|
|
q-metering: False
|
|
q-svc: True
|
|
swift: True
|
|
devstack_plugins:
|
|
ironic: https://opendev.org/openstack/ironic
|
|
networking-generic-switch: https://opendev.org/openstack/networking-generic-switch
|
|
# NOTE(TheJulia): Nova default behavior is to rely upon stack defaults, v6 needs to
|
|
# be explicit. This is the best place to wire it in.
|
|
tempest_test_regex: BaremetalSingleTenant
|
|
devstack_localrc:
|
|
IRONIC_AGENT_IMAGE_DOWNLOAD_SOURCE: http
|
|
IPV6_ENABLED: True
|
|
IRONIC_IP_VERSION: 6
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
IRONIC_ENABLED_BOOT_INTERFACES: ipxe,pxe
|
|
IRONIC_DEFAULT_BOOT_INTERFACE: ipxe
|
|
IRONIC_IPXE_ENABLED: True
|
|
IRONIC_PROVISION_NETWORK_NAME: ironic-provision
|
|
OVS_PHYSICAL_BRIDGE: brbm
|
|
PHYSICAL_NETWORK: mynetwork
|
|
TENANT_VLAN_RANGE: 100:150
|
|
IRONIC_ENABLED_NETWORK_INTERFACES: flat,neutron
|
|
IRONIC_NETWORK_INTERFACE: neutron
|
|
IRONIC_DEFAILT_RESCUE_INTERFACE: no-rescue
|
|
IRONIC_USE_LINK_LOCAL: True
|
|
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
IRONIC_VM_INTERFACE_COUNT: 1
|
|
# This will swap and needs to get to tinycore soon.
|
|
IRONIC_VM_SPECS_CPU: 2
|
|
Q_PLUGIN: ml2
|
|
ENABLE_TENANT_VLANS: True
|
|
Q_ML2_TENANT_NETWORK_TYPE: vlan
|
|
OVS_BRIDGE_MAPPINGS: "public:br-ex,mynetwork:brbm"
|
|
USE_PROVIDER_NETWORKING: True
|
|
PUBLIC_PHYSICAL_NETWORK: public
|
|
PUBLIC_PROVIDERNET_TYPE: flat
|
|
Q_USE_PROVIDERNET_FOR_PUBLIC: True
|
|
BUILD_TIMEOUT: 2000
|
|
IRONIC_TEMPEST_BUILD_TIMEOUT: 2000
|
|
IRONIC_PING_TIMEOUT: 1440
|
|
IRONIC_BOOT_MODE: bios
|
|
|
|
- job:
|
|
name: ironic-tempest-ovn-uefi-ipxe-ipv6
|
|
description: ironic-tempest-ovn-uefi-ipxe-ipv6
|
|
parent: ironic-base
|
|
required-projects:
|
|
- opendev.org/openstack/networking-generic-switch
|
|
vars:
|
|
tempest_test_timeout: 2400
|
|
devstack_services:
|
|
atop: True
|
|
q-agt: false
|
|
q-dhcp: false
|
|
q-l3: false
|
|
ovn-controller: true
|
|
ovn-northd: true
|
|
ovsdb-server: true
|
|
q-ovn-metadata-agent: true
|
|
q-metering: false
|
|
swift: true
|
|
devstack_plugins:
|
|
ironic: https://opendev.org/openstack/ironic
|
|
networking-generic-switch: https://opendev.org/openstack/networking-generic-switch
|
|
tempest_test_regex: BaremetalSingleTenant
|
|
devstack_localrc:
|
|
IRONIC_AGENT_IMAGE_DOWNLOAD_SOURCE: http
|
|
IRONIC_RAMDISK_TYPE: dib
|
|
IRONIC_DIB_RAMDISK_OS: centos9
|
|
IPV6_ENABLED: True
|
|
IRONIC_IP_VERSION: 6
|
|
IRONIC_IPV6_ADDRESS_MODE: dhcpv6-stateful
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
IRONIC_ENABLED_BOOT_INTERFACES: ipxe,pxe
|
|
IRONIC_DEFAULT_BOOT_INTERFACE: ipxe
|
|
IRONIC_IPXE_ENABLED: True
|
|
IRONIC_PROVISION_NETWORK_NAME: ironic-provision
|
|
OVS_PHYSICAL_BRIDGE: brbm
|
|
PHYSICAL_NETWORK: mynetwork
|
|
OVN_BRIDGE_MAPPINGS: "public:br-ex,mynetwork:brbm"
|
|
TENANT_VLAN_RANGE: 100:150
|
|
IRONIC_ENABLED_NETWORK_INTERFACES: flat,neutron
|
|
IRONIC_NETWORK_INTERFACE: neutron
|
|
IRONIC_DEFAULT_RESCUE_INTERFACE: no-rescue
|
|
IRONIC_USE_LINK_LOCAL: True
|
|
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
IRONIC_VM_INTERFACE_COUNT: 1
|
|
IRONIC_VM_SPECS_CPU: 2
|
|
Q_AGENT: ovn
|
|
ENABLE_CHASSIS_AS_GW: true
|
|
Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn
|
|
ML2_L3_PLUGIN: ovn-router,trunk
|
|
ENABLE_TENANT_VLANS: True
|
|
Q_ML2_TENANT_NETWORK_TYPE: vlan
|
|
PUBLIC_PHYSICAL_NETWORK: public
|
|
PUBLIC_PROVIDERNET_TYPE: flat
|
|
BUILD_TIMEOUT: 2000
|
|
IRONIC_TEMPEST_BUILD_TIMEOUT: 2000
|
|
IRONIC_PING_TIMEOUT: 1440
|
|
|
|
# NOTE(rpittau): OLD TINYIPA JOBS
|
|
# Those jobs are used by other projects, we leave them here until
|
|
# we can convert them to dib.
|
|
|
|
# Used by devstack/ironic/nova/neutron
|
|
- job:
|
|
name: ironic-tempest-bios-ipmi-direct-tinyipa
|
|
description: ironic-tempest-wholedisk-bios-ipmi-direct-tinyipa that also tests cleaning.
|
|
parent: ironic-base
|
|
vars:
|
|
tempest_test_regex: test_baremetal_server_ops_wholedisk_image
|
|
devstack_localrc:
|
|
IRONIC_DEFAULT_RESCUE_INTERFACE: agent
|
|
IRONIC_ENABLED_RESCUE_INTERFACES: "fake,agent,no-rescue"
|
|
IRONIC_RAMDISK_TYPE: tinyipa
|
|
IRONIC_VM_SPECS_RAM: 1024
|
|
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
SWIFT_ENABLE_TEMPURLS: True
|
|
SWIFT_TEMPURL_KEY: secretkey
|
|
IRONIC_BOOT_MODE: bios
|
|
devstack_services:
|
|
atop: True
|
|
s-account: True
|
|
s-container: True
|
|
s-object: True
|
|
s-proxy: True
|
|
|
|
- job:
|
|
name: ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa
|
|
description: Alias for ironic-tempest-wholedisk-bios-ipmi-direct-tinyipa
|
|
parent: ironic-tempest-bios-ipmi-direct-tinyipa
|
|
|
|
- job:
|
|
name: ironic-tempest-uefi-redfish-vmedia-4k
|
|
description: "Build 4k disk artifacts with 4k VMs"
|
|
parent: ironic-tempest-uefi-redfish-vmedia
|
|
vars:
|
|
tempest_test_timeout: 2800
|
|
devstack_localrc:
|
|
# NOTE(TheJulia): This job takes a while because it is blending
|
|
# vmedia *and* 4k block device layouts which requires mastering and
|
|
# streaming a real image as opposed to cirros.
|
|
BUILD_TIMEOUT: 2400
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
IRONIC_VM_COUNT: 1
|
|
IRONIC_VM_SPECS_DISK: 20
|
|
IRONIC_VM_BLOCK_SIZE: 4096
|
|
IRONIC_BUILD_DIB_IMAGE: True
|
|
SWIFT_ENABLE_TEMPURLS: False
|
|
# This job by defaults deploys a dib cirros image,
|
|
# and to do so, the instance user is not cirros.
|
|
DEFAULT_INSTANCE_USER: "cloud-user"
|
|
IRONIC_DEFAULT_RESCUE_INTERFACE: "no-rescue"
|
|
IRONIC_ENABLED_RESCUE_INTERFACES: "fake,no-rescue"
|
|
|
|
- job:
|
|
name: ironic-grenade
|
|
parent: grenade
|
|
timeout: 10800
|
|
irrelevant-files:
|
|
- ^driver-requirements.txt$
|
|
- ^.*\.rst$
|
|
- ^api-ref/.*$
|
|
- ^doc/.*$
|
|
- ^install-guide/.*$
|
|
- ^ironic/locale/.*$
|
|
- ^ironic/tests/.*$
|
|
- ^\.pre-commit-config\.yaml$
|
|
- ^redfish-interop-profiles/.*$
|
|
- ^releasenotes/.*$
|
|
- ^setup.cfg$
|
|
- ^tools/.*$
|
|
- ^tox.ini$
|
|
required-projects:
|
|
- opendev.org/openstack/grenade
|
|
- opendev.org/openstack/ironic
|
|
- opendev.org/openstack/ironic-python-agent
|
|
- opendev.org/openstack/ironic-python-agent-builder
|
|
- opendev.org/openstack/ironic-tempest-plugin
|
|
- opendev.org/openstack/virtualbmc
|
|
vars:
|
|
grenade_devstack_localrc:
|
|
shared:
|
|
#NOTE: when in UEFI mode, TFTP packets don't get tracked nor
|
|
#pass between original and upgrade networks. Switch to BIOS
|
|
#until we can fix this properly.
|
|
IRONIC_BOOT_MODE: bios
|
|
DEFAULT_INSTANCE_TYPE: baremetal
|
|
FORCE_CONFIG_DRIVE: True
|
|
INSTALL_TEMPEST: False
|
|
VIRT_DRIVER: ironic
|
|
BUILD_TIMEOUT: 1200
|
|
IRONIC_TEMPEST_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: True
|
|
IRONIC_VM_COUNT: 4
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
IRONIC_VM_SPECS_RAM: 1024
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
Q_AGENT: openvswitch
|
|
Q_ML2_TENANT_NETWORK_TYPE: vxlan
|
|
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
|
|
SWIFT_ENABLE_TEMPURLS: True
|
|
SWIFT_TEMPURL_KEY: secretkey
|
|
EBTABLES_RACE_FIX: True
|
|
LIBVIRT_STORAGE_POOL_PATH: /opt/libvirt/images
|
|
INSTANCE_WAIT: 120
|
|
MYSQL_GATHER_PERFORMANCE: False
|
|
CIRROS_VERSION: 0.6.1
|
|
# Required as different access rights are used by default
|
|
# and the classic devstack config which is defaulted doesn't work.
|
|
IRONIC_ENFORCE_SCOPE: True
|
|
old:
|
|
IRONIC_VM_LOG_DIR: '{{ devstack_bases.old }}/ironic-bm-logs'
|
|
grenade_localrc:
|
|
BASE_RUN_SMOKE: False
|
|
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
|
|
# Neutron services
|
|
# In the Ironic grenade job we want to explicitly enable ML2/OVS agents
|
|
# and disable OVN
|
|
q-agt: true
|
|
q-dhcp: true
|
|
q-l3: true
|
|
q-meta: true
|
|
q-svc: true
|
|
q-metering: true
|
|
ovn-controller: false
|
|
ovn-northd: false
|
|
q-ovn-metadata-agent: false
|
|
tempest_plugins:
|
|
- ironic-tempest-plugin
|
|
tempest_test_regex: ironic_tempest_plugin.tests.scenario
|
|
tox_envlist: all
|
|
tempest_concurrency: 1
|
|
zuul_copy_output:
|
|
'{{ devstack_bases.old }}/ironic-bm-logs': logs
|
|
|
|
- job:
|
|
name: ironic-grenade-multinode-multitenant
|
|
parent: grenade-multinode
|
|
timeout: 10800
|
|
irrelevant-files:
|
|
- ^driver-requirements.txt$
|
|
- ^.*\.rst$
|
|
- ^api-ref/.*$
|
|
- ^doc/.*$
|
|
- ^install-guide/.*$
|
|
- ^ironic/locale/.*$
|
|
- ^ironic/tests/.*$
|
|
- ^\.pre-commit-config\.yaml$
|
|
- ^redfish-interop-profiles/.*$
|
|
- ^releasenotes/.*$
|
|
- ^setup.cfg$
|
|
- ^tools/.*$
|
|
- ^tox.ini$
|
|
required-projects:
|
|
- opendev.org/openstack/grenade
|
|
- opendev.org/openstack/ironic
|
|
- opendev.org/openstack/ironic-python-agent
|
|
- opendev.org/openstack/ironic-python-agent-builder
|
|
- opendev.org/openstack/ironic-tempest-plugin
|
|
- opendev.org/openstack/networking-generic-switch
|
|
- opendev.org/openstack/python-ironicclient
|
|
- opendev.org/openstack/virtualbmc
|
|
vars:
|
|
grenade_devstack_localrc:
|
|
shared:
|
|
DEFAULT_INSTANCE_TYPE: baremetal
|
|
ENABLE_TENANT_TUNNELS: False
|
|
ENABLE_TENANT_VLANS: True
|
|
FORCE_CONFIG_DRIVE: True
|
|
HOST_TOPOLOGY: multinode
|
|
HOST_TOPOLOGY_ROLE: primary
|
|
BUILD_TIMEOUT: 1200
|
|
INSTALL_TEMPEST: False # Don't install a tempest package globally
|
|
HOST_TOPOLOGY_SUBNODES: "{{ hostvars['compute1']['nodepool']['public_ipv4'] }}"
|
|
IRONIC_BAREMETAL_BASIC_OPS: True
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
IRONIC_BUILD_DEPLOY_RAMDISK: False
|
|
IRONIC_CALLBACK_TIMEOUT: 700
|
|
IRONIC_DEFAULT_DEPLOY_INTERFACE: direct
|
|
IRONIC_DEPLOY_DRIVER: ipmi
|
|
IRONIC_VM_COUNT: 4
|
|
IRONIC_VM_EPHEMERAL_DISK: 1
|
|
IRONIC_VM_SPECS_RAM: 1024
|
|
IRONIC_RAMDISK_TYPE: tinyipa
|
|
IRONIC_TEMPEST_BUILD_TIMEOUT: 1200
|
|
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
|
|
|
|
IRONIC_ENABLED_NETWORK_INTERFACES: flat,neutron
|
|
IRONIC_NETWORK_INTERFACE: neutron
|
|
IRONIC_PROVISION_NETWORK_NAME: ironic-provision
|
|
IRONIC_PROVISION_SUBNET_GATEWAY: 10.0.5.1
|
|
IRONIC_PROVISION_SUBNET_PREFIX: 10.0.5.0/24
|
|
IRONIC_USE_LINK_LOCAL: True
|
|
OVS_BRIDGE_MAPPINGS: 'mynetwork:brbm,public:br-infra'
|
|
OVS_PHYSICAL_BRIDGE: brbm
|
|
PHYSICAL_NETWORK: mynetwork
|
|
PUBLIC_BRIDGE: br-infra
|
|
Q_AGENT: openvswitch
|
|
Q_ML2_TENANT_NETWORK_TYPE: vlan
|
|
Q_PLUGIN: ml2
|
|
SWIFT_ENABLE_TEMPURLS: True
|
|
SWIFT_TEMPURL_KEY: secretkey
|
|
TENANT_VLAN_RANGE: 100:150
|
|
VIRT_DRIVER: ironic
|
|
EBTABLES_RACE_FIX: True
|
|
LIBVIRT_STORAGE_POOL_PATH: /opt/libvirt/images
|
|
IRONIC_VM_LOG_DIR: '/opt/stack/ironic-bm-logs'
|
|
grenade_localrc:
|
|
BASE_RUN_SMOKE: False
|
|
devstack_plugins:
|
|
ironic: https://opendev.org/openstack/ironic
|
|
networking-generic-switch: https://opendev.org/openstack/networking-generic-switch
|
|
devstack_services:
|
|
atop: True
|
|
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: BaremetalMultitenancy
|
|
tox_envlist: all
|
|
tempest_concurrency: 1
|
|
grenade_tempest_concurrency: 1
|
|
grenade_test_timeout: 2600
|
|
zuul_copy_output:
|
|
'/opt/stack/ironic-bm-logs': logs
|
|
'{{ devstack_base_dir }}/data/networking-generic-switch/netmiko_session.log': 'logs'
|
|
group-vars:
|
|
subnode:
|
|
devstack_plugins:
|
|
ironic: https://opendev.org/openstack/ironic
|
|
networking-generic-switch: https://opendev.org/openstack/networking-generic-switch
|
|
devstack_services:
|
|
atop: True
|
|
c-api: False
|
|
c-bak: False
|
|
c-sch: False
|
|
c-vol: False
|
|
cinder: False
|
|
g-api: True
|
|
ir-api: True
|
|
ir-cond: True
|
|
n-cpu: True
|
|
q-agt: True
|
|
virtualbmc: True
|
|
grenade_devstack_localrc:
|
|
shared:
|
|
DEFAULT_INSTANCE_TYPE: baremetal
|
|
ENABLE_TENANT_TUNNELS: False
|
|
ENABLE_TENANT_VLANS: True
|
|
FORCE_CONFIG_DRIVE: True
|
|
HOST_TOPOLOGY: multinode
|
|
HOST_TOPOLOGY_ROLE: subnode
|
|
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
|
IRONIC_BAREMETAL_BASIC_OPS: True
|
|
IRONIC_BUILD_DEPLOY_RAMDISK: False
|
|
BUILD_TIMEOUT: 1200
|
|
IRONIC_CALLBACK_TIMEOUT: 700
|
|
IRONIC_TEMPEST_BUILD_TIMEOUT: 1200
|
|
IRONIC_DEFAULT_DEPLOY_INTERFACE: direct
|
|
IRONIC_DEPLOY_DRIVER: ipmi
|
|
IRONIC_ENABLED_NETWORK_INTERFACES: flat,neutron
|
|
IRONIC_NETWORK_INTERFACE: neutron
|
|
IRONIC_PROVISION_NETWORK_NAME: ironic-provision
|
|
IRONIC_PROVISION_SUBNET_GATEWAY: 10.0.5.1
|
|
IRONIC_PROVISION_SUBNET_PREFIX: 10.0.5.0/24
|
|
IRONIC_RAMDISK_TYPE: tinyipa
|
|
IRONIC_USE_LINK_LOCAL: True
|
|
IRONIC_VM_COUNT: 4
|
|
IRONIC_VM_EPHEMERAL_DISK: 0
|
|
IRONIC_VM_SPECS_RAM: 1024
|
|
IRONIC_VM_NETWORK_BRIDGE: sub1brbm
|
|
OVS_BRIDGE_MAPPINGS: 'mynetwork:sub1brbm,public:br-infra'
|
|
OVS_PHYSICAL_BRIDGE: sub1brbm
|
|
PHYSICAL_NETWORK: mynetwork
|
|
PUBLIC_BRIDGE: br-infra
|
|
Q_AGENT: openvswitch
|
|
Q_ML2_TENANT_NETWORK_TYPE: vlan
|
|
Q_PLUGIN: ml2
|
|
SWIFT_ENABLE_TEMPURLS: True
|
|
SWIFT_TEMPURL_KEY: secretkey
|
|
VIRT_DRIVER: ironic
|
|
EBTABLES_RACE_FIX: True
|
|
LIBVIRT_STORAGE_POOL_PATH: /opt/libvirt/images
|
|
IRONIC_VM_LOG_DIR: '/opt/stack/ironic-bm-logs'
|
|
|
|
- job:
|
|
name: ironic-cross-sushy
|
|
nodeset: ubuntu-noble
|
|
description: Ironic unit tests run with Sushy from source
|
|
parent: openstack-tox
|
|
required-projects:
|
|
- opendev.org/openstack/ironic
|
|
- opendev.org/openstack/sushy
|
|
irrelevant-files:
|
|
- ^.*\.rst$
|
|
- ^api-ref/.*$
|
|
- ^devstack/.*$
|
|
- ^doc/.*$
|
|
- ^\.pre-commit-config\.yaml$
|
|
- ^releasenotes/.*$
|
|
- ^tools/.*$
|
|
vars:
|
|
# NOTE(dtantsur): change this every release cycle if needed.
|
|
bindep_profile: test py312
|
|
tox_envlist: py312
|
|
# This variable ensures that sushy is installed from source.
|
|
tox_install_siblings: true
|
|
# NOTE(dtantsur): this job will be run on sushy as well, so it's
|
|
# important to set the working dir to the Ironic checkout.
|
|
zuul_work_dir: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/ironic'].src_dir }}"
|
|
|
|
- job:
|
|
name: ironic-grenade-skip-level
|
|
parent: ironic-grenade
|
|
vars:
|
|
grenade_from_branch: stable/zed
|
|
grenade_to_branch: master
|
|
grenade_localrc:
|
|
# NOTE(iurygregory): This is required for skip upgrades.
|
|
NOVA_ENABLE_UPGRADE_WORKAROUND: True
|