Skip to content

developer guide: document container image labels - #1122

Merged
berendt merged 1 commit into
mainfrom
image-label-baseline
Oct 21, 2026
Merged

berendt merged 1 commit into
mainfrom
image-label-baseline

Conversation

@ideaship

Copy link
Copy Markdown
Contributor

Adds a developer-guide page, "Container Image Labels", describing the labels every image built from a release tag carries: the kolla service images, kolla-ansible, osism-ansible, osism-kubernetes, ceph-ansible and inventory-reconciler. It is linked from "How to add a new container image" so that new images follow the same rules.

The page covers:

  • the OCI labels, de.osism.commit.<repo> for every cloned repository, de.osism.release.<product> for the series, version and digest for image inputs, and the base image by name and digest
  • that the kolla SBOM in kolla-ansible is the only image input recorded so far; the uv binary copied from ghcr.io/astral-sh/uv is pinned by version only and has no label
  • why each build resolves its refs and images once and sets the labels from the same variables, with Label the image with the commits it contains container-image-kolla-ansible#949 as the reference
  • how to read the labels and which release checks in osism/release use them

The page was checked against the labels of the published 0.20261019.0 images and the current kolla 2026.1 images.

The page says org.opencontainers.image.url names the image's own repository. inventory-reconciler and the kolla service images already do; osism-ansible, osism-kubernetes, kolla-ansible and ceph-ansible still point to the quay organisation.

🤖 Generated with Claude Code

Every image built from a release tag (the kolla service images,
kolla-ansible, osism-ansible, osism-kubernetes, ceph-ansible and
inventory-reconciler) now carries the same set of labels, and the
release checks in osism/release rely on de.osism.commit.release. The
rules behind those labels were not written down anywhere a developer
adding or changing an image would find them.

Add a page "Container Image Labels" that describes:

- the labels: the OCI set with the full revision of the image's own
  repository, de.osism.commit.<repo> for every repository a build
  clones (with the naming rule and the known repositories),
  de.osism.release.<product> for the series, version and digest for
  image inputs, and base.name/base.digest;
- that the kolla SBOM in kolla-ansible is the only image input
  recorded so far: the uv binary the non-kolla images copy from
  ghcr.io/astral-sh/uv is pinned by version only and has no label;
- why each build resolves its refs and images once, at the start, and
  sets the labels from the same variables, with
  osism/container-image-kolla-ansible#949 as the reference;
- how to read the labels and which release checks use them.

Link it from "How to add a new container image" so new images follow
the same rules.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Roger Luethi <luethi@osism.tech>
@github-actions

Copy link
Copy Markdown

✅⚠️MegaLinter analysis: Success with warnings

Descriptor Linter Files Fixed Errors Max errors Warnings Elapsed time
✅ ACTION actionlint 5 0 0 0.06s
✅ JSON jsonlint 4 0 0 0.09s
✅ JSON prettier 4 0 0 0.32s
✅ JSON v8r 4 0 0 5.42s
✅ MARKDOWN markdownlint 183 0 0 2.59s
✅ MARKDOWN markdown-table-formatter 183 0 0 0.31s
✅ REPOSITORY betterleaks yes no no 0.92s
✅ REPOSITORY checkov yes no no 16.19s
✅ REPOSITORY git_diff yes no no 0.08s
✅ REPOSITORY secretlint yes no no 1.21s
✅ REPOSITORY trufflehog yes no no 3.35s
✅ SPELL codespell 193 0 0 0.49s
⚠️ SPELL lychee 193 6 0 41.04s
✅ YAML prettier 6 0 0 0.31s
✅ YAML v8r 6 0 0 6.24s
✅ YAML yamllint 6 0 0 0.34s

Detailed Issues

⚠️ SPELL / lychee - 6 errors
📝 Summary
---------------------
🔍 Total.........1248
🔗 Unique.........927
✅ Successful....1133
⏳ Timeouts.........0
🔀 Redirected.......9
👻 Excluded.......109
❓ Unknown..........0
🚫 Errors...........6
⛔ Unsupported......6

Errors in .claude/skills/security-advisory/reference/style.md
[ERROR] file://.claude/skills/guides/operations-guide/openstack/security-updates.md (at 189:3) | File not found. Check if file exists and path is correct

Errors in .claude/skills/security-advisory/SKILL.md
[400] https://cveawg.mitre.org/api/cve/ (at 16:18) | Rejected status code: 400 Bad Request
[404] https://raw.githubusercontent.com/osism/ (at 17:18) | Rejected status code: 404 Not Found
[400] https://registry.osism.tech/service/token (at 18:19) | Rejected status code: 400 Bad Request

Errors in docs/guides/developer-guide/style-guide.md
[ERROR] https://wiki.openstack.org/wiki/GitCommitMessages (at 79:1) | Network unreachable. Check internet connection or VPN settings

Errors in docs/release-notes/osism-10.md
[ERROR] https://docs.openstack.org/releasenotes/kolla-ansible/2025.1.html (at 1023:18) | Connection closed before response completed

Hint: Followed 9 redirects. You might want to consider replacing redirecting URLs with the resolved URLs. Use verbose mode (`-v`/`-vv`) to see redirection details.

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@10.1.0 --custom-flavor-setup --custom-flavor-linters ACTION_ACTIONLINT,JSON_JSONLINT,JSON_V8R,JSON_PRETTIER,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,REPOSITORY_CHECKOV,REPOSITORY_GIT_DIFF,REPOSITORY_BETTERLEAKS,REPOSITORY_SECRETLINT,REPOSITORY_TRUFFLEHOG,SPELL_LYCHEE,SPELL_CODESPELL,YAML_PRETTIER,YAML_YAMLLINT,YAML_V8R

MegaLinter is provided by OX Security
Show us your support by starring ⭐ the repository

@ideaship
ideaship marked this pull request as ready for review October 21, 2026 09:25
@ideaship
ideaship requested a review from berendt October 21, 2026 09:25
@berendt
berendt merged commit 17d97c5 into main Oct 21, 2026
6 checks passed
@berendt
berendt deleted the image-label-baseline branch October 21, 2026 09:31
@github-project-automation github-project-automation Bot moved this from New to Done in Human Board Oct 21, 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