diff --git a/ansible/inventory/group_vars/all/kolla b/ansible/inventory/group_vars/all/kolla index 5a042cff3..6ab1c8d2e 100644 --- a/ansible/inventory/group_vars/all/kolla +++ b/ansible/inventory/group_vars/all/kolla @@ -63,9 +63,9 @@ kolla_base_distro: "{{ os_distribution }}" # Kolla base container image distribution version default map. # Defines default versions for each distribution. kolla_base_distro_version_default_map: { - "centos": "stream9", + "centos": "{{ 'stream9' if os_release == '9-stream' else 'stream10' }}", "debian": "bullseye", - "rocky": "9", + "rocky": "{{ os_release }}", "ubuntu": "noble", } diff --git a/ansible/kolla-bifrost-hostvars.yml b/ansible/kolla-bifrost-hostvars.yml index d560e4d0e..a63421038 100644 --- a/ansible/kolla-bifrost-hostvars.yml +++ b/ansible/kolla-bifrost-hostvars.yml @@ -26,7 +26,7 @@ # If the admin network does not have a gateway defined and seed SNAT is # enabled, use the seed as a gateway to allow external access until other # networks have been configured. Otherwise, do not set any gateway. - ipv4_gateway: "{{ (admin_oc_net_name | net_gateway) or (admin_oc_net_name | net_ip(seed_host) if seed_enable_snat | bool) }}" + ipv4_gateway: "{{ (admin_oc_net_name | net_gateway) or (admin_oc_net_name | net_ip(seed_host) if seed_enable_snat | bool) or '' }}" ipv4_nameserver: "{{ resolv_nameservers }}" network_mtu: "{{ admin_oc_net_name | net_mtu or '1500' }}" vlan_id: "{{ '' if admin_oc_net_name == provision_oc_net_name else (admin_oc_net_name | net_vlan) }}" diff --git a/doc/source/installation.rst b/doc/source/installation.rst index 01fd80f2f..2da16aacd 100644 --- a/doc/source/installation.rst +++ b/doc/source/installation.rst @@ -16,7 +16,9 @@ Currently Kayobe supports the following Operating Systems on the Ansible control host: - CentOS Stream 9 (since Zed 13.0.0 release) +- CentOS Stream 10 (since Epoxy 18.3.0 release) - Rocky Linux 9 (since Zed 13.0.0 release) +- Rocky Linux 10 (since Epoxy 18.3.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/support-matrix.rst b/doc/source/support-matrix.rst index e52fa111c..78ab21e1d 100644 --- a/doc/source/support-matrix.rst +++ b/doc/source/support-matrix.rst @@ -10,21 +10,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 Epoxy 18.3.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, -therefore users need to build them by themselves. +In addition to that CentOS Stream 9/10 host OS is functional, but not +officially supported. Kolla does not publish CentOS Stream 9/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 beyond the Epoxy + release. The Epoxy release supports both CentOS Stream 9 and 10, and + provides 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 beyond the Epoxy release. + The Epoxy release supports both Rocky Linux 9 and 10, and provides a route + for migration. Supported container images ~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/playbooks/kayobe-overcloud-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-base/overrides.yml.j2 index 33e28d855..b37ef4333 100644 --- a/playbooks/kayobe-overcloud-base/overrides.yml.j2 +++ b/playbooks/kayobe-overcloud-base/overrides.yml.j2 @@ -53,9 +53,10 @@ kolla_ironic_pxe_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 container images. +# Using Rocky Linux images on CentOS Stream in CI. kolla_base_distro: "{% raw %}{{ 'rocky' if os_distribution == 'centos' else os_distribution }}{% endraw %}" +kolla_base_distro_version: "{% raw %}{{ os_release | replace('-stream', '') if os_distribution == 'centos' else os_release }}{% endraw %}" # Support overriding container_engine container_engine: "{{ container_engine }}" diff --git a/playbooks/kayobe-overcloud-host-configure-base/pre.yml b/playbooks/kayobe-overcloud-host-configure-base/pre.yml index 58603157a..5a3cbdb06 100644 --- a/playbooks/kayobe-overcloud-host-configure-base/pre.yml +++ b/playbooks/kayobe-overcloud-host-configure-base/pre.yml @@ -54,3 +54,9 @@ become: true loop: "{{ range(2, 8) | list }}" when: ansible_facts.os_family == 'Debian' + + - name: Ensure firewalld is unmasked + ansible.builtin.systemd_service: + name: firewalld + masked: false + become: true diff --git a/playbooks/kayobe-seed-base/overrides.yml.j2 b/playbooks/kayobe-seed-base/overrides.yml.j2 index 523c71abb..459313f60 100644 --- a/playbooks/kayobe-seed-base/overrides.yml.j2 +++ b/playbooks/kayobe-seed-base/overrides.yml.j2 @@ -1,4 +1,13 @@ --- +{% if ansible_facts.os_family == 'RedHat' and ansible_facts.distribution_major_version == '10' %} +# Configure EPEL repository. Necessary for gdisk to be available. +# dnf_install_epel and dnf_use_local_mirror are both necessary to trigger +# templating of epel.repo. We use the official EPEL repository because there is +# no OpenDev mirror for EL10. +dnf_install_epel: true +dnf_use_local_mirror: true +{% endif %} + docker_daemon_debug: true # Use alternative registry image to avoid Docker Hub pull rate limit. docker_registry_image_full: "quay.io/libpod/registry:2.8.2" @@ -37,7 +46,9 @@ ipa_build_images: {{ build_images }} ipa_build_dib_elements_extra: # extra-hardware is currently failing on Ubuntu - "{% raw %}{{ 'extra-hardware' if os_distribution != 'ubuntu' else '' }}{% endraw %}" - - "openstack-ci-mirrors" + # Broken openstack-ci-mirrors for CentOS Stream 10. TODO(priteau): Remove + # conditional once https://review.opendev.org/965344 is released. + - "{% raw %}{{ 'openstack-ci-mirrors' if os_distribution != 'centos' else '' }}{% endraw %}" # Workaround for limited tmpfs space in CI ipa_build_dib_env_extra: @@ -46,11 +57,14 @@ ipa_build_dib_env_extra: # Build overcloud host image. overcloud_dib_build_host_images: {{ build_images }} overcloud_dib_elements_extra: - - "openstack-ci-mirrors" + # Broken openstack-ci-mirrors for CentOS Stream 10. TODO(priteau): Remove + # conditional once https://review.opendev.org/965344 is released. + - "{% raw %}{{ 'openstack-ci-mirrors' if os_distribution != 'centos' else '' }}{% endraw %}" -# 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 container images. +# Using Rocky Linux images on CentOS Stream in CI. kolla_base_distro: "{% raw %}{{ 'rocky' if os_distribution == 'centos' else os_distribution }}{% endraw %}" +kolla_base_distro_version: "{% raw %}{{ os_release | replace('-stream', '') if os_distribution == 'centos' else os_release }}{% endraw %}" # Support overriding container_engine container_engine: "{{ container_engine }}" diff --git a/releasenotes/notes/bug-2133489-1b83b7e24655caff.yaml b/releasenotes/notes/bug-2133489-1b83b7e24655caff.yaml new file mode 100644 index 000000000..3173fb921 --- /dev/null +++ b/releasenotes/notes/bug-2133489-1b83b7e24655caff.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixes generation of Bifrost host variable files when ``ipv4_gateway`` is + undefined. `LP#2133489 `__ diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 2217c8282..fcfc2e337 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -71,19 +71,11 @@ required-projects: # Include kayobe to ensure other projects can use this job. - name: openstack/ansible-collection-kolla - # TODO(priteau): Remove when kayobe stable/2025.1 exists. - override-checkout: stable/2025.1 - name: openstack/kayobe - name: openstack/kayobe-config-dev - name: openstack/kolla - # TODO(priteau): Remove when kayobe stable/2025.1 exists. - override-checkout: stable/2025.1 - name: openstack/kolla-ansible - # TODO(priteau): Remove when kayobe stable/2025.1 exists. - override-checkout: stable/2025.1 - name: openstack/requirements - # TODO(priteau): Remove when kayobe stable/2025.1 exists. - override-checkout: stable/2025.1 - name: openstack/tenks irrelevant-files: - ^\..+ @@ -135,6 +127,12 @@ 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 @@ -149,6 +147,20 @@ vars: container_engine: podman +- job: + name: kayobe-overcloud-rocky10 + parent: kayobe-overcloud-base + vars: + kayobe_control_host_become: false + nodeset: kayobe-rocky10 + +- job: + name: kayobe-overcloud-rocky10-podman + parent: kayobe-overcloud-base + nodeset: kayobe-rocky10 + vars: + container_engine: podman + - job: name: kayobe-overcloud-ubuntu-noble parent: kayobe-overcloud-base @@ -175,11 +187,22 @@ 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 + nodeset: kayobe-rocky10 + - job: name: kayobe-overcloud-upgrade-base parent: kayobe-base @@ -231,6 +254,12 @@ 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 @@ -243,6 +272,18 @@ vars: container_engine: podman +- job: + name: kayobe-seed-rocky10 + parent: kayobe-seed-base + nodeset: kayobe-rocky10 + +- job: + name: kayobe-seed-rocky10-podman + parent: kayobe-seed-base + nodeset: kayobe-rocky10 + vars: + container_engine: podman + - job: name: kayobe-seed-ubuntu-noble parent: kayobe-seed-base @@ -271,6 +312,12 @@ 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. @@ -290,6 +337,20 @@ vars: container_engine: podman +- job: + name: kayobe-seed-images-rocky10 + parent: kayobe-seed-images-base + nodeset: kayobe-rocky10 + vars: + kayobe_control_host_become: false + +- job: + name: kayobe-seed-images-rocky10-podman + parent: kayobe-seed-images-base + nodeset: kayobe-rocky10 + vars: + container_engine: podman + - job: name: kayobe-seed-images-ubuntu-noble parent: kayobe-seed-images-base diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index 741899b51..6db6f7299 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -19,10 +19,12 @@ - kayobe-infra-vm-ubuntu-noble - kayobe-overcloud-host-configure-rocky10 - kayobe-overcloud-host-configure-rocky9 - - kayobe-overcloud-host-configure-rocky10 - kayobe-overcloud-host-configure-ubuntu-noble + - kayobe-overcloud-rocky10 + - kayobe-overcloud-rocky10-podman - kayobe-overcloud-rocky9 - kayobe-overcloud-rocky9-podman + - kayobe-overcloud-tls-rocky10 - kayobe-overcloud-tls-rocky9 - kayobe-overcloud-ubuntu-noble - kayobe-overcloud-ubuntu-noble-podman @@ -30,6 +32,8 @@ - kayobe-overcloud-upgrade-slurp-rocky9 - kayobe-overcloud-upgrade-slurp-ubuntu-noble - kayobe-overcloud-upgrade-ubuntu-noble + - kayobe-seed-rocky10 + - kayobe-seed-rocky10-podman - kayobe-seed-rocky9 - kayobe-seed-rocky9-podman - kayobe-seed-ubuntu-noble @@ -53,10 +57,12 @@ - kayobe-infra-vm-ubuntu-noble - kayobe-overcloud-host-configure-rocky10 - kayobe-overcloud-host-configure-rocky9 - - kayobe-overcloud-host-configure-rocky10 - kayobe-overcloud-host-configure-ubuntu-noble + - kayobe-overcloud-rocky10 + - kayobe-overcloud-rocky10-podman - kayobe-overcloud-rocky9 - kayobe-overcloud-rocky9-podman + - kayobe-overcloud-tls-rocky10 - kayobe-overcloud-tls-rocky9 - kayobe-overcloud-ubuntu-noble - kayobe-overcloud-ubuntu-noble-podman @@ -64,6 +70,8 @@ - kayobe-overcloud-upgrade-slurp-rocky9 - kayobe-overcloud-upgrade-slurp-ubuntu-noble - kayobe-overcloud-upgrade-ubuntu-noble + - kayobe-seed-rocky10 + - kayobe-seed-rocky10-podman - kayobe-seed-rocky9 - kayobe-seed-rocky9-podman - kayobe-seed-ubuntu-noble @@ -84,11 +92,16 @@ - 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-host-configure-centos10s + - kayobe-overcloud-tls-centos10s + - kayobe-seed-centos10s + - kayobe-seed-images-centos10s - kayobe-seed-images-centos9s + - kayobe-seed-images-rocky10 + - kayobe-seed-images-rocky10-podman - kayobe-seed-images-rocky9 - kayobe-seed-images-rocky9-podman - kayobe-seed-images-ubuntu-noble