From e72688ff11c6c128a23e720360078eb0b871632b Mon Sep 17 00:00:00 2001
From: Jakub Darmach <jakub@stackhpc.com>
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 89c0999f..5285fba6 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 4f0fa02a..3df1218d 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 85fb3960..991a119e 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 a6da96cf..12444637 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 0f8368bf..9687e6de 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 3eb4eed7..5851d190 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 4a053034..ece93ac9 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
-<https://manpages.ubuntu.com/manpages/jammy/man5/apt_auth.conf.5.html>`__
+<https://manpages.ubuntu.com/manpages/noble/man5/apt_auth.conf.5.html>`__
 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 b1e8fdb3..1a3bfb3b 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 aeda94f8..053bff63 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 <support-matrix>` for details of supported
 Operating Systems for other hosts.
diff --git a/doc/source/resources.rst b/doc/source/resources.rst
index 90f3b2b1..31b67e56 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 f76f876d..f3ad926e 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 1a2e5446..e7eed428 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 a97f74d1..93ebdb4f 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 23ab7b8a..cbfa34ea 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 25b0c72e..aa805d84 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 b9087219..5e52d2f5 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 00000000..c3c5e23c
--- /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 25cff495..5249085c 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 743c9487..22af5b9c 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 9c36b0e2..c47febe3 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 132ac132..93335469 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
-- 
GitLab