Set docker_namespace for the target release - #875
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Nothing upstream emits a usable
docker_namespace.osism/defaultsships only the placeholderkolla(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_versionbranch 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