fix: replace broken update-deployment-tag with update-kustomize-tag #67
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/pal-e-docs-app!67
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "66-update-kustomize-tag"
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?
Summary
update-deployment-tagWoodpecker step with the canonicalupdate-kustomize-tagstepk8s/deployment.yamlin this repo, which no longer works after migration to kustomize overlays inpal-e-deploymentspal-e-platform, targeting thepal-e-appoverlayChanges
.woodpecker.yaml: Replacedupdate-deployment-tagstep withupdate-kustomize-tagusing the canonical template frompal-e-platform/scripts/woodpecker-update-tag-step.yaml. SetsOVERLAY: pal-e-app,IMAGE_TAG: ${CI_COMMIT_SHA}, downloads shared script viawgetfrom internal Forgejo service URL.Test Plan
update-kustomize-tagstep successfullypal-e-deployments, updates the kustomize overlay atoverlays/pal-e-app/prod, commits, and pushespal-e-deploymentsReview Checklist
Related Notes
pal-e-app-- the project this work belongs toGenerated with Claude Code
QA Review
VERDICT: APPROVE
Diff Analysis
Single file change (
.woodpecker.yaml), 8 additions / 8 deletions. Replaces the inlineupdate-deployment-tagstep with the canonicalupdate-kustomize-tagstep.Checks
pal-e-platform/scripts/woodpecker-update-tag-step.yamlOVERLAY: "pal-e-app"is the correct overlay value per the template's mapping tableIMAGE_TAG: "${CI_COMMIT_SHA}"matches the tag used by thebuild-and-pushstepforgejo-http.forgejo.svc.cluster.local:80) -- correct for in-cluster CIforgejo_token) matches the existing secret used by the old stepCloses #66, all required sections presentNotes
path.excludefork8s/deployment.yamlin the top-levelwhenblock is now a dead reference (the new step writes topal-e-deployments, not this repo). Harmless but could be cleaned up in a follow-up.PR #67 Review
DOMAIN REVIEW
Tech stack: Woodpecker CI pipeline (YAML), shell scripting via shared script in
pal-e-platform.Correctness: The new
update-kustomize-tagstep is a 1:1 match with the canonical template atpal-e-platform/scripts/woodpecker-update-tag-step.yamland the existing production implementations inwestside-appandpal-e-docs. The only difference isOVERLAY: "pal-e-app", which correctly maps to the overlay directory atpal-e-deployments/overlays/pal-e-app/prod/kustomization.yaml.Shared script validation: The downloaded
update-kustomize-tag.shvalidates required env vars (FORGEJO_TOKEN,OVERLAY,IMAGE_TAG), verifies the kustomization file exists before modifying it, usessedto updatenewTag, and includes a 3-retry push loop with rebase for concurrent push conflicts. The sed pattern matches the format in the target file (line 65:newTag: e23a1d8...).Secrets handling:
FORGEJO_TOKENis sourced fromfrom_secret: forgejo_token-- proper Woodpecker secret injection. No plaintext secrets in the diff.Guard conditions:
depends_on: build-and-pushandwhen: event push, branch maincorrectly gate this step to only run after successful image push on main branch merges.DRY: The old step had inline git/sed logic (8 lines of shell). The new step delegates to the shared canonical script (2 lines: wget + sh). This is the correct centralization pattern -- one script to maintain across all repos.
BLOCKERS
None.
This is a CI pipeline configuration change (replacing one Woodpecker step with another). There is no new application functionality, so the "new functionality must have tests" blocker does not apply. The test plan correctly identifies integration-level verification (merge and observe pipeline execution, ArgoCD pickup).
NITS
Stale path exclusions (lines 11-13): The
whenblock at the top of the file still excludesk8s/.argocd-source-*andk8s/deployment.yaml. Thek8s/directory no longer exists in this repo (confirmed), so these exclusions are dead code. The old step was pushing tag updates tok8s/deployment.yamlin this repo; the new step pushes topal-e-deploymentsinstead. Recommend a follow-up issue to clean these up (out of scope for this fix).alpine/git:latestimage tag: Using:latestreduces reproducibility. However, this is consistent with the canonical template and all other repos (westside-app,pal-e-docs), so this is a platform-wide decision, not a defect in this PR.SOP COMPLIANCE
66-update-kustomize-tagreferences issue #66)pal-e-app)PROCESS OBSERVATIONS
pal-e-app. Without this fix, main branch merges build and push images to Harbor but never update the kustomize overlay, meaning ArgoCD never picks up new tags. This directly improves deployment frequency (DORA DF metric).westside-appandpal-e-docs. The pattern is identical.k8s/path exclusions in thewhenblock should be tracked as a follow-up cleanup issue.VERDICT: APPROVED