Skip to content

Commit 72beb03

Browse files
committed
Reset Kolla namespace to kolla when upgrading stable to current
When a stable release is deployed, the Kolla docker_namespace is set to kolla/release/<openstack_version> (>= 10.0.0) or kolla/release. When the testbed is then updated/upgraded to current (latest), this namespace must be reset to kolla again, otherwise image pulls fail with e.g. artifact kolla/release/2025.1/fluentd:2025.1 not found The previous logic in upgrade-manager.sh derived the namespace from the KOLLA_NAMESPACE parameter passed by the playbook (guarded on == "kolla/release") and never reset it to kolla for the latest target: - update-stable.yml passes "kolla", but it was only set without --sync and never synced, so the stale kolla/release/<version> stayed active. - upgrade-stable.yml passes "kolla/release", which for a latest target produced kolla/release/<version> instead of kolla. Derive the namespace from the target manager version instead (mirroring deploy/000-manager.sh) and always apply it with --sync: - latest -> kolla - stable >= 10.0.0 -> kolla/release/<openstack_version> - stable < 10.0.0 -> kolla/release This fixes testbed-update-stable-current-ubuntu-24.04 and testbed-upgrade-stable-next-ubuntu-24.04 without changing the behaviour of the stable-to-stable upgrade/update jobs. Assisted-By: Claude:claude-opus-4-8 Signed-off-by: Christian Berendt <berendt@osism.tech>
1 parent 49c31c8 commit 72beb03

2 files changed

Lines changed: 24 additions & 16 deletions

File tree

.zuul.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
# 2.4 Abstract Jobs for Upgrade/Update Operations
112112
# -----------------------------------------------------------------------------
113113

114-
# Update: Minor version update (e.g., 9.4.0 -> 9.5.0)
114+
# Update: Minor version update (e.g., X.1.0 -> X.2.0)
115115
- job:
116116
name: abstract-testbed-update-stable
117117
abstract: true
@@ -120,7 +120,7 @@
120120
nodeset: testbed-orchestrator
121121
timeout: 30000
122122

123-
# Upgrade: Major version upgrade (e.g., 9.5.0 -> 10.1.0)
123+
# Upgrade: Major version upgrade (e.g., X.1.0 -> Y.1.0)
124124
- job:
125125
name: abstract-testbed-upgrade-stable
126126
abstract: true
@@ -256,19 +256,19 @@
256256
timeout: 30000
257257

258258
# -----------------------------------------------------------------------------
259-
# 4.2 Update Jobs (Minor Version: 9.4.0 -> 9.5.0)
259+
# 4.2 Update Jobs (Minor Version: X.1.0 -> X.2.0)
260260
# -----------------------------------------------------------------------------
261261

262262
- job:
263263
name: testbed-update-stable-ubuntu-24.04
264264
parent: abstract-testbed-update-stable
265265
vars:
266266
terraform_environment: ubuntu-24.04
267-
manager_version: 9.4.0
268-
manager_version_next: 9.5.0
267+
manager_version: 10.1.0
268+
manager_version_next: 10.2.0
269269

270270
# -----------------------------------------------------------------------------
271-
# 4.3 Upgrade Jobs (Major Version: 9.5.0 -> 10.1.0)
271+
# 4.3 Upgrade Jobs (Major Version: X.1.0 -> Y.1.0)
272272
# -----------------------------------------------------------------------------
273273

274274
- job:
@@ -300,7 +300,7 @@
300300
nodeset: testbed-orchestrator
301301
timeout: 30000
302302
vars:
303-
manager_version: 9.5.0
303+
manager_version: 10.1.0
304304
ceph_version_next: skip
305305
manager_version_next: latest
306306
openstack_version_next: "2025.1"
@@ -312,10 +312,10 @@
312312
nodeset: testbed-orchestrator
313313
timeout: 30000
314314
vars:
315-
manager_version: 9.5.0
315+
manager_version: 10.1.0
316316
ceph_version_next: skip
317317
manager_version_next: latest
318-
openstack_version_next: "2025.1"
318+
openstack_version_next: "2025.2"
319319

320320
# =============================================================================
321321
# 5. PROJECT PIPELINE DEFINITION

scripts/upgrade-manager.sh

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,19 @@ fi
8787
# refresh facts
8888
osism apply facts
8989

90-
if [[ $KOLLA_NAMESPACE == "kolla/release" ]]; then
91-
if [[ $MANAGER_VERSION != "latest" || $OPENSTACK_VERSION == "skip" ]]; then
92-
OPENSTACK_VERSION=$(docker inspect --format '{{ index .Config.Labels "de.osism.release.openstack"}}' kolla-ansible)
93-
fi
94-
if [[ $MANAGER_VERSION == "latest" || $(semver $MANAGER_VERSION 10.0.0-0) -ge 0 ]]; then
95-
/opt/configuration/scripts/set-kolla-namespace.sh --sync "kolla/release/$OPENSTACK_VERSION"
96-
fi
90+
# Set the Kolla namespace to match the target version. The namespace must be
91+
# derived from the target manager version, not from the namespace that was used
92+
# before the upgrade/update:
93+
# - current (latest): images live in kolla. When coming from a stable release
94+
# the release/<openstack_version> part must be removed again.
95+
# - stable >= 10.0.0: images live in kolla/release/<openstack_version>.
96+
# - stable < 10.0.0: images live in kolla/release.
97+
# --sync makes the new namespace effective for the following service upgrade.
98+
if [[ $MANAGER_VERSION == "latest" ]]; then
99+
/opt/configuration/scripts/set-kolla-namespace.sh --sync kolla
100+
elif [[ $(semver $MANAGER_VERSION 10.0.0-0) -ge 0 ]]; then
101+
OPENSTACK_VERSION=$(docker inspect --format '{{ index .Config.Labels "de.osism.release.openstack"}}' kolla-ansible)
102+
/opt/configuration/scripts/set-kolla-namespace.sh --sync "kolla/release/$OPENSTACK_VERSION"
103+
else
104+
/opt/configuration/scripts/set-kolla-namespace.sh --sync kolla/release
97105
fi

0 commit comments

Comments
 (0)