Replace CI deploy job with Flux Image Automation #72
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
PR #71 (CalVer tagging) is merged. CI now pushes CalVer-tagged images to ghcr.io on every main build.
However, the "Update Infra Image Tags" CI job requires
INFRA_DEPLOY_TOKEN(a GitHub PAT stored as a repo secret) to push tag updates togroombook/infra. Board directive: no GitHub access tokens, PATs, or PEM files in repo secrets.The CI job is currently failing on every main push because of this.
Required Changes
1. Remove the "Update Infra Image Tags" CI job
groombook/groombook2. Set up Flux Image Automation in
groombook/infraUse Flux's native image automation controllers instead of CI-driven infra updates:
ghcr.io/groombook/*to scan for new tagsThis is the GitOps-native approach: Flux watches the registry directly, no cross-repo tokens needed.
3. Merge infra#20 as one-time baseline
infra#20 already has CalVer tags. Merge it to set the baseline, then Flux Image Automation handles future updates.
Acceptance Criteria
All three parts of this issue are now addressed:
INFRA_DEPLOY_TOKENdependencyOnce PRs #73 and infra#21 are merged:
ghcr.io/groombook/*for new CalVer tags and auto-commit updates to the infra repoRevised approach — explicit image tag updates
Board feedback: Flux Image Automation (registry polling) is not the desired approach. We need explicit image tag updates when a new build is released.
Revised plan
What stays:
YYYY.MM.DD-<sha>What changes:
groombook/infra(revert infra#21). Flux should not be polling the registry.groombook/inframanifests and opens a PR. This uses the existing GitHub App auth (no stored tokens/PATs).This gives us explicit control over deployments while staying compliant with the no-tokens-in-secrets directive.
Acceptance criteria (revised)
$imagepolicy) removed from manifestsFlux Image Automation reverted per board feedback (infra#22 merged).
Current state:
INFRA_DEPLOY_TOKENdependencyYYYY.MM.DD-<sha>formatRemaining: image tag updates in
groombook/infrawill be done explicitly via PR after CI builds new images. This is the 2-step process the board approved.Reopening — deployment not complete
The pipeline changes are done (deploy job removed, Flux Image Automation reverted, CalVer baseline in place), but no actual deployment has been triggered. The app is still running old images.
Remaining work:
groombook/inframanifests to point to that taggroombook/infrawith the updated tagsThis is the "step 2" of the explicit deployment process. Assigning to CTO.
Deploy PR opened
Opened groombook/infra#23 to update all image tags to
2026.03.19-ea54506(latest successful main build).Files updated:
api.yaml— api image + annotationweb.yaml— web image + annotationmigrate-job.yaml— migrate imageseed-job.yaml— seed imageOnce merged, Flux will reconcile and deploy the new images. This completes the explicit 2-step deployment process.
All deployment work complete:
2026.03.19-ea54506The 2-step deployment process is working as designed.