From e72688ff11c6c128a23e720360078eb0b871632b Mon Sep 17 00:00:00 2001 From: Jakub Darmach Date: Fri, 20 Sep 2024 15:21:09 +0200 Subject: [PATCH] Add support for Ubuntu Noble Numbat (24.04) LTS Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/925581 Change-Id: Id9d90f424a5b0f7eedd1a11512bb8b72abba8959 --- ansible/inventory/group_vars/all/apt | 2 +- ansible/inventory/group_vars/all/globals | 6 ++-- ansible/inventory/group_vars/all/infra-vms | 4 +-- ansible/inventory/group_vars/all/kolla | 2 +- ansible/inventory/group_vars/all/seed-vm | 4 +-- ansible/roles/apt/defaults/main.yml | 2 +- doc/source/configuration/reference/hosts.rst | 14 +++++----- .../reference/os-distribution.rst | 2 +- doc/source/installation.rst | 1 + doc/source/resources.rst | 10 +++---- doc/source/support-matrix.rst | 1 + etc/kayobe/apt.yml | 2 +- etc/kayobe/globals.yml | 2 +- etc/kayobe/infra-vms.yml | 2 +- etc/kayobe/seed-vm.yml | 2 +- .../overrides.yml.j2 | 12 ++++---- .../notes/ubuntu-noble-d60631d22a4f43d5.yaml | 6 ++++ requirements.yml | 4 +-- zuul.d/jobs.yaml | 28 +++++++++---------- zuul.d/nodesets.yaml | 6 ++++ zuul.d/project.yaml | 24 ++++++++-------- 21 files changed, 75 insertions(+), 61 deletions(-) create mode 100644 releasenotes/notes/ubuntu-noble-d60631d22a4f43d5.yaml diff --git a/ansible/inventory/group_vars/all/apt b/ansible/inventory/group_vars/all/apt index 89c0999f3..5285fba6c 100644 --- a/ansible/inventory/group_vars/all/apt +++ b/ansible/inventory/group_vars/all/apt @@ -30,7 +30,7 @@ apt_keys: [] # * types: whitespace-separated list of repository types, e.g. deb or deb-src # (optional, default is 'deb') # * url: URL of the repository -# * suites: whitespace-separated list of suites, e.g. jammy (optional, default +# * suites: whitespace-separated list of suites, e.g. noble (optional, default # is ansible_facts.distribution_release) # * components: whitespace-separated list of components, e.g. main (optional, # default is 'main') diff --git a/ansible/inventory/group_vars/all/globals b/ansible/inventory/group_vars/all/globals index 4f0fa02a2..3df1218df 100644 --- a/ansible/inventory/group_vars/all/globals +++ b/ansible/inventory/group_vars/all/globals @@ -53,12 +53,12 @@ kayobe_ansible_user: "stack" os_distribution: "rocky" # OS release. Valid options are "9-stream" when os_distribution is "centos", or -# "9" when os_distribution is "rocky", or "jammy" when os_distribution is -# "ubuntu". +# "9" when os_distribution is "rocky", or "jammy" and "noble" (with "noble" +# being the default) when os_distribution is "ubuntu". os_release: >- {{ '9-stream' if os_distribution == 'centos' else '9' if os_distribution == 'rocky' - else 'jammy' }} + else 'noble' }} ############################################################################### # Ansible configuration. diff --git a/ansible/inventory/group_vars/all/infra-vms b/ansible/inventory/group_vars/all/infra-vms index 85fb39602..991a119e7 100644 --- a/ansible/inventory/group_vars/all/infra-vms +++ b/ansible/inventory/group_vars/all/infra-vms @@ -41,7 +41,7 @@ infra_vm_root_capacity: 50G infra_vm_root_format: qcow2 # Base image for the infra VM root volume. Default is -# "https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img" +# "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img" # when os_distribution is "ubuntu", or # https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2 # when os_distribution is "rocky", @@ -50,7 +50,7 @@ infra_vm_root_format: qcow2 # otherwise. infra_vm_root_image: >- {%- if os_distribution == 'ubuntu' %} - https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img {%- elif os_distribution == 'rocky' %} https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2 {%- else -%} diff --git a/ansible/inventory/group_vars/all/kolla b/ansible/inventory/group_vars/all/kolla index a6da96cfe..124446370 100644 --- a/ansible/inventory/group_vars/all/kolla +++ b/ansible/inventory/group_vars/all/kolla @@ -62,7 +62,7 @@ kolla_base_distro_version_default_map: { "centos": "stream9", "debian": "bullseye", "rocky": "9", - "ubuntu": "jammy", + "ubuntu": "noble", } # Kolla base container image distribution version. diff --git a/ansible/inventory/group_vars/all/seed-vm b/ansible/inventory/group_vars/all/seed-vm index 0f8368bf6..9687e6de3 100644 --- a/ansible/inventory/group_vars/all/seed-vm +++ b/ansible/inventory/group_vars/all/seed-vm @@ -41,7 +41,7 @@ seed_vm_root_capacity: 50G seed_vm_root_format: qcow2 # Base image for the seed VM root volume. Default is -# "https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img" +# "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", @@ -50,7 +50,7 @@ seed_vm_root_format: qcow2 # otherwise. seed_vm_root_image: >- {%- if os_distribution == 'ubuntu' %} - https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img {%- elif os_distribution == 'rocky' %} https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2 {%- else -%} diff --git a/ansible/roles/apt/defaults/main.yml b/ansible/roles/apt/defaults/main.yml index 3eb4eed74..5851d1908 100644 --- a/ansible/roles/apt/defaults/main.yml +++ b/ansible/roles/apt/defaults/main.yml @@ -33,7 +33,7 @@ apt_keys: [] # * types: whitespace-separated list of repository types, e.g. deb or deb-src # (optional, default is 'deb') # * url: URL of the repository -# * suites: whitespace-separated list of suites, e.g. jammy (optional, default +# * suites: whitespace-separated list of suites, e.g. noble (optional, default # is ansible_facts.distribution_release) # * components: whitespace-separated list of components, e.g. main (optional, # default is 'main') diff --git a/doc/source/configuration/reference/hosts.rst b/doc/source/configuration/reference/hosts.rst index 4a0530345..ece93ac97 100644 --- a/doc/source/configuration/reference/hosts.rst +++ b/doc/source/configuration/reference/hosts.rst @@ -369,7 +369,7 @@ items: * ``types``: whitespace-separated list of repository types, e.g. ``deb`` or ``deb-src`` (optional, default is ``deb``) * ``url``: URL of the repository -* ``suites``: whitespace-separated list of suites, e.g. ``jammy`` (optional, +* ``suites``: whitespace-separated list of suites, e.g. ``noble`` (optional, default is ``ansible_facts.distribution_release``) * ``components``: whitespace-separated list of components, e.g. ``main`` (optional, default is ``main``) @@ -389,10 +389,10 @@ For example, the following configuration defines a single Apt repository: apt_repositories: - types: deb url: https://example.com/repo - suites: jammy + suites: noble components: all -In the following example, the Ubuntu Jammy 22.04 repositories are consumed from +In the following example, the Ubuntu Noble 24.04 repositories are consumed from a local package mirror. The ``apt_disable_sources_list`` variable is set to ``true``, which disables all repositories in ``/etc/apt/sources.list``, including the default Ubuntu ones. @@ -402,10 +402,10 @@ including the default Ubuntu ones. apt_repositories: - url: http://mirror.example.com/ubuntu/ - suites: jammy jammy-updates + suites: noble noble-updates components: main restricted universe multiverse - url: http://mirror.example.com/ubuntu/ - suites: jammy-security + suites: noble-security components: main restricted universe multiverse apt_disable_sources_list: true @@ -442,7 +442,7 @@ that is signed by the key. apt_repositories: - types: deb url: https://example.com/repo - suites: jammy + suites: noble components: all signed_by: example-key.asc @@ -484,7 +484,7 @@ Some repositories may require authentication using HTTP basic auth. Apt supports specifying credentials in URLs in ``sources.list`` files, but these files must be world-readable. A more secure setup involves writing credentials to `auth.conf -`__ +`__ files which can have more restrictive permissions. Auth configuration is defined by the ``apt_auth`` variable. The format is a diff --git a/doc/source/configuration/reference/os-distribution.rst b/doc/source/configuration/reference/os-distribution.rst index b1e8fdb3a..1a3bfb3b1 100644 --- a/doc/source/configuration/reference/os-distribution.rst +++ b/doc/source/configuration/reference/os-distribution.rst @@ -16,7 +16,7 @@ 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``, and this is its default value. When ``os_distribution`` is -set to ``ubuntu`` it may be set to ``jammy``, and this is its default value. +set to ``ubuntu`` it may be set to ``noble``, and this is its default value. When ``os_distribution`` is set to ``rocky`` it may be set to ``9``, and this is its default value. diff --git a/doc/source/installation.rst b/doc/source/installation.rst index aeda94f81..053bff63e 100644 --- a/doc/source/installation.rst +++ b/doc/source/installation.rst @@ -18,6 +18,7 @@ control host: - CentOS Stream 9 (since Zed 13.0.0 release) - Rocky Linux 9 (since Zed 13.0.0 release) - Ubuntu Jammy 22.04 (since Zed 13.0.0 release) +- Ubuntu Noble 24.04 (since Dalmatian 17.0.0 release) See the :doc:`support matrix ` for details of supported Operating Systems for other hosts. diff --git a/doc/source/resources.rst b/doc/source/resources.rst index 90f3b2b1a..31b67e565 100644 --- a/doc/source/resources.rst +++ b/doc/source/resources.rst @@ -22,8 +22,8 @@ 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 Jammy 22.04 (since Zed 13.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 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. diff --git a/doc/source/support-matrix.rst b/doc/source/support-matrix.rst index f76f876db..f3ad926ef 100644 --- a/doc/source/support-matrix.rst +++ b/doc/source/support-matrix.rst @@ -11,6 +11,7 @@ Kayobe supports the following host Operating Systems (OS): * Rocky Linux 9 (since Zed 13.0.0 release) * Ubuntu Jammy 22.04 (since Zed 13.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, diff --git a/etc/kayobe/apt.yml b/etc/kayobe/apt.yml index 1a2e5446c..e7eed428b 100644 --- a/etc/kayobe/apt.yml +++ b/etc/kayobe/apt.yml @@ -30,7 +30,7 @@ # * types: whitespace-separated list of repository types, e.g. deb or deb-src # (optional, default is 'deb') # * url: URL of the repository -# * suites: whitespace-separated list of suites, e.g. jammy (optional, default +# * suites: whitespace-separated list of suites, e.g. noble (optional, default # is ansible_facts.distribution_release) # * components: whitespace-separated list of components, e.g. main (optional, # default is 'main') diff --git a/etc/kayobe/globals.yml b/etc/kayobe/globals.yml index a97f74d1a..93ebdb4f9 100644 --- a/etc/kayobe/globals.yml +++ b/etc/kayobe/globals.yml @@ -49,7 +49,7 @@ #os_distribution: # OS release. Valid options are "9-stream" when os_distribution is "centos", or -# "9" when os_distribution is "rocky", or "jammy" when os_distribution is +# "9" when os_distribution is "rocky", or "noble" when os_distribution is # "ubuntu". #os_release: diff --git a/etc/kayobe/infra-vms.yml b/etc/kayobe/infra-vms.yml index 23ab7b8ae..cbfa34eae 100644 --- a/etc/kayobe/infra-vms.yml +++ b/etc/kayobe/infra-vms.yml @@ -30,7 +30,7 @@ #infra_vm_root_format: # Base image for the infra VM root volume. Default is -# "https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img" +# "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img" # when os_distribution is "ubuntu", or # https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2 # when os_distribution is "rocky", diff --git a/etc/kayobe/seed-vm.yml b/etc/kayobe/seed-vm.yml index 25b0c72ec..aa805d847 100644 --- a/etc/kayobe/seed-vm.yml +++ b/etc/kayobe/seed-vm.yml @@ -30,7 +30,7 @@ #seed_vm_root_format: # Base image for the seed VM root volume. Default is -# "https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img" +# "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", diff --git a/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2 index b90872197..5e52d2f5e 100644 --- a/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2 +++ b/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2 @@ -138,15 +138,15 @@ apt_keys: - url: https://packages.treasuredata.com/GPG-KEY-td-agent filename: td-agent.asc apt_repositories: - # Ubuntu jammy repositories. + # Ubuntu noble repositories. - url: "http://{{ zuul_site_mirror_fqdn }}/ubuntu/" - suites: jammy jammy-updates - components: main restricted universe multiverse + suites: noble noble-updates + components: main universe - url: "http://{{ zuul_site_mirror_fqdn }}/ubuntu/" - suites: jammy-security - components: main restricted universe multiverse + suites: noble-security + components: main universe # Treasuredata repository. - - url: http://packages.treasuredata.com/4/ubuntu/jammy/ + - url: http://packages.treasuredata.com/5/ubuntu/noble/ components: contrib signed_by: td-agent.asc apt_preferences: diff --git a/releasenotes/notes/ubuntu-noble-d60631d22a4f43d5.yaml b/releasenotes/notes/ubuntu-noble-d60631d22a4f43d5.yaml new file mode 100644 index 000000000..c3c5e23c4 --- /dev/null +++ b/releasenotes/notes/ubuntu-noble-d60631d22a4f43d5.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Adds support for Ubuntu Noble Numbat (24.04) LTS as a host and container + Operating System for seed, seed hypervisor and overcloud hosts. + Default Ubuntu version has been changed to Ubuntu Noble (24.04) LTS. diff --git a/requirements.yml b/requirements.yml index 25cff4953..5249085c7 100644 --- a/requirements.yml +++ b/requirements.yml @@ -42,8 +42,8 @@ roles: version: 1.0.0 - src: stackhpc.libvirt-host version: v1.12.1 - - name: stackhpc.libvirt-vm - version: v1.16.1 + - src: stackhpc.libvirt-vm + version: v1.16.2 - src: stackhpc.luks version: 0.4.2 - src: stackhpc.os-ironic-state diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 743c94870..22af5b9c7 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -131,9 +131,9 @@ nodeset: kayobe-rocky9 - job: - name: kayobe-overcloud-ubuntu-jammy + name: kayobe-overcloud-ubuntu-noble parent: kayobe-overcloud-base - nodeset: kayobe-ubuntu-jammy + nodeset: kayobe-ubuntu-noble - job: name: kayobe-overcloud-tls-base @@ -210,9 +210,9 @@ nodeset: kayobe-rocky9 - job: - name: kayobe-seed-ubuntu-jammy + name: kayobe-seed-ubuntu-noble parent: kayobe-seed-base - nodeset: kayobe-ubuntu-jammy + nodeset: kayobe-ubuntu-noble - job: name: kayobe-seed-images-base @@ -244,9 +244,9 @@ # This job builds default overcloud images but skips the build of bifrost seed # images which are currently timing out on Ubuntu Jammy. - job: - name: kayobe-seed-images-ubuntu-jammy + name: kayobe-seed-images-ubuntu-noble parent: kayobe-seed-images-base - nodeset: kayobe-ubuntu-jammy + nodeset: kayobe-ubuntu-noble vars: seed_container_image_regex: "^base" @@ -273,9 +273,9 @@ nodeset: kayobe-rocky9 - job: - name: kayobe-overcloud-host-configure-ubuntu-jammy + name: kayobe-overcloud-host-configure-ubuntu-noble parent: kayobe-overcloud-host-configure-base - nodeset: kayobe-ubuntu-jammy + nodeset: kayobe-ubuntu-noble - job: name: kayobe-seed-upgrade-base @@ -333,9 +333,9 @@ nodeset: kayobe-rocky9 - job: - name: kayobe-seed-vm-ubuntu-jammy + name: kayobe-seed-vm-ubuntu-noble parent: kayobe-seed-vm-base - nodeset: kayobe-ubuntu-jammy + nodeset: kayobe-ubuntu-noble - job: name: kayobe-seed-vm-efi-base @@ -358,9 +358,9 @@ nodeset: kayobe-rocky9 - job: - name: kayobe-seed-vm-ubuntu-jammy-efi + name: kayobe-seed-vm-ubuntu-noble-efi parent: kayobe-seed-vm-efi-base - nodeset: kayobe-ubuntu-jammy + nodeset: kayobe-ubuntu-noble - job: name: kayobe-infra-vm-base @@ -386,6 +386,6 @@ nodeset: kayobe-rocky9 - job: - name: kayobe-infra-vm-ubuntu-jammy + name: kayobe-infra-vm-ubuntu-noble parent: kayobe-infra-vm-base - nodeset: kayobe-ubuntu-jammy + nodeset: kayobe-ubuntu-noble diff --git a/zuul.d/nodesets.yaml b/zuul.d/nodesets.yaml index 9c36b0e28..c47febe3a 100644 --- a/zuul.d/nodesets.yaml +++ b/zuul.d/nodesets.yaml @@ -16,3 +16,9 @@ nodes: - name: primary label: ubuntu-jammy + +- nodeset: + name: kayobe-ubuntu-noble + nodes: + - name: primary + label: ubuntu-noble diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index 132ac132e..933354699 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -13,46 +13,46 @@ - kayobe-tox-molecule - kayobe-overcloud-rocky9 - kayobe-overcloud-centos9s - - kayobe-overcloud-ubuntu-jammy + - kayobe-overcloud-ubuntu-noble - kayobe-overcloud-tls-rocky9 - kayobe-overcloud-host-configure-rocky9 - kayobe-overcloud-host-configure-centos9s - - kayobe-overcloud-host-configure-ubuntu-jammy + - kayobe-overcloud-host-configure-ubuntu-noble - kayobe-overcloud-upgrade-rocky9 - kayobe-overcloud-upgrade-ubuntu-jammy - kayobe-seed-rocky9 - - kayobe-seed-ubuntu-jammy + - kayobe-seed-ubuntu-noble - kayobe-seed-images-rocky9 - kayobe-seed-upgrade-rocky9 - kayobe-seed-upgrade-ubuntu-jammy - kayobe-seed-vm-rocky9 - kayobe-seed-vm-rocky9-efi - - kayobe-seed-vm-ubuntu-jammy - - kayobe-seed-vm-ubuntu-jammy-efi + - kayobe-seed-vm-ubuntu-noble + - kayobe-seed-vm-ubuntu-noble-efi - kayobe-infra-vm-rocky9 - - kayobe-infra-vm-ubuntu-jammy + - kayobe-infra-vm-ubuntu-noble gate: jobs: - kayobe-tox-ansible-syntax - kayobe-tox-ansible - kayobe-tox-molecule - kayobe-overcloud-rocky9 - - kayobe-overcloud-ubuntu-jammy + - kayobe-overcloud-ubuntu-noble - kayobe-overcloud-tls-rocky9 - kayobe-overcloud-host-configure-rocky9 - - kayobe-overcloud-host-configure-ubuntu-jammy + - kayobe-overcloud-host-configure-ubuntu-noble - kayobe-overcloud-upgrade-rocky9 - kayobe-overcloud-upgrade-ubuntu-jammy - kayobe-seed-rocky9 - - kayobe-seed-ubuntu-jammy + - kayobe-seed-ubuntu-noble - kayobe-seed-upgrade-rocky9 - kayobe-seed-upgrade-ubuntu-jammy - kayobe-seed-vm-rocky9 - - kayobe-seed-vm-ubuntu-jammy + - kayobe-seed-vm-ubuntu-noble - kayobe-infra-vm-rocky9 - - kayobe-infra-vm-ubuntu-jammy + - kayobe-infra-vm-ubuntu-noble experimental: jobs: - kayobe-seed-images-centos9s - - kayobe-seed-images-ubuntu-jammy + - kayobe-seed-images-ubuntu-noble