Skip to content

fix(ci): pin container image names instead of deriving them from the repo - #226

Merged
sameh-farouk merged 1 commit into
masterfrom
fix/pin-container-image-names
Jul 26, 2026
Merged

fix(ci): pin container image names instead of deriving them from the repo#226
sameh-farouk merged 1 commit into
masterfrom
fix/pin-container-image-names

Conversation

@sameh-farouk

Copy link
Copy Markdown
Member

Prerequisite for the next release. Without this, tagging would publish images that nothing pulls.

The problem

publish_container_images.yml derived its image names from the github.repository context:

images: ghcr.io/${{ github.repository }}_processor
images: ghcr.io/${{ github.repository }}_query-node

Container packages are scoped to the organisation and named at push time — per GitHub's docs they are "scoped to accounts or organizations, not tied to repositories by default." A repository rename redirects git, web, issues, wikis and stars; it does not rename or redirect packages, and there is no facility to rename a package at all.

So after this repo's rename, the next release would have pushed to ledger_graphql_{processor,query-node} — brand new, empty packages — while every consumer kept pulling the old ones:

processor-chart/values.yaml:9   ghcr.io/threefoldtech/tfchain_graphql_processor
processor-chart/values.yaml:13  ghcr.io/threefoldtech/tfchain_graphql_query-node
docker-compose.yml:20           ghcr.io/threefoldtech/tfchain_graphql_processor:latest
docker-compose.yml:38           ghcr.io/threefoldtech/tfchain_graphql_query-node:latest

Verified against the registry:

tfchain_graphql_processor    HTTP 200   29 tags, latest 2.12.3   (live, public)
tfchain_graphql_query-node   HTTP 200   29 tags, latest 2.12.3   (live, public)
ledger_graphql_processor     HTTP 403   DENIED  (org API: 404 "Package not found")
ledger_graphql_query-node    HTTP 403   DENIED  (org API: 404 "Package not found")

The release would have looked successful and changed nothing for any deployment. The failure mode is absence of updates, not an error, so it would likely have gone unnoticed for a while.

The fix

Pins both names to what consumers already reference, which is also how the tfchain workflows have always declared theirs — ghcr.io/threefoldtech/tfchain_activation_service, ..._stellar_bridge, .../tfchain are all hardcoded, so that repo's rename to ledger_chain caused no such problem.

These were the only two uses of github.repository in any workflow here.

Not done here

Renaming the images to match the rebrand is still available, but it is a breaking change — every deployment must update its image reference or silently stop receiving updates — so it belongs in a deliberate change that updates the charts and compose files at the same time, not as a side effect of a repo rename.

🤖 Generated with Claude Code

https://claude.ai/code/session_011YKJm3zuWdSepriT9KL9zy

…repo

Container packages are scoped to the organisation and named at push time, so
they are neither renamed nor redirected when a repository is renamed — unlike
git, web, issues and stars, which are. Deriving the image name from the
github.repository context therefore tied the published package name to the
repository name.

After this repo was renamed, the next release would have pushed to
ghcr.io/threefoldtech/ledger_graphql_{processor,query-node}: brand new, empty
packages. Meanwhile processor-chart/values.yaml and docker-compose.yml still
reference tfchain_graphql_*, and those packages are live and public with 29 tags
up to 2.12.3. The release would have appeared to succeed while changing nothing
for any deployment, and the failure mode is absence of updates rather than an
error, so it would not have been obvious.

Pins both names to what every consumer already pulls, matching how the tfchain
workflows have always declared theirs. Renaming the images is still an option
later, but it is a breaking change for deployments and belongs in a deliberate
step that updates the charts and compose files alongside it.
@sameh-farouk
sameh-farouk merged commit 5b16193 into master Jul 26, 2026
1 check passed
@sameh-farouk
sameh-farouk deleted the fix/pin-container-image-names branch July 26, 2026 18:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant