feat(containers): embed distribution configs as OCI labels#5460
Merged
leseb merged 11 commits intoogx-ai:mainfrom Apr 16, 2026
Merged
feat(containers): embed distribution configs as OCI labels#5460leseb merged 11 commits intoogx-ai:mainfrom
leseb merged 11 commits intoogx-ai:mainfrom
Conversation
Signed-off-by: Eoin Fennessy <efenness@redhat.com>
Signed-off-by: Eoin Fennessy <efenness@redhat.com>
Signed-off-by: Eoin Fennessy <efenness@redhat.com>
Signed-off-by: Eoin Fennessy <efenness@redhat.com>
Use cut -d= -f2- instead of -f2 to preserve values containing '=' characters. Decode base64 to a temp file instead of using command substitution which strips trailing newlines, causing false diff failures. Fail verification on invalid YAML syntax instead of silently continuing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Eoin Fennessy <efenness@redhat.com>
Contributor
Author
Signed-off-by: Eoin Fennessy <efenness@redhat.com>
Signed-off-by: Eoin Fennessy <efenness@redhat.com>
Signed-off-by: Eoin Fennessy <efenness@redhat.com>
leseb
approved these changes
Apr 16, 2026
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.
Summary
Embeds distribution config files (config.yaml, run-with-postgres-store.yaml, etc.) as base64-encoded OCI labels in distribution container images. This enables consumers to inspect and use the distribution configs for each distribution container.
Changes
scripts/generate-config-labels.sh: Encodes all distribution configs as base64 OCI labels with metadata (distribution name, version, default config, configs list)scripts/verify-config-labels.sh: Verifies embedded configs match source files exactly (byte-for-byte comparison, YAML validation)scripts/docker.sh: Generates and embeds labels during local builds.github/workflows/build-distributions.yml: Embeds and verifies labels in CI buildsLabel Schema
Metadata:
Config content (base64-encoded):
Version logic
The version value is calculated using
git describe --tags --always --dirty. This produces outputs like the following:v0.6.1- Built exactly at tag v0.6.1 with no additional commitsv0.6.1-185-gadb81a7c9- Built 185 commits after the last tag (v0.6.1), at commit adb81a7v0.6.1-185-gadb81a7c9-dirty- Same as above, but with uncommitted local changesadb81a7c9- No tags exist in the repository, shows commit hash onlyadb81a7c9-dirty- No tags, with uncommitted changesTesting
Manually verified with
ci-testsdistribution:docker save/load(air-gap scenario)