From a6e29d219cdbbbbc5730799e16d31c5e4496bf09 Mon Sep 17 00:00:00 2001 From: Pierre Riteau Date: Wed, 12 Nov 2025 12:59:32 +0100 Subject: [PATCH] Drop support for CentOS Stream 9 and Rocky Linux 9 CentOS Stream 9 and Rocky Linux 9 are no longer supported as host operating systems or base container images. This also drops all the related testing in CI. Note that IPA images still use CentOS Stream 9 until images built on CentOS Stream 10 are fully validated. Change-Id: I3f0eccec38c644484ffc27891e844cdf05cb28bd Signed-off-by: Pierre Riteau --- ansible/inventory/group_vars/all/globals | 11 +- ansible/inventory/group_vars/all/infra-vms | 14 +- ansible/inventory/group_vars/all/seed-vm | 14 +- ansible/roles/kolla-ansible/vars/RedHat.yml | 4 +- dev/functions | 20 +-- .../configuration/reference/bifrost.rst | 2 +- .../configuration/reference/network.rst | 9 +- .../reference/os-distribution.rst | 8 +- .../configuration/reference/overcloud-dib.rst | 2 +- doc/source/contributor/testing.rst | 2 +- doc/source/installation.rst | 4 +- doc/source/resources.rst | 11 +- doc/source/support-matrix.rst | 16 +- etc/kayobe/globals.yml | 6 +- etc/kayobe/infra-vms.yml | 6 +- etc/kayobe/seed-vm.yml | 6 +- kayobe/plugins/filter/networks.py | 6 +- .../infra-vms-group-vars.j2 | 2 +- .../kayobe-overcloud-base/overrides.yml.j2 | 4 +- .../overrides.yml.j2 | 15 -- .../pre.yml | 13 +- .../kayobe-seed-vm-base/seed-group-vars.j2 | 2 +- .../notes/rocky-10-8d56e4bfffe39c08.yaml | 14 ++ zuul.d/jobs.yaml | 168 +----------------- zuul.d/nodesets.yaml | 12 -- zuul.d/project.yaml | 26 +-- 26 files changed, 78 insertions(+), 319 deletions(-) create mode 100644 releasenotes/notes/rocky-10-8d56e4bfffe39c08.yaml diff --git a/ansible/inventory/group_vars/all/globals b/ansible/inventory/group_vars/all/globals index 492307337..719368a6f 100644 --- a/ansible/inventory/group_vars/all/globals +++ b/ansible/inventory/group_vars/all/globals @@ -52,13 +52,12 @@ kayobe_ansible_user: "stack" # is "rocky". os_distribution: "rocky" -# OS release. Valid options are "9-stream" and "10-stream" (with "9-stream" -# being the default) when os_distribution is "centos", "9" and "10" (with "9" -# being the default) when os_distribution is "rocky", or "noble" when -# os_distribution is "ubuntu". +# OS release. Valid options are "10-stream" when os_distribution is "centos", +# "10" when os_distribution is "rocky", or "noble" when os_distribution is +# "ubuntu". os_release: >- - {{ '9-stream' if os_distribution == 'centos' - else '9' if os_distribution == 'rocky' + {{ '10-stream' if os_distribution == 'centos' + else '10' if os_distribution == 'rocky' else 'noble' }} ############################################################################### diff --git a/ansible/inventory/group_vars/all/infra-vms b/ansible/inventory/group_vars/all/infra-vms index ea0527e3d..58b91b97a 100644 --- a/ansible/inventory/group_vars/all/infra-vms +++ b/ansible/inventory/group_vars/all/infra-vms @@ -43,30 +43,18 @@ infra_vm_root_format: qcow2 # Base image for the infra VM root volume. Default is # "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img" # when os_distribution is "ubuntu", -# "https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2" -# when os_distribution is "rocky" and os_release is "9", # "https://dl.rockylinux.org/pub/rocky/10/images/x86_64/Rocky-10-GenericCloud-Base.latest.x86_64.qcow2" -# when os_distribution is "rocky" and os_release is "10", -# "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-9-latest.x86_64.qcow2" -# when os_distribution is "centos" and os_release is "9-stream", or +# when os_distribution is "rocky", or # "https://cloud.centos.org/centos/10-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-10-latest.x86_64.qcow2" # otherwise. infra_vm_root_image: >- {%- if os_distribution == 'ubuntu' %} https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img {%- elif os_distribution == 'rocky' %} - {%- if os_release == '9' %} - https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2 - {%- else -%} https://dl.rockylinux.org/pub/rocky/10/images/x86_64/Rocky-10-GenericCloud-Base.latest.x86_64.qcow2 - {%- endif %} - {%- else -%} - {%- if os_release == '9-stream' %} - https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-9-latest.x86_64.qcow2 {%- else -%} https://cloud.centos.org/centos/10-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-10-latest.x86_64.qcow2 {%- endif %} - {%- endif %} # Capacity of the infra VM data volume. infra_vm_data_capacity: 100G diff --git a/ansible/inventory/group_vars/all/seed-vm b/ansible/inventory/group_vars/all/seed-vm index 4283c413e..674d0384b 100644 --- a/ansible/inventory/group_vars/all/seed-vm +++ b/ansible/inventory/group_vars/all/seed-vm @@ -43,30 +43,18 @@ seed_vm_root_format: qcow2 # Base image for the seed VM root volume. Default is # "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img" # when os_distribution is "ubuntu", -# "https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2" -# when os_distribution is "rocky" and os_release is "9", # "https://dl.rockylinux.org/pub/rocky/10/images/x86_64/Rocky-10-GenericCloud-Base.latest.x86_64.qcow2" -# when os_distribution is "rocky" and os_release is "10", -# "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-9-latest.x86_64.qcow2" -# when os_distribution is "centos" and os_release is "9-stream", or +# when os_distribution is "rocky", or # "https://cloud.centos.org/centos/10-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-10-latest.x86_64.qcow2" # otherwise. seed_vm_root_image: >- {%- if os_distribution == 'ubuntu' %} https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img {%- elif os_distribution == 'rocky' %} - {%- if os_release == '9' %} - https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2 - {%- else -%} https://dl.rockylinux.org/pub/rocky/10/images/x86_64/Rocky-10-GenericCloud-Base.latest.x86_64.qcow2 - {%- endif %} - {%- else -%} - {%- if os_release == '9-stream' %} - https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-9-latest.x86_64.qcow2 {%- else -%} https://cloud.centos.org/centos/10-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-10-latest.x86_64.qcow2 {%- endif %} - {%- endif %} # Capacity of the seed VM data volume. seed_vm_data_capacity: 100G diff --git a/ansible/roles/kolla-ansible/vars/RedHat.yml b/ansible/roles/kolla-ansible/vars/RedHat.yml index 008dcd0f5..dd9e59bc3 100644 --- a/ansible/roles/kolla-ansible/vars/RedHat.yml +++ b/ansible/roles/kolla-ansible/vars/RedHat.yml @@ -5,6 +5,6 @@ kolla_ansible_package_dependencies: - git - libffi-devel - openssl-devel - - "{{ 'python3.12' if ansible_facts.distribution_major_version == '9' else 'python3' }}" - - "{{ 'python3.12-devel' if ansible_facts.distribution_major_version == '9' else 'python3-devel' }}" + - python3 + - python3-devel - rsync diff --git a/dev/functions b/dev/functions index d59c28ca6..4a627e2a9 100644 --- a/dev/functions +++ b/dev/functions @@ -141,18 +141,10 @@ function is_yum { fi } -function get_python { - if is_dnf; then - echo python3.12 - else - echo python3 - fi -} - function install_dependencies { echo "Installing package dependencies for kayobe" if is_dnf; then - sudo dnf -y install gcc git vim python3-devel python3-pyyaml libffi-devel python3.12-devel python3.12 python3.12-pyyaml + sudo dnf -y install gcc git vim python3-devel python3-pyyaml libffi-devel elif is_yum; then echo "CentOS 7 is no longer supported" exit 1 @@ -174,7 +166,7 @@ function install_venv { fi if [[ ! -f "${venv_path}/bin/activate" ]]; then echo "Creating virtual environment in ${venv_path}" - $(get_python) -m venv "${venv_path}" + python3 -m venv "${venv_path}" # NOTE: Virtualenv's activate and deactivate scripts reference an # unbound variable. set +u @@ -200,9 +192,7 @@ function install_venv_system_site_packages { fi if [[ ! -f "${venv_path}/bin/activate" ]]; then echo "Creating virtual environment in ${venv_path}" - # NOTE(wszumski): tenks doesn't currently support not using the system python - # interpreter with: "Failed to detect selinux python bindings" - /usr/bin/python3 -m venv --system-site-packages "${venv_path}" + python3 -m venv --system-site-packages "${venv_path}" # NOTE: Virtualenv's activate and deactivate scripts reference an # unbound variable. set +u @@ -228,9 +218,7 @@ function install_kayobe_dev_venv { function upgrade_kayobe_venv { echo "Upgrading kayobe virtual environment in ${KAYOBE_VENV_PATH}" - # NOTE(wszumski): We need to recreate the old virtualenv to switch to python3.12 - rm -rf "${KAYOBE_VENV_PATH}" - $(get_python) -m venv "${KAYOBE_VENV_PATH}" + python3 -m venv "${KAYOBE_VENV_PATH}" # NOTE: Virtualenv's activate and deactivate scripts reference an # unbound variable. set +u diff --git a/doc/source/configuration/reference/bifrost.rst b/doc/source/configuration/reference/bifrost.rst index 90e270f75..4180dd3da 100644 --- a/doc/source/configuration/reference/bifrost.rst +++ b/doc/source/configuration/reference/bifrost.rst @@ -77,7 +77,7 @@ information on building disk images. The default configuration builds a whole disk (partitioned) image using the selected :ref:`OS distribution ` with serial console enabled, -and SELinux disabled if CentOS Stream is used. Rocky Linux 9 users should use +and SELinux disabled if CentOS Stream is used. Rocky Linux 10 users should use the default method of building images with :ref:`Diskimage builder directly `. diff --git a/doc/source/configuration/reference/network.rst b/doc/source/configuration/reference/network.rst index 595d1e110..e134c1343 100644 --- a/doc/source/configuration/reference/network.rst +++ b/doc/source/configuration/reference/network.rst @@ -302,8 +302,7 @@ String format rules (CentOS Stream/Rocky Linux only) The string format of a rule is the string which would be appended to ``ip rule `` to create or delete the rule. Note that when using NetworkManager -(the default since Zed and in Yoga when using Rocky Linux 9) the table must be -specified by ID. +(the default when using Rocky Linux 10) the table must be specified by ID. To configure a network called ``example`` with an IP routing policy rule to handle traffic from the subnet ``10.1.0.0/24`` using the routing table with ID @@ -396,9 +395,9 @@ The following attributes are supported: ``bridge_stp`` .. note:: - For Rocky Linux 9, the ``bridge_stp`` attribute is set to false to preserve - backwards compatibility with network scripts. This is because the Network - Manager sets STP to true by default on bridges. + For Rocky Linux 10, the ``bridge_stp`` attribute is set to false to + preserve backwards compatibility with network scripts. This is because + the Network Manager sets STP to true by default on bridges. Enable or disable the Spanning Tree Protocol (STP) on this bridge. Should be set to a boolean value. The default is not set on Ubuntu systems. diff --git a/doc/source/configuration/reference/os-distribution.rst b/doc/source/configuration/reference/os-distribution.rst index 153f035b0..5f29d95ec 100644 --- a/doc/source/configuration/reference/os-distribution.rst +++ b/doc/source/configuration/reference/os-distribution.rst @@ -15,10 +15,10 @@ or ``rocky`` or ``ubuntu``, and defaults to ``rocky``. The ``os_release`` variable in ``etc/kayobe/globals.yml`` can be used to set the release of the OS. When ``os_distribution`` is set to ``centos`` it may be -set to ``9-stream`` or ``10-stream``, and ``9-stream`` is its default value. -When ``os_distribution`` is set to ``rocky`` it may be set to ``9`` or ``10``, -and ``9`` is its default value. When ``os_distribution`` is set to ``ubuntu`` -it may be set to ``noble``, and this is its default value. +set to ``10-stream``, and this is its default value. When ``os_distribution`` +is set to ``rocky`` it may be set to ``10``, and this is its default value. +When ``os_distribution`` is set to ``ubuntu`` it may be set to ``noble``, and +this is its default value. These variables are used to set various defaults, including: diff --git a/doc/source/configuration/reference/overcloud-dib.rst b/doc/source/configuration/reference/overcloud-dib.rst index 1593e20b4..db537f9a6 100644 --- a/doc/source/configuration/reference/overcloud-dib.rst +++ b/doc/source/configuration/reference/overcloud-dib.rst @@ -34,7 +34,7 @@ how these images are built. Consult the information on building disk images. The default configuration builds a whole disk (partitioned) image using the -selected :ref:`OS distribution ` (Rocky Linux 9 by default) +selected :ref:`OS distribution ` (Rocky Linux 10 by default) with serial console enabled, and SELinux disabled if CentOS Stream or Rocky Linux is used. `Cloud-init `__ is used to process diff --git a/doc/source/contributor/testing.rst b/doc/source/contributor/testing.rst index b11cd4e48..c2ed7088a 100644 --- a/doc/source/contributor/testing.rst +++ b/doc/source/contributor/testing.rst @@ -18,7 +18,7 @@ running kayobe's tests. sudo apt-get install build-essential python3-dev libssl-dev python3-pip git -* Fedora or CentOS Stream 9/Rocky 9/RHEL 9:: +* Fedora or CentOS Stream 10/Rocky 10/RHEL 10:: sudo dnf install python3-devel openssl-devel python3-pip git gcc diff --git a/doc/source/installation.rst b/doc/source/installation.rst index 01fd80f2f..b301e8d18 100644 --- a/doc/source/installation.rst +++ b/doc/source/installation.rst @@ -15,8 +15,8 @@ Prerequisites Currently Kayobe supports the following Operating Systems on the Ansible control host: -- CentOS Stream 9 (since Zed 13.0.0 release) -- Rocky Linux 9 (since Zed 13.0.0 release) +- CentOS Stream 10 (since Flamingo 19.0.0 release) +- Rocky Linux 10 (since Flamingo 19.0.0 release) - Ubuntu Noble 24.04 (since Dalmatian 17.0.0 release) See the :doc:`support matrix ` for details of supported diff --git a/doc/source/resources.rst b/doc/source/resources.rst index 31b67e565..8874f7fc8 100644 --- a/doc/source/resources.rst +++ b/doc/source/resources.rst @@ -22,8 +22,9 @@ OpenStack using Kolla, Ansible and Kayobe. The guide makes use of baremetal environment running on a single hypervisor. To complete the walkthrough you will require a baremetal or VM hypervisor -running CentOS Stream 9, Rocky Linux 9 or Ubuntu Noble 24.04 (since Dalmatian -17.0.0) with at least 32GB RAM & 80GB disk space. Preparing the deployment can -take some time - where possible it is beneficial to snapshot the hypervisor. We -advise making a snapshot after creating the initial 'seed' VM as this will make -additional deployments significantly faster. +running CentOS Stream 10 (since Flamingo 19.0.0), Rocky Linux 10 (since +Flamingo 19.0.0) or Ubuntu Noble 24.04 (since Dalmatian 17.0.0) with at least +32GB RAM & 80GB disk space. Preparing the deployment can take some time - where +possible it is beneficial to snapshot the hypervisor. We advise making a +snapshot after creating the initial 'seed' VM as this will make additional +deployments significantly faster. diff --git a/doc/source/support-matrix.rst b/doc/source/support-matrix.rst index e52fa111c..fe973e3ef 100644 --- a/doc/source/support-matrix.rst +++ b/doc/source/support-matrix.rst @@ -9,22 +9,24 @@ Supported Operating Systems Kayobe supports the following host Operating Systems (OS): -* Rocky Linux 9 (since Zed 13.0.0 release) +* Rocky Linux 10 (since Flamingo 19.0.0 release) * Ubuntu Noble 24.04 (since Dalmatian 17.0.0 release) -In addition to that CentOS Stream 9 host OS is functional, but not officially -supported. Kolla does not publish CentOS Stream 9 images to Docker Hub/Quay.io, +In addition to that CentOS Stream 10 host OS is functional, but not officially +supported. Kolla does not publish CentOS Stream 10 images to Docker Hub/Quay.io, therefore users need to build them by themselves. .. note:: - CentOS Stream 8 is no longer supported as a host OS. The Yoga release - supports both CentOS Stream 8 and 9, and provides a route for migration. + CentOS Stream 9 is no longer supported as a host OS. The 2025.1 Epoxy + release will in future support both CentOS Stream 9 and 10 to provide a + route for migration. .. note:: - Rocky Linux 8 is no longer supported as a host OS. The Yoga release supports - both Rocky Linux 8 and 9, and provides a route for migration. + Rocky Linux 9 is no longer supported as a host OS. The 2025.1 Epoxy release + will in future support both CentOS Stream 9 and 10 to provide a route for + migration. Supported container images ~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/etc/kayobe/globals.yml b/etc/kayobe/globals.yml index bb21aca71..13f340e57 100644 --- a/etc/kayobe/globals.yml +++ b/etc/kayobe/globals.yml @@ -48,9 +48,9 @@ # is "rocky". #os_distribution: -# OS release. Valid options are "9-stream" and "10-stream" (with "9-stream" -# being the default) when os_distribution is "centos", "9" and "10" (with "9" -# being the default) when os_distribution is "rocky", or "noble" when +# OS release. Valid options are "10-stream" when os_distribution is "centos", +# "10" when os_distribution is "rocky", or "noble" when os_distribution is +# "ubuntu". # os_distribution is "ubuntu". #os_release: diff --git a/etc/kayobe/infra-vms.yml b/etc/kayobe/infra-vms.yml index 2b012b8e5..076a3e695 100644 --- a/etc/kayobe/infra-vms.yml +++ b/etc/kayobe/infra-vms.yml @@ -32,12 +32,8 @@ # Base image for the infra VM root volume. Default is # "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img" # when os_distribution is "ubuntu", -# "https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2" -# when os_distribution is "rocky" and os_release is "9", # "https://dl.rockylinux.org/pub/rocky/10/images/x86_64/Rocky-10-GenericCloud-Base.latest.x86_64.qcow2" -# when os_distribution is "rocky" and os_release is "10", -# "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-9-latest.x86_64.qcow2" -# when os_distribution is "centos" and os_release is "9-stream", or +# when os_distribution is "rocky", or # "https://cloud.centos.org/centos/10-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-10-latest.x86_64.qcow2" # otherwise. #infra_vm_root_image: diff --git a/etc/kayobe/seed-vm.yml b/etc/kayobe/seed-vm.yml index 1a575a10b..86be2708f 100644 --- a/etc/kayobe/seed-vm.yml +++ b/etc/kayobe/seed-vm.yml @@ -32,12 +32,8 @@ # Base image for the seed VM root volume. Default is # "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img" # when os_distribution is "ubuntu", -# "https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2" -# when os_distribution is "rocky" and os_release is "9", # "https://dl.rockylinux.org/pub/rocky/10/images/x86_64/Rocky-10-GenericCloud-Base.latest.x86_64.qcow2" -# when os_distribution is "rocky" and os_release is "10", -# "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-9-latest.x86_64.qcow2" -# when os_distribution is "centos" and os_release is "9-stream", or +# when os_distribution is "rocky", or # "https://cloud.centos.org/centos/10-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-10-latest.x86_64.qcow2" # otherwise. #seed_vm_root_image: diff --git a/kayobe/plugins/filter/networks.py b/kayobe/plugins/filter/networks.py index f949d7982..7c8cff7b1 100644 --- a/kayobe/plugins/filter/networks.py +++ b/kayobe/plugins/filter/networks.py @@ -283,9 +283,9 @@ def net_macaddress(context, name, inventory_hostname=None): def net_bridge_stp(context, name, inventory_hostname=None): """Return the Spanning Tree Protocol (STP) state for a bridge. - On RL9 if STP is not defined, default it to 'false' to preserve - compatibility with network scripts. STP is 'true' in NetworkManager - by default, so we set it to 'false' here. + On RL10 if STP is not defined, default it to 'false' to preserve + compatibility with network scripts. STP is 'true' in NetworkManager by + default, so we set it to 'false' here. :param context: Jinja2 Context object. :param name: The name of the network. diff --git a/playbooks/kayobe-infra-vm-base/infra-vms-group-vars.j2 b/playbooks/kayobe-infra-vm-base/infra-vms-group-vars.j2 index 9ce8d7318..1d30f2122 100644 --- a/playbooks/kayobe-infra-vm-base/infra-vms-group-vars.j2 +++ b/playbooks/kayobe-infra-vm-base/infra-vms-group-vars.j2 @@ -1,5 +1,5 @@ --- -{% if infra_vm_use_cirros | default(true) or ansible_os_family == 'RedHat' and ansible_distribution_major_version == '9' %} +{% if infra_vm_use_cirros | default(true) %} aio_interface: eth0 {% else %} # Required for official cloud images (CentOS Stream 10, Rocky Linux 10, Ubuntu) diff --git a/playbooks/kayobe-overcloud-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-base/overrides.yml.j2 index a0a46b5c6..8f1a2bbec 100644 --- a/playbooks/kayobe-overcloud-base/overrides.yml.j2 +++ b/playbooks/kayobe-overcloud-base/overrides.yml.j2 @@ -56,8 +56,8 @@ kolla_ironic_kernel_append_params_extra: - ipa-insecure=1 {% endif %} -# NOTE(bbezak): Kolla does not build CentOS Stream 9 container images. -# Using Rocky Linux 9 images on CentOS Stream 9 in CI. +# NOTE(bbezak): Kolla does not build CentOS Stream 10 container images. +# Using Rocky Linux 10 images on CentOS Stream 10 in CI. kolla_base_distro: "{% raw %}{{ 'rocky' if os_distribution == 'centos' else os_distribution }}{% endraw %}" # Support overriding container_engine diff --git a/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2 index 9e9424981..d2e75f779 100644 --- a/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2 +++ b/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2 @@ -164,21 +164,6 @@ apt_auth: {% endif %} {% if ansible_facts.os_family == 'RedHat' %} -# NOTE: There are OpenDev mirrors only for centos-stream/9-stream and epel/9. -{% if ansible_facts.distribution_major_version == "9" %} -# Use a local DNF mirror. -dnf_use_local_mirror: true -{% if ansible_facts.distribution == 'CentOS' %} -# Mirror FQDN for DNF repos. -dnf_centos_mirror_host: "{{ zuul_site_mirror_fqdn }}" -# Mirror directory for DNF CentOS repos. -dnf_centos_mirror_directory: 'centos-stream' -{% endif %} -# Mirror FQDN for DNF EPEL repos. -dnf_epel_mirror_host: "{{ zuul_site_mirror_fqdn }}" -# Mirror directory for DNF EPEL repos. -dnf_epel_mirror_directory: 'epel' -{% endif %} # Configure a custom DNF repository. dnf_custom_repos: fluent-package: diff --git a/playbooks/kayobe-overcloud-host-configure-base/pre.yml b/playbooks/kayobe-overcloud-host-configure-base/pre.yml index 58603157a..a0bfb9252 100644 --- a/playbooks/kayobe-overcloud-host-configure-base/pre.yml +++ b/playbooks/kayobe-overcloud-host-configure-base/pre.yml @@ -10,25 +10,14 @@ - python3-setuptools become: true - - name: Install Python3.12 on RHEL derivatives - dnf: - name: - - python3.12 - - python3.12-devel - state: latest - when: ansible_facts.os_family == 'RedHat' - become: true - - name: Ensure testinfra is installed - vars: - cmd: "{{ 'python3.12' if ansible_facts.os_family == 'RedHat' else 'python3' }} -m venv" pip: name: - distro - pytest-testinfra - pytest-html virtualenv: "{{ testinfra_venv }}" - virtualenv_command: "{{ cmd }}" + virtualenv_command: python3 -m venv # NOTE(mgoddard): Use the name zz-30-overrides.yml to ensure this takes # precedence over the standard config files and zz-20-overrides.yml from diff --git a/playbooks/kayobe-seed-vm-base/seed-group-vars.j2 b/playbooks/kayobe-seed-vm-base/seed-group-vars.j2 index 757d3686f..ccf57a4e8 100644 --- a/playbooks/kayobe-seed-vm-base/seed-group-vars.j2 +++ b/playbooks/kayobe-seed-vm-base/seed-group-vars.j2 @@ -1,5 +1,5 @@ --- -{% if seed_vm_use_cirros | default(true) or ansible_os_family == 'RedHat' and ansible_distribution_major_version == '9' %} +{% if seed_vm_use_cirros | default(true) %} aio_interface: eth0 {% else %} # Required for official cloud images (CentOS Stream 10, Rocky Linux 10, Ubuntu) diff --git a/releasenotes/notes/rocky-10-8d56e4bfffe39c08.yaml b/releasenotes/notes/rocky-10-8d56e4bfffe39c08.yaml new file mode 100644 index 000000000..eb5abc988 --- /dev/null +++ b/releasenotes/notes/rocky-10-8d56e4bfffe39c08.yaml @@ -0,0 +1,14 @@ +--- +features: + - | + Adds support for CentOS Stream 10 and Rocky Linux 10 as host operating + systems and base container images. These are the only major versions of + CentOS Stream and Rocky Linux supported from the 2025.2 Flamingo release. + The 2025.1 Epoxy release will support both Rocky Linux 9 and 10 hosts to + provide a route for migration. +upgrade: + - | + CentOS Stream 9 and Rocky Linux 9 are no longer supported as host operating + systems or base container images. Users should migrate to CentOS Stream 10 + or Rocky Linux 10. The 2025.1 Epoxy release will support both Rocky Linux 9 + and 10 hosts to provide a route for migration. diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 2d7272bab..2af930cf3 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -121,32 +121,12 @@ run: playbooks/kayobe-overcloud-base/run.yml timeout: 7200 -- job: - name: kayobe-overcloud-centos9s - parent: kayobe-overcloud-base - nodeset: kayobe-centos9s - voting: false - - job: name: kayobe-overcloud-centos10s parent: kayobe-overcloud-base nodeset: kayobe-centos10s voting: false -- job: - name: kayobe-overcloud-rocky9 - parent: kayobe-overcloud-base - vars: - kayobe_control_host_become: false - nodeset: kayobe-rocky9 - -- job: - name: kayobe-overcloud-rocky9-podman - parent: kayobe-overcloud-base - nodeset: kayobe-rocky9 - vars: - container_engine: podman - - job: name: kayobe-overcloud-rocky10 parent: kayobe-overcloud-base @@ -181,23 +161,12 @@ tls_enabled: true ironic_boot_mode: "uefi" -- job: - name: kayobe-overcloud-tls-centos9s - parent: kayobe-overcloud-tls-base - nodeset: kayobe-centos9s - voting: false - - job: name: kayobe-overcloud-tls-centos10s parent: kayobe-overcloud-tls-base nodeset: kayobe-centos10s voting: false -- job: - name: kayobe-overcloud-tls-rocky9 - parent: kayobe-overcloud-tls-base - nodeset: kayobe-rocky9 - - job: name: kayobe-overcloud-tls-rocky10 parent: kayobe-overcloud-tls-base @@ -216,9 +185,9 @@ timeout: 10800 - job: - name: kayobe-overcloud-upgrade-rocky9 + name: kayobe-overcloud-upgrade-rocky10 parent: kayobe-overcloud-upgrade-base - nodeset: kayobe-rocky9 + nodeset: kayobe-rocky10 - job: name: kayobe-overcloud-upgrade-ubuntu-noble @@ -226,9 +195,9 @@ nodeset: kayobe-ubuntu-noble - job: - name: kayobe-overcloud-upgrade-slurp-rocky9 + name: kayobe-overcloud-upgrade-slurp-rocky10 parent: kayobe-overcloud-upgrade-base - nodeset: kayobe-rocky9 + nodeset: kayobe-rocky10 - job: name: kayobe-overcloud-upgrade-slurp-ubuntu-noble @@ -248,30 +217,12 @@ vars: build_images: false -- job: - name: kayobe-seed-centos9s - parent: kayobe-seed-base - nodeset: kayobe-centos9s - voting: false - - job: name: kayobe-seed-centos10s parent: kayobe-seed-base nodeset: kayobe-centos10s voting: false -- job: - name: kayobe-seed-rocky9 - parent: kayobe-seed-base - nodeset: kayobe-rocky9 - -- job: - name: kayobe-seed-rocky9-podman - parent: kayobe-seed-base - nodeset: kayobe-rocky9 - vars: - container_engine: podman - - job: name: kayobe-seed-rocky10 parent: kayobe-seed-base @@ -306,37 +257,12 @@ vars: build_images: true -- job: - name: kayobe-seed-images-centos9s - parent: kayobe-seed-images-base - nodeset: kayobe-centos9s - voting: false - - job: name: kayobe-seed-images-centos10s parent: kayobe-seed-images-base nodeset: kayobe-centos10s voting: false -# Build only the base container image in the kayobe-seed-images-rocky9 job -# which always runs. Use `check experimental` to run the other jobs which build -# more images. -- job: - name: kayobe-seed-images-rocky9 - parent: kayobe-seed-images-base - nodeset: kayobe-rocky9 - vars: - overcloud_container_image_regex: "^base" - seed_container_image_regex: "^base" - kayobe_control_host_become: false - -- job: - name: kayobe-seed-images-rocky9-podman - parent: kayobe-seed-images-base - nodeset: kayobe-rocky9 - vars: - container_engine: podman - - job: name: kayobe-seed-images-rocky10 parent: kayobe-seed-images-base @@ -377,23 +303,12 @@ run: playbooks/kayobe-overcloud-host-configure-base/run.yml timeout: 7200 -- job: - name: kayobe-overcloud-host-configure-centos9s - parent: kayobe-overcloud-host-configure-base - nodeset: kayobe-centos9s - voting: false - - job: name: kayobe-overcloud-host-configure-centos10s parent: kayobe-overcloud-host-configure-base nodeset: kayobe-centos10s voting: false -- job: - name: kayobe-overcloud-host-configure-rocky9 - parent: kayobe-overcloud-host-configure-base - nodeset: kayobe-rocky9 - - job: name: kayobe-overcloud-host-configure-rocky10 parent: kayobe-overcloud-host-configure-base @@ -417,9 +332,9 @@ timeout: 5400 - job: - name: kayobe-seed-upgrade-rocky9 + name: kayobe-seed-upgrade-rocky10 parent: kayobe-seed-upgrade-base - nodeset: kayobe-rocky9 + nodeset: kayobe-rocky10 - job: name: kayobe-seed-upgrade-ubuntu-noble @@ -427,9 +342,9 @@ nodeset: kayobe-ubuntu-noble - job: - name: kayobe-seed-upgrade-slurp-rocky9 + name: kayobe-seed-upgrade-slurp-rocky10 parent: kayobe-seed-upgrade-base - nodeset: kayobe-rocky9 + nodeset: kayobe-rocky10 - job: name: kayobe-seed-upgrade-slurp-ubuntu-noble @@ -448,23 +363,12 @@ run: playbooks/kayobe-seed-vm-base/run.yml timeout: 5400 -- job: - name: kayobe-seed-vm-centos9s - parent: kayobe-seed-vm-base - nodeset: kayobe-centos9s - voting: false - - job: name: kayobe-seed-vm-centos10s parent: kayobe-seed-vm-base nodeset: kayobe-centos10s voting: false -- job: - name: kayobe-seed-vm-rocky9 - parent: kayobe-seed-vm-base - nodeset: kayobe-rocky9 - - job: name: kayobe-seed-vm-rocky10 parent: kayobe-seed-vm-base @@ -477,14 +381,6 @@ vars: kayobe_control_host_become: false -- job: - name: kayobe-seed-vm-centos9s-cloud-image - parent: kayobe-seed-vm-base - nodeset: kayobe-centos9s - voting: false - vars: - seed_vm_use_cirros: false - - job: name: kayobe-seed-vm-centos10s-cloud-image parent: kayobe-seed-vm-base @@ -493,13 +389,6 @@ vars: seed_vm_use_cirros: false -- job: - name: kayobe-seed-vm-rocky9-cloud-image - parent: kayobe-seed-vm-base - nodeset: kayobe-rocky9 - vars: - seed_vm_use_cirros: false - - job: name: kayobe-seed-vm-rocky10-cloud-image parent: kayobe-seed-vm-base @@ -523,25 +412,12 @@ vars: seed_vm_machine: q35 -- job: - name: kayobe-seed-vm-centos9s-q35 - parent: kayobe-seed-vm-q35-base - nodeset: kayobe-centos9s - voting: false - - job: name: kayobe-seed-vm-centos10s-q35 parent: kayobe-seed-vm-q35-base nodeset: kayobe-centos10s voting: false -- job: - name: kayobe-seed-vm-rocky9-q35 - parent: kayobe-seed-vm-q35-base - nodeset: kayobe-rocky9 - vars: - kayobe_control_host_become: false - - job: name: kayobe-seed-vm-rocky10-q35 parent: kayobe-seed-vm-q35-base @@ -566,25 +442,12 @@ run: playbooks/kayobe-infra-vm-base/run.yml timeout: 5400 -- job: - name: kayobe-infra-vm-centos9s - parent: kayobe-infra-vm-base - nodeset: kayobe-centos9s - voting: false - - job: name: kayobe-infra-vm-centos10s parent: kayobe-infra-vm-base nodeset: kayobe-centos10s voting: false -- job: - name: kayobe-infra-vm-rocky9 - parent: kayobe-infra-vm-base - nodeset: kayobe-rocky9 - vars: - kayobe_control_host_become: false - - job: name: kayobe-infra-vm-rocky10 parent: kayobe-infra-vm-base @@ -597,14 +460,6 @@ parent: kayobe-infra-vm-base nodeset: kayobe-ubuntu-noble -- job: - name: kayobe-infra-vm-centos9s-cloud-image - parent: kayobe-infra-vm-base - nodeset: kayobe-centos9s - voting: false - vars: - infra_vm_use_cirros: false - - job: name: kayobe-infra-vm-centos10s-cloud-image parent: kayobe-infra-vm-base @@ -613,13 +468,6 @@ vars: infra_vm_use_cirros: false -- job: - name: kayobe-infra-vm-rocky9-cloud-image - parent: kayobe-infra-vm-base - nodeset: kayobe-rocky9 - vars: - infra_vm_use_cirros: false - - job: name: kayobe-infra-vm-rocky10-cloud-image parent: kayobe-infra-vm-base diff --git a/zuul.d/nodesets.yaml b/zuul.d/nodesets.yaml index 3db1e785c..b7bd14d8b 100644 --- a/zuul.d/nodesets.yaml +++ b/zuul.d/nodesets.yaml @@ -1,22 +1,10 @@ --- -- nodeset: - name: kayobe-centos9s - nodes: - - name: primary - label: centos-9-stream - - nodeset: name: kayobe-centos10s nodes: - name: primary label: centos-10-stream-8GB -- nodeset: - name: kayobe-rocky9 - nodes: - - name: primary - label: rockylinux-9 - - nodeset: name: kayobe-rocky10 nodes: diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index 8303a77a9..390132fda 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -13,10 +13,8 @@ - kayobe-tox-ansible - kayobe-tox-molecule - kayobe-infra-vm-rocky10 - - kayobe-infra-vm-rocky9 - kayobe-infra-vm-ubuntu-noble - kayobe-overcloud-host-configure-rocky10 - - kayobe-overcloud-host-configure-rocky9 - kayobe-overcloud-host-configure-ubuntu-noble - kayobe-overcloud-rocky10 - kayobe-overcloud-rocky10-podman @@ -30,7 +28,6 @@ - kayobe-seed-ubuntu-noble-podman - kayobe-seed-upgrade-ubuntu-noble - kayobe-seed-vm-rocky10 - - kayobe-seed-vm-rocky9 - kayobe-seed-vm-ubuntu-noble gate: jobs: @@ -38,10 +35,8 @@ - kayobe-tox-ansible - kayobe-tox-molecule - kayobe-infra-vm-rocky10 - - kayobe-infra-vm-rocky9 - kayobe-infra-vm-ubuntu-noble - kayobe-overcloud-host-configure-rocky10 - - kayobe-overcloud-host-configure-rocky9 - kayobe-overcloud-host-configure-ubuntu-noble - kayobe-overcloud-rocky10 - kayobe-overcloud-rocky10-podman @@ -55,45 +50,28 @@ - kayobe-seed-ubuntu-noble-podman - kayobe-seed-upgrade-ubuntu-noble - kayobe-seed-vm-rocky10 - - kayobe-seed-vm-rocky9 - kayobe-seed-vm-ubuntu-noble experimental: jobs: - kayobe-infra-vm-centos10s - kayobe-infra-vm-centos10s-cloud-image - - kayobe-infra-vm-centos9s - - kayobe-infra-vm-centos9s-cloud-image - kayobe-infra-vm-rocky10-cloud-image - - kayobe-infra-vm-rocky9-cloud-image - kayobe-infra-vm-ubuntu-noble-cloud-image - kayobe-overcloud-centos10s - - kayobe-overcloud-centos9s - - kayobe-overcloud-host-configure-centos10s - - kayobe-overcloud-host-configure-centos9s - - kayobe-overcloud-rocky9 - - kayobe-overcloud-rocky9-podman - kayobe-overcloud-tls-centos10s - - kayobe-overcloud-tls-rocky9 - - kayobe-overcloud-upgrade-rocky9 + - kayobe-overcloud-upgrade-rocky10 - kayobe-seed-centos10s - kayobe-seed-images-centos10s - kayobe-seed-images-rocky10 - kayobe-seed-images-rocky10-podman - kayobe-seed-images-ubuntu-noble - kayobe-seed-images-ubuntu-noble-podman - - kayobe-seed-rocky9 - - kayobe-seed-rocky9-podman - - kayobe-seed-upgrade-rocky9 + - kayobe-seed-upgrade-rocky10 - kayobe-seed-vm-centos10s - kayobe-seed-vm-centos10s-cloud-image - kayobe-seed-vm-centos10s-q35 - - kayobe-seed-vm-centos9s - - kayobe-seed-vm-centos9s-cloud-image - - kayobe-seed-vm-centos9s-q35 - kayobe-seed-vm-rocky10-cloud-image - kayobe-seed-vm-rocky10-q35 - - kayobe-seed-vm-rocky9-cloud-image - - kayobe-seed-vm-rocky9-q35 - kayobe-seed-vm-ubuntu-noble-cloud-image - kayobe-seed-vm-ubuntu-noble-q35