CentOS Stream 10 ships kernel 6.12 but backports IOMMU and VFIO API changes from upstream 6.15+. The existing compat header gates on LINUX_VERSION_CODE alone, which selects the wrong (old) API on CentOS because the kernel reports 6.12 while the actual signatures are 6.15-style. This prevents the module from compiling on RHEL-family kernels. The compat header now defines a single PCI_SIM_HAS_615_API predicate that checks LINUX_VERSION_CODE >= 6.15 or RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(10, 3), and all five feature macros alias it. Adding future distro gates is a one-line edit. The QEMU test scripts hardcoded qemu-system-x86_64, which does not exist on CentOS/RHEL where the binary is /usr/libexec/qemu-kvm. All five QEMU-related scripts now auto-detect the binary via a QEMU_BIN environment variable with PATH-based fallback. The DevStack build_pci_sim() function used raw apt-get calls. It now uses devstack's is_ubuntu/is_fedora helpers with install_package for distro-aware package selection. Build and test documentation is updated with CentOS/Fedora install commands and CentOS Stream 10 as a compatibility target. A cyborg-tempest-centos-10-stream Zuul CI job is added to the weekly-periodic and experimental pipeline to validate pci-sim on CentOS Stream 10. Assisted-By: Claude Code (claude-opus-4-6) Change-Id: I7ecae754465510be9efc55667bb5ed1d5f9a5f68 Signed-off-by: Chandan Kumar (raukadah) <chkumar@redhat.com>
141 lines
3.9 KiB
YAML
141 lines
3.9 KiB
YAML
- job:
|
|
name: cyborg-tempest-base
|
|
abstract: true
|
|
description: |
|
|
base job of all cyborg tempest jobs
|
|
parent: devstack-tempest
|
|
timeout: 7800
|
|
nodeset: devstack-single-node-debian-trixie
|
|
required-projects: &base_required_projects
|
|
- openstack/cyborg
|
|
- openstack/python-cyborgclient
|
|
- openstack/cyborg-tempest-plugin
|
|
- openstack/tempest
|
|
vars: &cyborg_base_vars
|
|
devstack_plugins: &cyborg_devstack_plugins
|
|
cyborg: https://opendev.org/openstack/cyborg
|
|
devstack_services: &cyborg_devstack_services
|
|
tempest: true
|
|
s-account: false
|
|
s-container: false
|
|
s-object: false
|
|
s-proxy: false
|
|
c-api: false
|
|
c-bak: false
|
|
c-sch: false
|
|
c-vol: false
|
|
cinder: false
|
|
devstack_localrc:
|
|
ENABLE_PCI_SIM: true
|
|
tempest_plugins:
|
|
- cyborg-tempest-plugin
|
|
tempest_test_regex: cyborg_tempest_plugin
|
|
tox_envlist: all
|
|
irrelevant-files: &base_irrelevant_files
|
|
- ^.*\.rst$
|
|
- ^api-ref/.*$
|
|
- ^doc/.*$
|
|
- ^setup.cfg$
|
|
- ^releasenotes/.*$
|
|
- ^(test-|)requirements.txt$
|
|
- ^.git.*$
|
|
- ^tox.ini$
|
|
- ^cyborg/tests/.*$
|
|
|
|
- job:
|
|
name: cyborg-grenade
|
|
description: |
|
|
Grenade job that performs upgrade from previous release(N-1) to
|
|
current release(N).
|
|
parent: grenade
|
|
required-projects: *base_required_projects
|
|
vars: &cyborg_grenade_vars
|
|
<<: *cyborg_base_vars
|
|
devstack_localrc:
|
|
ENABLE_PCI_SIM: false
|
|
irrelevant-files: *base_irrelevant_files
|
|
|
|
- job:
|
|
name: cyborg-grenade-skip-level-always
|
|
description: |
|
|
Grenade job that skips the previous release, validating that projects
|
|
can support upgrades from N-2 to N release. It will always upgrade
|
|
to the current branch. For example: If N-2 is 2025.1 release then N
|
|
would be 2026.1.
|
|
parent: grenade-skip-level-always
|
|
required-projects: *base_required_projects
|
|
vars: *cyborg_grenade_vars
|
|
irrelevant-files: *base_irrelevant_files
|
|
|
|
- job:
|
|
name: cyborg-multinode-tempest
|
|
abstract: true
|
|
parent: cyborg-tempest-base
|
|
nodeset: devstack-two-node-debian-trixie
|
|
description: |
|
|
Abstract multinode Cyborg devstack tempest job
|
|
group-vars:
|
|
subnode:
|
|
devstack_plugins: *cyborg_devstack_plugins
|
|
devstack_services:
|
|
<<: *cyborg_devstack_services
|
|
cyborg-api: false
|
|
cyborg-cond: false
|
|
tempest: false
|
|
devstack_localrc:
|
|
PCI_SIM_CREATE_TEST_FLAVORS: false
|
|
ENABLE_PCI_SIM: true
|
|
|
|
- job:
|
|
name: cyborg-tempest-py3
|
|
description: |
|
|
Cyborg devstack tempest tests job for >=Ussuri release
|
|
run on python 3.
|
|
parent: cyborg-multinode-tempest
|
|
|
|
- job:
|
|
name: cyborg-tempest-centos-10-stream
|
|
parent: cyborg-tempest-base
|
|
nodeset: devstack-single-node-centos-10-stream
|
|
description: |
|
|
Cyborg devstack tempest tests job to test pci-sim on
|
|
CentOS Stream 10.
|
|
|
|
- job:
|
|
name: cyborg-tempest-ipv6
|
|
parent: devstack-tempest-ipv6
|
|
nodeset: devstack-single-node-debian-trixie
|
|
description: |
|
|
Cyborg devstack tempest tests job for IPv6-only deployment
|
|
voting: true
|
|
timeout: 7800
|
|
required-projects: *base_required_projects
|
|
vars: *cyborg_base_vars
|
|
irrelevant-files: *base_irrelevant_files
|
|
|
|
- project:
|
|
templates:
|
|
- openstack-cover-jobs
|
|
- check-requirements
|
|
- release-notes-jobs-python3
|
|
- publish-openstack-docs-pti
|
|
- openstack-python3-jobs
|
|
check:
|
|
jobs:
|
|
- cyborg-tempest-py3
|
|
- cyborg-tempest-ipv6
|
|
- cyborg-grenade
|
|
- cyborg-grenade-skip-level-always
|
|
gate:
|
|
jobs:
|
|
- cyborg-tempest-py3
|
|
- cyborg-tempest-ipv6
|
|
- cyborg-grenade
|
|
- cyborg-grenade-skip-level-always
|
|
experimental:
|
|
jobs:
|
|
- cyborg-tempest-centos-10-stream
|
|
periodic-weekly:
|
|
jobs:
|
|
- cyborg-tempest-centos-10-stream
|