Skip to content

fix: pin both images via the bundle publish's new images: input - #217

Merged
kevwilliams merged 3 commits into
mainfrom
fix/consumer-ui-plugin-image-tag
Aug 11, 2026
Merged

fix: pin both images via the bundle publish's new images: input#217
kevwilliams merged 3 commits into
mainfrom
fix/consumer-ui-plugin-image-tag

Conversation

@kevwilliams

@kevwilliams kevwilliams commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

compute-consumer-ui-plugin pods stuck in ImagePullBackOff in staging. ghcr.io/datum-cloud/compute-consumer-ui-plugin:latest doesn't exist — publish-docker.yaml never pushes a :latest tag.

First commit: floating v0.0.0-main tag as a quick fix.

Second commit: the real fix. publish-kustomize-bundle.yaml@v1.20.0 added an images: input — multiple {path, name, tag} entries per invocation. Supersedes image-name/image-overlays, which stamps one image across N paths and can't pin two different images at two different paths. Bumped the pin from v1.14.0 to v1.20.0, switched to images:. Both compute's apiserver image and the plugin's image now get immutable tags in one compute-kustomize bundle publish.

Test plan

  • docker manifest inspect ghcr.io/datum-cloud/compute-consumer-ui-plugin:v0.0.0-main resolves
  • kustomize edit set image works against a kind: Component kustomization, not just kind: Kustomization
  • Full compute-manager composition (base/manager + all its components) builds with both image references present
  • After merge and Flux reconcile: pods Running, not ImagePullBackOff; both images carry immutable tags in the published bundle

Confirmed live in staging: ImagePullBackOff, image not found. The
publish-docker.yaml reusable workflow never pushes a :latest tag — its
tag scheme is v0.0.0-main[-<timestamp>]/semver/sha only (checked its
docker/metadata-action config directly). v0.0.0-main is the actual
floating tag that gets overwritten on every push to main.
v1.20.0 of publish-kustomize-bundle.yaml added an images: input
(multiple {path, name, tag} entries in one invocation) — supersedes the
single image-name/image-overlays pair, which can only stamp one image
across N paths and can't express two different images at two different
paths at all. That's the real fix for the floating-tag workaround in the
previous commit: both compute's own apiserver image and the
consumer-ui-plugin's image now get properly pinned to immutable tags in
one compute-kustomize bundle publish, instead of the plugin falling back
to an unpinned v0.0.0-main.

Bumped this job's pin to v1.20.0 to match (was v1.14.0). compute's own
image entry omits an explicit tag, preserving its existing behavior
(defaults to the bundle's own first computed tag, unchanged from
before); the plugin's entry pins to publish-consumer-ui-plugin-image's
actual output tag.

Verified locally: kustomize edit set image works correctly against a
kind: Component kustomization (not just kind: Kustomization), and the
full compute-manager composition (base/manager + all its components)
still builds cleanly with both image references present.
@kevwilliams kevwilliams changed the title fix: pin consumer-ui-plugin image to v0.0.0-main, not :latest fix: pin both images via the bundle publish's new images: input Aug 11, 2026
Comment thread .github/workflows/publish.yaml Outdated
bundle-name: ghcr.io/datum-cloud/compute-kustomize
bundle-path: config
images: |
- { path: config/base/manager, name: ghcr.io/datum-cloud/compute }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kevwilliams need to add the same tag configuration here.

containers:
- name: compute-consumer-ui-plugin
image: ghcr.io/datum-cloud/compute-consumer-ui-plugin:latest
image: ghcr.io/datum-cloud/compute-consumer-ui-plugin:v0.0.0-main

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leave this to :latest by default.

…to :latest

Per review:
- Added tag: "${{ needs.publish-container-image.outputs.tag }}" to
  compute's images: entry, matching the plugin's entry — explicit
  rather than relying on the "defaults to the bundle's own first
  computed tag" fallback.
- Reverted the Deployment's base image tag to :latest — it's a
  never-actually-deployed placeholder now that images: always
  overwrites it via kustomize edit set image before the bundle
  publishes; :latest reads clearly as "gets stamped, don't rely on
  this literal value."

@scotwells scotwells left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment seems a bit verbose, but :approved:

@kevwilliams
kevwilliams merged commit 61089bc into main Aug 11, 2026
9 checks passed
@kevwilliams
kevwilliams deleted the fix/consumer-ui-plugin-image-tag branch August 11, 2026 20:02
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.

2 participants