From bbc0a879a591c3df980af436102f356879153873 Mon Sep 17 00:00:00 2001 From: Pierre Riteau Date: Thu, 22 Jan 2026 15:14:06 +0100 Subject: [PATCH 1/9] CI: Add SLURP upgrade jobs from 2025.1 to 2026.1 Change-Id: Ibbf05a6454fc945b7ea7b59ec19d3d3d78412127 Signed-off-by: Pierre Riteau --- zuul.d/project.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index b9c1fc2f2..37f0d0b23 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -25,12 +25,16 @@ - kayobe-overcloud-ubuntu-noble - kayobe-overcloud-ubuntu-noble-podman - kayobe-overcloud-upgrade-rocky10 + - kayobe-overcloud-upgrade-slurp-rocky10 + - kayobe-overcloud-upgrade-slurp-ubuntu-noble - kayobe-overcloud-upgrade-ubuntu-noble - kayobe-seed-rocky10 - kayobe-seed-rocky10-podman - kayobe-seed-ubuntu-noble - kayobe-seed-ubuntu-noble-podman - kayobe-seed-upgrade-rocky10 + - kayobe-seed-upgrade-slurp-rocky10 + - kayobe-seed-upgrade-slurp-ubuntu-noble - kayobe-seed-upgrade-ubuntu-noble - kayobe-seed-vm-rocky10 - kayobe-seed-vm-ubuntu-noble @@ -52,12 +56,16 @@ - kayobe-overcloud-ubuntu-noble - kayobe-overcloud-ubuntu-noble-podman - kayobe-overcloud-upgrade-rocky10 + - kayobe-overcloud-upgrade-slurp-rocky10 + - kayobe-overcloud-upgrade-slurp-ubuntu-noble - kayobe-overcloud-upgrade-ubuntu-noble - kayobe-seed-rocky10 - kayobe-seed-rocky10-podman - kayobe-seed-ubuntu-noble - kayobe-seed-ubuntu-noble-podman - kayobe-seed-upgrade-rocky10 + - kayobe-seed-upgrade-slurp-rocky10 + - kayobe-seed-upgrade-slurp-ubuntu-noble - kayobe-seed-upgrade-ubuntu-noble - kayobe-seed-vm-rocky10 - kayobe-seed-vm-ubuntu-noble From 6b4028754321b3e20b45f93b6fba159985e850af Mon Sep 17 00:00:00 2001 From: Pierre Riteau Date: Wed, 21 Jan 2026 12:56:13 +0100 Subject: [PATCH 2/9] Support swap configuration for all host groups An earlier change [1] added support for swap configuration, but the swap playbook was only imported in ansible/overcloud-host-configure.yml. This completes swap support for the seed hypervisor, seed and infra VM hosts and adds missing variables in etc/kayobe/*.yml files. [1] https://review.opendev.org/c/openstack/kayobe/+/851195 Closes-Bug: #2138800 Change-Id: I3971d05f3c09a6841f6666a18f2d2b44b226411d Signed-off-by: Pierre Riteau --- ansible/infra-vm-host-configure.yml | 1 + ansible/seed-host-configure.yml | 1 + ansible/seed-hypervisor-host-configure.yml | 1 + etc/kayobe/compute.yml | 6 ++++++ etc/kayobe/controllers.yml | 6 ++++++ etc/kayobe/infra-vms.yml | 6 ++++++ etc/kayobe/monitoring.yml | 6 ++++++ etc/kayobe/seed-hypervisor.yml | 6 ++++++ etc/kayobe/seed.yml | 6 ++++++ etc/kayobe/storage.yml | 6 ++++++ releasenotes/notes/fix-swap-support-35ccff76a9b46b4c.yaml | 5 +++++ 11 files changed, 50 insertions(+) create mode 100644 releasenotes/notes/fix-swap-support-35ccff76a9b46b4c.yaml diff --git a/ansible/infra-vm-host-configure.yml b/ansible/infra-vm-host-configure.yml index 35d13a092..644c7f03a 100644 --- a/ansible/infra-vm-host-configure.yml +++ b/ansible/infra-vm-host-configure.yml @@ -21,4 +21,5 @@ - import_playbook: "mdadm.yml" - import_playbook: "luks.yml" - import_playbook: "lvm.yml" +- import_playbook: "swap.yml" - import_playbook: "container-engine.yml" diff --git a/ansible/seed-host-configure.yml b/ansible/seed-host-configure.yml index 64604d74e..00c7eed6c 100644 --- a/ansible/seed-host-configure.yml +++ b/ansible/seed-host-configure.yml @@ -22,6 +22,7 @@ - import_playbook: "mdadm.yml" - import_playbook: "luks.yml" - import_playbook: "lvm.yml" +- import_playbook: "swap.yml" - import_playbook: "kolla-ansible-user.yml" - import_playbook: "kolla-pip.yml" - import_playbook: "kolla-target-venv.yml" diff --git a/ansible/seed-hypervisor-host-configure.yml b/ansible/seed-hypervisor-host-configure.yml index 9bcb1f50c..a91f5781a 100644 --- a/ansible/seed-hypervisor-host-configure.yml +++ b/ansible/seed-hypervisor-host-configure.yml @@ -21,4 +21,5 @@ - import_playbook: "mdadm.yml" - import_playbook: "luks.yml" - import_playbook: "lvm.yml" +- import_playbook: "swap.yml" - import_playbook: "seed-hypervisor-libvirt-host.yml" diff --git a/etc/kayobe/compute.yml b/etc/kayobe/compute.yml index 383abd16f..f8a7deb29 100644 --- a/etc/kayobe/compute.yml +++ b/etc/kayobe/compute.yml @@ -212,6 +212,12 @@ # compute_libvirt_ceph_repo_install is true. Default is 'squid'. #compute_libvirt_ceph_repo_release: +############################################################################### +# Compute node swap configuration. + +# List of swap devices. Each item is a dict containing a 'device' item. +#compute_swap: + ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/controllers.yml b/etc/kayobe/controllers.yml index caa03a6ff..066c42d33 100644 --- a/etc/kayobe/controllers.yml +++ b/etc/kayobe/controllers.yml @@ -171,6 +171,12 @@ # - state: enabled #controller_firewalld_rules: +############################################################################### +# Controller node swap configuration. + +# List of swap devices. Each item is a dict containing a 'device' item. +#controller_swap: + ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/infra-vms.yml b/etc/kayobe/infra-vms.yml index 076a3e695..25c39f478 100644 --- a/etc/kayobe/infra-vms.yml +++ b/etc/kayobe/infra-vms.yml @@ -176,6 +176,12 @@ # - state: enabled #infra_vm_firewalld_rules: +############################################################################### +# Infrastructure VM node swap configuration. + +# List of swap devices. Each item is a dict containing a 'device' item. +#infra_vm_swap: + ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/monitoring.yml b/etc/kayobe/monitoring.yml index 5a19d7023..8c63bd589 100644 --- a/etc/kayobe/monitoring.yml +++ b/etc/kayobe/monitoring.yml @@ -117,6 +117,12 @@ # - state: enabled #monitoring_firewalld_rules: +############################################################################### +# Monitoring node swap configuration. + +# List of swap devices. Each item is a dict containing a 'device' item. +#monitoring_swap: + ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/seed-hypervisor.yml b/etc/kayobe/seed-hypervisor.yml index cded893f9..5905eefe0 100644 --- a/etc/kayobe/seed-hypervisor.yml +++ b/etc/kayobe/seed-hypervisor.yml @@ -136,6 +136,12 @@ # - state: enabled #seed_hypervisor_firewalld_rules: +############################################################################### +# Seed hypervisor node swap configuration. + +# List of swap devices. Each item is a dict containing a 'device' item. +#seed_hypervisor_swap: + ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/seed.yml b/etc/kayobe/seed.yml index 9f4f7055b..6b4eb9f9b 100644 --- a/etc/kayobe/seed.yml +++ b/etc/kayobe/seed.yml @@ -131,6 +131,12 @@ # - state: enabled #seed_firewalld_rules: +############################################################################### +# Seed node swap configuration. + +# List of swap devices. Each item is a dict containing a 'device' item. +#seed_swap: + ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/storage.yml b/etc/kayobe/storage.yml index 1866e6df3..170ed2ab2 100644 --- a/etc/kayobe/storage.yml +++ b/etc/kayobe/storage.yml @@ -147,6 +147,12 @@ # - state: enabled #storage_firewalld_rules: +############################################################################### +# Storage node swap configuration. + +# List of swap devices. Each item is a dict containing a 'device' item. +#storage_swap: + ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/releasenotes/notes/fix-swap-support-35ccff76a9b46b4c.yaml b/releasenotes/notes/fix-swap-support-35ccff76a9b46b4c.yaml new file mode 100644 index 000000000..574bf101c --- /dev/null +++ b/releasenotes/notes/fix-swap-support-35ccff76a9b46b4c.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixes swap configuration for the seed hypervisor, seed and infra VM hosts. + `LP#2138800 `__ From 2e93afb84a45ce5ac29d0f3e22cfd13bc1663bd3 Mon Sep 17 00:00:00 2001 From: Pierre Riteau Date: Wed, 14 Jan 2026 19:17:36 +0100 Subject: [PATCH 3/9] Sync host configuration with Ansible defaults This synchronises the following files with the Ansible inventory defaults in ansible/inventory/group_vars/all: - compute.yml - controllers.yml - infra-vms.yml - monitoring.yml - seed-hypervisor.yml - seed.yml Change-Id: I9ef77d6119be910710eaffa8bc70bb207323f268 Signed-off-by: Pierre Riteau --- ansible/inventory/group_vars/all/controllers | 1 + .../inventory/group_vars/all/seed-hypervisor | 3 ++- ansible/inventory/group_vars/all/seed-vm | 15 ++++++++++++++- etc/kayobe/controllers.yml | 18 ++++++++++++++++-- etc/kayobe/infra-vms.yml | 12 ++++++++++++ etc/kayobe/seed.yml | 12 ++++++++++++ 6 files changed, 57 insertions(+), 4 deletions(-) diff --git a/ansible/inventory/group_vars/all/controllers b/ansible/inventory/group_vars/all/controllers index 5d2f2b804..a7b2097bd 100644 --- a/ansible/inventory/group_vars/all/controllers +++ b/ansible/inventory/group_vars/all/controllers @@ -162,6 +162,7 @@ controller_lvm_group_data_lv_docker_volumes: mount: True mntp: "{{ docker_volumes_path }}" +# Podman volumes LVM backing volume. controller_lvm_group_data_lv_podman_volumes: lvname: podman-volumes size: "{{ controller_lvm_group_data_lv_podman_volumes_size }}" diff --git a/ansible/inventory/group_vars/all/seed-hypervisor b/ansible/inventory/group_vars/all/seed-hypervisor index 0c2a0e6f9..80fe27851 100644 --- a/ansible/inventory/group_vars/all/seed-hypervisor +++ b/ansible/inventory/group_vars/all/seed-hypervisor @@ -44,7 +44,8 @@ seed_hypervisor_luks_devices: [] # volume group for libvirt storage. seed_hypervisor_lvm_groups: [] -# Suggested list of seed hypervisor volume groups for libvirt. Not used by default. +# Suggested list of seed hypervisor volume groups for libvirt. Not used by +# default. seed_hypervisor_lvm_groups_with_data: - "{{ seed_hypervisor_lvm_group_data }}" diff --git a/ansible/inventory/group_vars/all/seed-vm b/ansible/inventory/group_vars/all/seed-vm index 674d0384b..73c50ed73 100644 --- a/ansible/inventory/group_vars/all/seed-vm +++ b/ansible/inventory/group_vars/all/seed-vm @@ -62,7 +62,20 @@ seed_vm_data_capacity: 100G # Format of the seed VM data volume. seed_vm_data_format: qcow2 -# List of network interfaces to attach to the seed VM. +# List of network interfaces to attach to the seed VM. Format is as accepted by +# the stackhpc.libvirt-vm role's libvirt_vms.interfaces variable. Default is +# one interface for each network in 'network_interfaces'. +# +# Example with one interface connected to a libvirt network called +# 'libvirt-net', and another interface directly plugged into a host device +# called 'eth1': +# +# seed_vm_interfaces: +# - network: libvirt-net +# - type: direct +# source: +# dev: eth1 +# seed_vm_interfaces: "{{ network_interfaces | sort | map('net_libvirt_vm_network') | list }}" # Boot firmware. Possible values are 'bios' or 'efi'. Default is 'efi'. diff --git a/etc/kayobe/controllers.yml b/etc/kayobe/controllers.yml index 066c42d33..1cc50c30b 100644 --- a/etc/kayobe/controllers.yml +++ b/etc/kayobe/controllers.yml @@ -106,8 +106,7 @@ # Whether a 'data' LVM volume group should exist on controller hosts. By # default this contains a 'docker-volumes' logical volume for Docker volume -# storage. -# Default is false. +# storage. Default is false. #controller_lvm_group_data_enabled: # Controller LVM volume group for data. See mrlesmithjr.manage_lvm role for @@ -118,18 +117,33 @@ # invalid value to require configuration. #controller_lvm_group_data_disks: +# List of LVM logical volumes for the data volume group when using docker. +#controller_lvm_group_data_docker_lvs: + +# List of LVM logical volumes for the data volume group when using podman. +#controller_lvm_group_data_podman_lvs: + # List of LVM logical volumes for the data volume group. #controller_lvm_group_data_lvs: # Docker volumes LVM backing volume. #controller_lvm_group_data_lv_docker_volumes: +# Podman volumes LVM backing volume. +#controller_lvm_group_data_lv_podman_volumes: + # Size of docker volumes LVM backing volume. #controller_lvm_group_data_lv_docker_volumes_size: # Filesystem for docker volumes LVM backing volume. ext4 allows for shrinking. #controller_lvm_group_data_lv_docker_volumes_fs: +# Size of podman volumes LVM backing volume. +#controller_lvm_group_data_lv_podman_volumes_size: + +# Filesystem for podman volumes LVM backing volume. ext4 allows for shrinking. +#controller_lvm_group_data_lv_podman_volumes_fs: + ############################################################################### # Controller node sysctl configuration. diff --git a/etc/kayobe/infra-vms.yml b/etc/kayobe/infra-vms.yml index 25c39f478..59147aac7 100644 --- a/etc/kayobe/infra-vms.yml +++ b/etc/kayobe/infra-vms.yml @@ -123,6 +123,12 @@ # an invalid value to require configuration. #infra_vm_lvm_group_data_disks: +# List of LVM logical volumes for the data volume group when using docker. +#infra_vm_lvm_group_data_docker_lvs: + +# List of LVM logical volumes for the data volume group when using podman. +#infra_vm_lvm_group_data_podman_lvs: + # List of LVM logical volumes for the data volume group. #infra_vm_lvm_group_data_lvs: @@ -135,6 +141,12 @@ # Filesystem for docker volumes LVM backing volume. ext4 allows for shrinking. #infra_vm_lvm_group_data_lv_docker_volumes_fs: +# Size of podman volumes LVM backing volume. +#infra_vm_lvm_group_data_lv_podman_volumes_size: + +# Filesystem for podman volumes LVM backing volume. ext4 allows for shrinking. +#infra_vm_lvm_group_data_lv_podman_volumes_fs: + ############################################################################### # Infrastructure VM node sysctl configuration. diff --git a/etc/kayobe/seed.yml b/etc/kayobe/seed.yml index 6b4eb9f9b..7a335ea2f 100644 --- a/etc/kayobe/seed.yml +++ b/etc/kayobe/seed.yml @@ -60,6 +60,12 @@ # value to require configuration. #seed_lvm_group_data_disks: +# List of LVM logical volumes for the data volume group when using docker. +#seed_lvm_group_data_docker_lvs: + +# List of LVM logical volumes for the data volume group when using podman. +#seed_lvm_group_data_podman_lvs: + # List of LVM logical volumes for the data volume group. #seed_lvm_group_data_lvs: @@ -72,6 +78,12 @@ # Filesystem for docker volumes LVM backing volume. ext4 allows for shrinking. #seed_lvm_group_data_lv_docker_volumes_fs: +# Size of podman volumes LVM backing volume. +#seed_lvm_group_data_lv_podman_volumes_size: + +# Filesystem for podman volumes LVM backing volume. ext4 allows for shrinking. +#seed_lvm_group_data_lv_podman_volumes_fs: + ############################################################################### # Seed node sysctl configuration. From 32214e2b6b14fa834e8d210763b14bae7678e771 Mon Sep 17 00:00:00 2001 From: Pierre Riteau Date: Sat, 24 Jan 2026 20:11:08 +0100 Subject: [PATCH 4/9] CI: Make Tenks nodes compatible with c9s IPA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Increase the Tenks nodes to 3 GiB ram and force `cpu_mode: maximum` so the CentOS Stream IPA no longer errors with "Fatal glibc error: CPU does not support x86-64-v2", like in kolla-ansible [1]. [1] https://review.opendev.org/c/openstack/kolla-ansible/+/965244 Change-Id: If0352355db140b5c96776a9380af9afa933b9af3 Co-Authored-By: Bartosz Bezak Signed-off-by: Pierre Riteau --- ...-deploy-config-compute-libvirt-on-host.yml | 7 ++++-- dev/tenks-deploy-config-compute.yml | 7 ++++-- zuul.d/jobs.yaml | 22 +++++++++---------- zuul.d/nodesets.yaml | 18 +++++++++++++++ 4 files changed, 39 insertions(+), 15 deletions(-) diff --git a/dev/tenks-deploy-config-compute-libvirt-on-host.yml b/dev/tenks-deploy-config-compute-libvirt-on-host.yml index a6b80c104..53f53d325 100644 --- a/dev/tenks-deploy-config-compute-libvirt-on-host.yml +++ b/dev/tenks-deploy-config-compute-libvirt-on-host.yml @@ -4,7 +4,7 @@ node_types: type0: - memory_mb: 1024 + memory_mb: 3072 vcpus: 1 volumes: # There is a minimum disk space capacity requirement of 4GiB when using Ironic Python Agent: @@ -15,7 +15,10 @@ node_types: console_log_enabled: true # We seem to hit issues with missing cpu features in CI as a result of using host-model, e.g: # https://zuul.opendev.org/t/openstack/build/02c33ab51664419a88a5a54ad22852a9/log/primary/system_logs/libvirt/qemu/tk0.txt.gz#38 - cpu_mode: + # NOTE(bbezak): Force QEMU to expose x86-64‑v2 features, so the CentOS + # Stream IPA doesn't fail with "Fatal glibc error: CPU does not support + # x86-64-v2". + cpu_mode: maximum specs: - type: type0 diff --git a/dev/tenks-deploy-config-compute.yml b/dev/tenks-deploy-config-compute.yml index 984852bcb..feb46439a 100644 --- a/dev/tenks-deploy-config-compute.yml +++ b/dev/tenks-deploy-config-compute.yml @@ -4,7 +4,7 @@ node_types: type0: - memory_mb: 1024 + memory_mb: 3072 vcpus: 1 volumes: # There is a minimum disk space capacity requirement of 4GiB when using Ironic Python Agent: @@ -15,7 +15,10 @@ node_types: console_log_enabled: true # We seem to hit issues with missing cpu features in CI as a result of using host-model, e.g: # https://zuul.opendev.org/t/openstack/build/02c33ab51664419a88a5a54ad22852a9/log/primary/system_logs/libvirt/qemu/tk0.txt.gz#38 - cpu_mode: + # NOTE(bbezak): Force QEMU to expose x86-64‑v2 features, so the CentOS + # Stream IPA doesn't fail with "Fatal glibc error: CPU does not support + # x86-64-v2". + cpu_mode: maximum specs: - type: type0 diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index b917e34fd..ed98ae2dc 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -124,7 +124,7 @@ - job: name: kayobe-overcloud-centos10s parent: kayobe-overcloud-base - nodeset: kayobe-centos10s + nodeset: kayobe-centos10s-16GB voting: false - job: @@ -132,24 +132,24 @@ parent: kayobe-overcloud-base vars: kayobe_control_host_become: false - nodeset: kayobe-rocky10 + nodeset: kayobe-rocky10-16GB - job: name: kayobe-overcloud-rocky10-podman parent: kayobe-overcloud-base - nodeset: kayobe-rocky10 + nodeset: kayobe-rocky10-16GB vars: container_engine: podman - job: name: kayobe-overcloud-ubuntu-noble parent: kayobe-overcloud-base - nodeset: kayobe-ubuntu-noble + nodeset: kayobe-ubuntu-noble-16GB - job: name: kayobe-overcloud-ubuntu-noble-podman parent: kayobe-overcloud-base - nodeset: kayobe-ubuntu-noble + nodeset: kayobe-ubuntu-noble-16GB vars: container_engine: podman kayobe_control_host_become: false @@ -164,13 +164,13 @@ - job: name: kayobe-overcloud-tls-centos10s parent: kayobe-overcloud-tls-base - nodeset: kayobe-centos10s + nodeset: kayobe-centos10s-16GB voting: false - job: name: kayobe-overcloud-tls-rocky10 parent: kayobe-overcloud-tls-base - nodeset: kayobe-rocky10 + nodeset: kayobe-rocky10-16GB - job: name: kayobe-overcloud-upgrade-base @@ -187,22 +187,22 @@ - job: name: kayobe-overcloud-upgrade-rocky10 parent: kayobe-overcloud-upgrade-base - nodeset: kayobe-rocky10 + nodeset: kayobe-rocky10-16GB - job: name: kayobe-overcloud-upgrade-ubuntu-noble parent: kayobe-overcloud-upgrade-base - nodeset: kayobe-ubuntu-noble + nodeset: kayobe-ubuntu-noble-16GB - job: name: kayobe-overcloud-upgrade-slurp-rocky10 parent: kayobe-overcloud-upgrade-base - nodeset: kayobe-rocky10 + nodeset: kayobe-rocky10-16GB - job: name: kayobe-overcloud-upgrade-slurp-ubuntu-noble parent: kayobe-overcloud-upgrade-base - nodeset: kayobe-ubuntu-noble + nodeset: kayobe-ubuntu-noble-16GB - job: name: kayobe-seed-base diff --git a/zuul.d/nodesets.yaml b/zuul.d/nodesets.yaml index b7bd14d8b..32c72a536 100644 --- a/zuul.d/nodesets.yaml +++ b/zuul.d/nodesets.yaml @@ -5,14 +5,32 @@ - name: primary label: centos-10-stream-8GB +- nodeset: + name: kayobe-centos10s-16GB + nodes: + - name: primary + label: centos-10-stream-16GB + - nodeset: name: kayobe-rocky10 nodes: - name: primary label: rockylinux-10-8GB +- nodeset: + name: kayobe-rocky10-16GB + nodes: + - name: primary + label: rockylinux-10-16GB + - nodeset: name: kayobe-ubuntu-noble nodes: - name: primary label: ubuntu-noble + +- nodeset: + name: kayobe-ubuntu-noble-16GB + nodes: + - name: primary + label: ubuntu-noble-16GB From ca230c71c9642586c2aea27f70111e6888095aa4 Mon Sep 17 00:00:00 2001 From: Eric Le Lay Date: Tue, 9 Dec 2025 15:43:40 +0100 Subject: [PATCH 5/9] Add support for url sources in kolla_sources Previously the version and sha256 attributes would not be generated in kolla-build.conf, preventing the override for sources with url type. Only git and local types worked. Change-Id: I0a5100347d8755a452d2744a458b3177e41196ca Signed-off-by: Eric Le Lay --- .../kolla-build/templates/kolla/kolla-build.conf | 7 +++++++ doc/source/configuration/reference/kolla.rst | 15 ++++++++++++++- ...erride-kolla_sources-url-b268b5c87b051ea0.yaml | 7 +++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/override-kolla_sources-url-b268b5c87b051ea0.yaml diff --git a/ansible/roles/kolla-build/templates/kolla/kolla-build.conf b/ansible/roles/kolla-build/templates/kolla/kolla-build.conf index 4e84cec0d..78ccd60bf 100644 --- a/ansible/roles/kolla-build/templates/kolla/kolla-build.conf +++ b/ansible/roles/kolla-build/templates/kolla/kolla-build.conf @@ -40,6 +40,13 @@ location = {{ source_def.location }} # Reference of source for {{ source_name }}. reference = {{ source_def.reference }} {% endif %} +{% if source_def.sha256 is defined %} +{# generates sha256 = amd64:xxx,arm64:yyy #} +sha256 = {{ source_def.sha256.keys() | zip (source_def.sha256.values()) | map("join", ":") | join(",") }} +{% endif %} +{% if source_def.version is defined %} +version = {{ source_def.version }} +{% endif %} {% endfor %} diff --git a/doc/source/configuration/reference/kolla.rst b/doc/source/configuration/reference/kolla.rst index b920944eb..3a03dfb94 100644 --- a/doc/source/configuration/reference/kolla.rst +++ b/doc/source/configuration/reference/kolla.rst @@ -247,7 +247,7 @@ default is to specify the URL and version of Bifrost, as defined in ``${KAYOBE_CONFIG_PATH}/bifrost.yml``. For example, to specify a custom source location for the ``ironic-base`` -package: +package and a custom version of cadvisor: .. code-block:: yaml :caption: ``kolla.yml`` @@ -261,6 +261,11 @@ package: type: "git" location: https://git.example.com/ironic reference: downstream + prometheus-cadvisor: + version: "0.54.1" + sha256: + amd64: xxxx + arm64: yyyy This will result in Kayobe adding the following configuration to ``kolla-build.conf``: @@ -278,9 +283,17 @@ This will result in Kayobe adding the following configuration to location = https://git.example.com/ironic reference = downstream + [prometheus-cadvisor] + version = 0.54.1 + sha256 = amd64:xxxx,arm64:yyyy + Note that it is currently necessary to include the Bifrost source location if using a seed. +Note that it is not necessary to specify the prometheus-cadvisor ``type: url`` +and ``location: https://github.com/...`` because they are inherited from kolla +(``kolla/common/sources.py``). + Plugins & additions ------------------- diff --git a/releasenotes/notes/override-kolla_sources-url-b268b5c87b051ea0.yaml b/releasenotes/notes/override-kolla_sources-url-b268b5c87b051ea0.yaml new file mode 100644 index 000000000..e3cd87cd7 --- /dev/null +++ b/releasenotes/notes/override-kolla_sources-url-b268b5c87b051ea0.yaml @@ -0,0 +1,7 @@ +--- +feature: + - | + Adds support for ``url`` sources in ``kolla_sources``. Previously the + ``version`` and ``sha256`` attributes would not be generated in + ``kolla-build.conf``, preventing the override for sources with ``url`` + type. Only ``git`` and ``local`` types worked. From 0788c6ded5ccac152859bb16b1866c6c269bcba4 Mon Sep 17 00:00:00 2001 From: Pierre Riteau Date: Tue, 27 Jan 2026 10:53:02 +0100 Subject: [PATCH 6/9] CI: Add missing job to experimental queue Change-Id: Ied850ade925dbc35f0150a9ced77879d1a2a796d Signed-off-by: Pierre Riteau --- zuul.d/project.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index 37f0d0b23..37fe7338e 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -77,6 +77,7 @@ - kayobe-infra-vm-rocky10-cloud-image - kayobe-infra-vm-ubuntu-noble-cloud-image - kayobe-overcloud-centos10s + - kayobe-overcloud-host-configure-centos10s - kayobe-overcloud-tls-centos10s - kayobe-seed-centos10s - kayobe-seed-images-centos10s From 16f7e2e14be59d32bd2ad39175ac92e8ac824d0c Mon Sep 17 00:00:00 2001 From: Pierre Riteau Date: Tue, 27 Jan 2026 22:59:14 +0100 Subject: [PATCH 7/9] CI: Enable baremetal inspection testing Change-Id: I9395aa664a24f31d90e2d09f4191f904b437c840 Signed-off-by: Pierre Riteau --- playbooks/kayobe-overcloud-base/run.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playbooks/kayobe-overcloud-base/run.yml b/playbooks/kayobe-overcloud-base/run.yml index 3fa4fdaee..e5c617bc8 100644 --- a/playbooks/kayobe-overcloud-base/run.yml +++ b/playbooks/kayobe-overcloud-base/run.yml @@ -42,7 +42,7 @@ chdir: "{{ kayobe_src_dir }}" executable: /bin/bash # TODO(priteau): Fix baremetal inspect issues with UEFI - when: ironic_boot_mode == 'bios' and false # TODO(priteau): Re-enable when working + when: ironic_boot_mode == 'bios' - name: Perform testing of the baremetal machines shell: From f1cea2ba29ded2ef389c3614fe5257dd02bb6e34 Mon Sep 17 00:00:00 2001 From: Will Szumski Date: Mon, 15 Dec 2025 11:31:47 +0000 Subject: [PATCH 8/9] Remove undocumented playbook for creating external network This is not referenced in the documentation and is not used by any Kayobe commands. It is also likely to be broken as it needs refactoring to properly support the stackhpc.os-networks role. An attempt was made to do this previously[1], but the variables in the refactoring do not exist in the new role. This wasn't caught at the time as it is unused in the CI. These days we prefer to manage the networks in a separate repository using either Ansible or OpenTofu. [1] https://github.com/openstack/kayobe/commit/619ad3ebc83811af640d4f6d4294b428946d4bd1 Change-Id: Ie3b618471e8ed91b202867972897e364805d336e Signed-off-by: Will Szumski --- ansible/external-net.yml | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 ansible/external-net.yml diff --git a/ansible/external-net.yml b/ansible/external-net.yml deleted file mode 100644 index e3e7a89fd..000000000 --- a/ansible/external-net.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -- name: Ensure external network and subnet are registered in neutron - # Only required to run on a single host. - hosts: controllers[0] - roles: - - role: stackhpc.openstack.os_networks - os_openstacksdk_install_epel: "{{ dnf_install_epel }}" - os_openstacksdk_upper_constraints_file: "{{ openstacksdk_upper_constraints_file }}" - os_networks_venv: "{{ virtualenv_path }}/openstacksdk" - os_networks_openstack_auth_type: "{{ openstack_auth_type }}" - os_networks_openstack_auth: "{{ openstack_auth }}" - # Network configuration. - os_networks_name: "{{ item }}" - os_networks_type: "{% if item | net_vlan %}vlan{% else %}flat{% endif %}" - os_networks_physical_network: "physnet1" - os_networks_segmentation_id: "{{ item | net_vlan }}" - os_networks_shared: True - os_networks_external: True - # Subnet configuration. - os_networks_subnet_name: "{{ item }}" - os_networks_cidr: "{{ item | net_cidr }}" - os_networks_gateway_ip: "{{ item | net_gateway }}" - os_networks_allocation_pool_start: "{{ item | net_neutron_allocation_pool_start }}" - os_networks_allocation_pool_end: "{{ item | net_neutron_allocation_pool_end }}" - with_items: "{{ external_net_names }}" From 7b11017c732c8aa233bb72ad71fc646a3e806f2c Mon Sep 17 00:00:00 2001 From: Grzegorz Koper Date: Tue, 27 Jan 2026 12:28:35 +0100 Subject: [PATCH 9/9] Changed the way bashate is executed to exclude local dev artifacts. Closes-bug: #2139142 Change-Id: I65d60fe49bbc7c0fb7472d065040d7f446258705 Signed-off-by: Grzegorz Koper --- tools/run-bashate.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/run-bashate.sh b/tools/run-bashate.sh index 2b5b514cf..dd35ba737 100755 --- a/tools/run-bashate.sh +++ b/tools/run-bashate.sh @@ -6,4 +6,6 @@ ROOT=$(readlink -fn $(dirname $0)/.. ) # NOTE(priteau): ignore E010 because it fails on one-liner bash loops: # https://bugs.launchpad.net/bash8/+bug/1895102 find $ROOT -not -wholename \*.tox/\* -and -not -wholename \*.test/\* \ + -and -not -wholename \*.ansible/\* -and -not -wholename \*venv\* \ + -and -not -wholename \*/ansible/roles/\*.\*/\* \ -and -name \*.sh -print0 | xargs -0 bashate -v --ignore E006,E010