chore: publish image under images/ namespace#3
Merged
Conversation
Publish the container image to BOTH the legacy path (ghcr.io/enopax/dex) and the new org-wide namespaced path (ghcr.io/enopax/images/dex) during the cutover described in enopax/enopax#15. The build feeds both image names to docker/metadata-action so every tag is pushed to both repositories with the same digest. The legacy path is retained so existing consumers continue to work.
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.
What
Switches the published container image for
enopax/dexto the new org-wide package naming schema (proposed in enopax/enopax#15), while keeping the legacy path working during the transition.The build workflow now publishes to both paths with the same digest and the same set of tags:
ghcr.io/enopax/dexghcr.io/enopax/images/dexWhy
We are adopting a consistent package layout across the org:
ghcr.io/enopax/images/<repo>ghcr.io/enopax/charts/<repo>To avoid breaking existing consumers (manifests, deployments) that still pull
ghcr.io/enopax/dex, this PR does not remove the old path. It dual-publishes so consumers can migrate at their own pace.How
.github/workflows/artifacts.yamlpreviously computed a single image name asghcr.io/${{ github.repository }}(which resolves toghcr.io/enopax/dex). TheSet image namestep now emits:value— legacy path (unchanged behaviour for downstream outputs / attestation / release ref)new— namespaced pathall— newline-separated list of both, fed todocker/metadata-actiondocker/metadata-actionaccepts a multi-lineimages:input and generates the full tag matrix for every image, sodocker/build-push-actionpushes all tags to both repositories in a single build (same digest, same multi-arch manifest).No literal
ghcr.io/enopax/dexstring exists in the repo (the name was always derived fromgithub.repository), so no other in-repo references needed updating.Cutover plan
ghcr.io/enopax/dexandghcr.io/enopax/images/dex. Consumers keep working unchanged.ghcr.io/enopax/dextoghcr.io/enopax/images/dex(separate PRs in consumer repos — not done here). Known consumers: see notes below.all(drop thelegacyline), leaving only the namespaced path.Notes / risks
ghcr.io/enopax/images/dexpackage is created automatically on first push by the workflowGITHUB_TOKEN(which haspackages: write). It will initially be private; an org admin may need to set its visibility/linkage to match the existingdexpackage.Set image ref/ attestation still uses the legacy path as the canonical ref during the transition; the namespaced image receives the identical digest.Validation
.github/workflows/artifacts.yamlchanged (24 insertions, 2 deletions).ghcr.io/enopax/dexstring exists. The only otherghcr.ioreferences are an upstream example (examples/k8s/dex.yaml→ghcr.io/dexidp/dex:v2.32.0) and the registry login host, both intentionally left untouched.ghcr.io/enopax/dex(to migrate in step 2, not changed here):enopax/platform→docker-compose.yml,enopax.com_setup/opt/platform/docker-compose.prod.yml,enopax.com_setup/opt/deploy/deploy.sh(all pinghcr.io/enopax/dex:2.45.1_file_store)