From 34ca6e35c94ddba1e47722718f3fc81a1f03e28a Mon Sep 17 00:00:00 2001 From: Michal Nasiadka Date: Mon, 17 Nov 2025 10:00:54 +0100 Subject: [PATCH 1/3] bifrost: Mark as unbuildable It's failing since switch to unmaintained Marking py38 job as non voting, since it's now checking out master. It can be marked again as voting when we branch to unmaintained/2024.1 Change-Id: I46690597b3a6536cee14e5a76ba963b5fa9dfd34 Signed-off-by: Michal Nasiadka --- .zuul.d/project.yaml | 2 +- .zuul.d/python3-jobs.yaml | 22 ++++++++++++++++++++++ kolla/image/unbuildable.py | 4 ++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 .zuul.d/python3-jobs.yaml diff --git a/.zuul.d/project.yaml b/.zuul.d/project.yaml index 7618af0c68..9f650e7106 100644 --- a/.zuul.d/project.yaml +++ b/.zuul.d/project.yaml @@ -1,7 +1,7 @@ --- - project: templates: - - openstack-python3-jobs + - openstack-python3-jobs-kolla - openstack-python3-jobs-arm64 - openstack-cover-jobs - check-requirements diff --git a/.zuul.d/python3-jobs.yaml b/.zuul.d/python3-jobs.yaml new file mode 100644 index 0000000000..d3b182e67f --- /dev/null +++ b/.zuul.d/python3-jobs.yaml @@ -0,0 +1,22 @@ +--- +- project-template: + name: openstack-python3-jobs-kolla + # NOTE(gmann): We are using this generic template for python version + # testing. When a new development cycle starts, we need to do two things: + # 1. Update this template for the python version jobs as per the + # new development cycle tetsing runtime defined by TC + # https://governance.openstack.org/tc/reference/runtimes/ + # Use the 'branches' variant to run the applicable python version + # jobs. + # 2. Make sure the previous cycle applicable jobs continue to run for + # the new stable branch. Use the 'branches' variant to run the + # applicable python version jobs. + description: | + Runs unit tests for an OpenStack Python project under the CPython + version 3 releases designated for testing the latest release. + check: + jobs: + - openstack-tox-pep8 + - openstack-tox-py38: + voting: false + - openstack-tox-py311 diff --git a/kolla/image/unbuildable.py b/kolla/image/unbuildable.py index 8a6eb52509..9fb8d334ea 100644 --- a/kolla/image/unbuildable.py +++ b/kolla/image/unbuildable.py @@ -24,6 +24,7 @@ # Issues for SHA1 keys: # https://github.com/grafana/grafana/issues/41036 'centos': { + "bifrost-base", # Failing after unmaintained switch "hacluster-pcs", # Missing crmsh package "nova-spicehtml5proxy", # Missing spicehtml5 package "ovsdpdk", # Not supported on CentOS @@ -31,11 +32,13 @@ }, 'debian': { + "bifrost-base", # Failing after unmaintained switch "openvswitch-netcontrold", # https://bugs.launchpad.net/kolla/+bug/2027668 }, 'rocky': { + "bifrost-base", # Failing after unmaintained switch "collectd", # Missing libpqos.so.4()(64bit) "hacluster-pcs", # Missing crmsh package "nova-spicehtml5proxy", # Missing spicehtml5 package @@ -44,6 +47,7 @@ }, 'ubuntu': { + "bifrost-base", # Failing after unmaintained switch }, 'ubuntu+aarch64': { From 329319dec38d3191d9031a897bfc55a19d91828b Mon Sep 17 00:00:00 2001 From: Michal Arbet Date: Fri, 31 Jan 2025 12:48:45 +0100 Subject: [PATCH 2/3] Fix permissions for ironic metrics MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch adds creation of metrics folder, set permissions and SetGID bit. Closes-Bug: #2097098 Signed-off-by: Serhat Rıfat Demircan Change-Id: Ic46b895775edf5e5fb2b637be49e2de1eb4adf36 (cherry picked from commit ed7c8399c4a2a43e9a4165db416b98f5be8d538c) --- docker/ironic/ironic-base/Dockerfile.j2 | 2 +- docker/ironic/ironic-base/extend_start.sh | 10 ++++++++++ docker/ironic/ironic-base/ironic_sudoers | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/docker/ironic/ironic-base/Dockerfile.j2 b/docker/ironic/ironic-base/Dockerfile.j2 index 4b4681b673..3ae0484e0e 100644 --- a/docker/ironic/ironic-base/Dockerfile.j2 +++ b/docker/ironic/ironic-base/Dockerfile.j2 @@ -7,7 +7,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% import "macros.j2" as macros with context %} -{{ macros.configure_user(name='ironic') }} +{{ macros.configure_user(name='ironic', shell='/bin/bash') }} ADD ironic-base-archive /ironic-base-source ADD ironic_sudoers /etc/sudoers.d/kolla_ironic_sudoers diff --git a/docker/ironic/ironic-base/extend_start.sh b/docker/ironic/ironic-base/extend_start.sh index e3b1d4e2dc..dc6b05caaf 100644 --- a/docker/ironic/ironic-base/extend_start.sh +++ b/docker/ironic/ironic-base/extend_start.sh @@ -1,12 +1,22 @@ #!/bin/bash LOG_PATH=/var/log/kolla/ironic +METRICS_PATH=/var/lib/ironic-metrics if [[ ! -d "${LOG_PATH}" ]]; then mkdir -p "${LOG_PATH}" fi +if [[ ! -d "${METRICS_PATH}" ]]; then + sudo mkdir -p "${METRICS_PATH}" +fi if [[ $(stat -c %a "${LOG_PATH}") != "755" ]]; then chmod 755 "${LOG_PATH}" fi +if [[ $(stat -c %U:%G "${METRICS_PATH}") != "ironic:ironic" ]]; then + sudo chown ironic:ironic "${METRICS_PATH}" +fi +if [[ $(stat -c %a "${METRICS_PATH}") != "2775" ]]; then + sudo chmod 2775 "${METRICS_PATH}" +fi . /usr/local/bin/kolla_ironic_extend_start diff --git a/docker/ironic/ironic-base/ironic_sudoers b/docker/ironic/ironic-base/ironic_sudoers index 3e7c843f39..1a3f32e1af 100644 --- a/docker/ironic/ironic-base/ironic_sudoers +++ b/docker/ironic/ironic-base/ironic_sudoers @@ -1 +1,4 @@ ironic ALL = (root) NOPASSWD: /var/lib/kolla/venv/bin/ironic-rootwrap /etc/ironic/rootwrap.conf * +ironic ALL = (root) NOPASSWD: /bin/mkdir -p /var/lib/ironic-metrics, /usr/bin/mkdir -p /var/lib/ironic-metrics +ironic ALL = (root) NOPASSWD: /bin/chown ironic\:ironic /var/lib/ironic-metrics, /usr/bin/chown ironic\:ironic /var/lib/ironic-metrics +ironic ALL = (root) NOPASSWD: /bin/chmod 2755 /var/lib/ironic-metrics, /usr/bin/chmod 2775 /var/lib/ironic-metrics From 9406bc3a65195b43f6c002fd03a97fffab50bc55 Mon Sep 17 00:00:00 2001 From: Rafal Lewandowski Date: Fri, 14 Nov 2025 14:14:16 +0100 Subject: [PATCH 3/3] [2024.1-only] Bump taskflow version for glance to 5.8.0 in Ubuntu Noble Closes-Bug: #2116268 Change-Id: I8f02e6a12ab3fa2996a4d372560bdd4fd277e7c9 Signed-off-by: Rafal Lewandowski --- docker/glance/glance-base/Dockerfile.j2 | 4 ++++ .../notes/taskflow_bump_glance-21e7652d218767d7.yaml | 5 +++++ 2 files changed, 9 insertions(+) create mode 100644 releasenotes/notes/taskflow_bump_glance-21e7652d218767d7.yaml diff --git a/docker/glance/glance-base/Dockerfile.j2 b/docker/glance/glance-base/Dockerfile.j2 index bb0f071801..8da968219e 100644 --- a/docker/glance/glance-base/Dockerfile.j2 +++ b/docker/glance/glance-base/Dockerfile.j2 @@ -23,6 +23,10 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build ] %} {% endif %} +{% if base_distro_tag.startswith('24.04') %} +RUN {{ macros.upper_constraints_version_change("taskflow", "5.6.0", "5.8.0") }} +{% endif %} + {{ macros.install_packages(glance_base_packages | customizable("packages")) }} ADD glance-base-archive /glance-base-source diff --git a/releasenotes/notes/taskflow_bump_glance-21e7652d218767d7.yaml b/releasenotes/notes/taskflow_bump_glance-21e7652d218767d7.yaml new file mode 100644 index 0000000000..b3b00b82ba --- /dev/null +++ b/releasenotes/notes/taskflow_bump_glance-21e7652d218767d7.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Bump taskflow to 5.8.0 to address ``No module named 'asyncore'`` error + in Ubuntu Noble container images.