Skip to content

Set docker_namespace for the target release - #875

Merged
berendt merged 1 commit into
mainfrom
pr/docker-namespace
Sep 15, 2026
Merged

berendt merged 1 commit into
mainfrom
pr/docker-namespace

Conversation

@ideaship

Copy link
Copy Markdown
Contributor

Nothing upstream emits a usable docker_namespace. osism/defaults ships only the placeholder kolla (all/099-kolla.yml, which wins over the earlier files), and the release pins do not set it at all. So a freshly generated configuration repository resolves the Kolla image URL against a namespace that does not hold the images it wants.

The correct value is release dependent and documented only in the OSISM 9.0.0 and 10.0.0 release notes, not in the deploy or configuration guide. OSISM 10 introduced the versioned form with the OpenStack release appended; the rolling development head is the exception and publishes to the plain namespace.

The versioned form is emitted as an Ansible expression rather than resolved at render time. That series is also what the image tags are chosen from, and for a pinned release it does not come from this repository at all — the kolla-ansible container carries it in its own group_vars, rendered when the image was built. A literal would make one fact have two independent sources with nothing keeping them equal, and a namespace naming one series while the tags name another does not fail as a missing repository: both namespaces exist, with disjoint tag vocabularies, so it resolves a real repository and then cannot find the tag. Deferring to Ansible removes the class — whatever selects the tags selects the namespace.

Only the manager_version branch stays a render-time decision, because whether this is a pinned release or the development head is genuinely known here and does not change afterwards.

🤖 Generated with Claude Code

Nothing upstream emits a usable docker_namespace. osism/defaults ships
only the placeholder "kolla" (all/099-kolla.yml, which wins over the
earlier 001-common.yml and 002-images-kolla.yml), and the release pins
in osism/release do not set it at all. So a freshly generated
configuration repository resolves the Kolla image URL against a
namespace that does not hold the images, and the first pull fails with
a "repository not found" against the registry.

The correct value is release dependent and documented only in the OSISM
9.0.0 and 10.0.0 release notes, not in the deploy or configuration
guide. OSISM 10 introduced the versioned form, with the OpenStack
release appended; the rolling development head is the exception and
publishes to the plain namespace.

Emit the versioned form as an Ansible expression rather than resolving
openstack_version here. That series is also what the image tags are
chosen from, and for a pinned release it does not come from this
repository at all: the kolla-ansible container carries it in its own
group_vars, rendered when the image was built. Writing a literal would
make one fact have two independent sources, with nothing keeping them
equal -- and a namespace naming one series while the tags name another
does not fail as a missing repository, it resolves a repository that
exists and then cannot find the tag. Deferring to Ansible removes the
class: whatever selects the tags selects the namespace.

Only the manager_version branch stays a render-time decision, because
whether this is a pinned release or the development head is genuinely
known here and does not change afterwards.

Only the two current forms are handled. The flat OSISM 9.x namespace is
not, because this template targets the current release -- its
manager_version default is a 10.x, and consumers that render historic
trees pin an older revision of this repository rather than using main.

The two namespaces are not interchangeable, which is what makes the
placeholder actively wrong rather than merely unset. In the registry,
kolla/release/<series>/<image> carries build-versioned tags (for example
31.3.2.20260814) while kolla/<image> carries series tags (2025.1,
2025.2, 2026.1). The vocabularies are disjoint, so a pinned release left
on the placeholder namespace does not get a clear "no such repository":
it resolves a repository that exists and then fails with a
manifest-unknown for the tag it actually wants.

DocImpact

Assisted-by: Claude:claude-opus-5
Signed-off-by: Roger Luethi <luethi@osism.tech>
@ideaship ideaship self-assigned this Sep 15, 2026
@ideaship
ideaship marked this pull request as ready for review September 15, 2026 06:49
@berendt
berendt merged commit c2b52a6 into main Sep 15, 2026
3 checks passed
@berendt
berendt deleted the pr/docker-namespace branch September 15, 2026 07:14
@github-project-automation github-project-automation Bot moved this from New to Done in Human Board Sep 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants