feat: add update-kustomize-tag Woodpecker step #192
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/basketball-api!192
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "190-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-kustomize-tagstep to the Woodpecker pipeline that runs afterbuild-and-pushbasketball-apioverlay in pal-e-deploymentsChanges
.woodpecker.yaml: Addedupdate-kustomize-tagstep withdepends_on: build-and-push,OVERLAY: basketball-api,IMAGE_TAG: ${CI_COMMIT_SHA}, andforgejo_tokensecret. Gated to push-to-main only.Test Plan
forgejo_tokensecret exists in Woodpecker repo secrets (scoped topushevents)basketball-api) matches the script's path construction (overlays/${OVERLAY}/${OVERLAY_ENV}/kustomization.yamlwhere OVERLAY_ENV defaults toprod)depends_on: build-and-pushso it only runs after successful image pushwhen: event: push, branch: mainso it won't run on PRsReview Checklist
pal-e-platform/scripts/woodpecker-update-tag-step.yamlRelated Notes
pal-e-platform-- canonical script and step template live hereQA Review -- PR #192
Diff Analysis
Single file change:
.woodpecker.yaml(+17 lines). Adds theupdate-kustomize-tagstep afterbuild-and-push.Verification
pal-e-platform/scripts/woodpecker-update-tag-step.yamlcanonical template exactlybasketball-apimatches the template mapping comment (line 8) and the script's path construction (overlays/basketball-api/prod/kustomization.yaml)forgejo_tokenexists in Woodpecker repo secrets, scoped topusheventsdepends_on: build-and-pushensures image is pushed before tag update runswhen: event: push, branch: mainprevents execution on PRsfrom_secretNits
None.
VERDICT: APPROVE
PR #192 Review
DOMAIN REVIEW
Tech stack: Woodpecker CI pipeline YAML (CI/CD domain).
The PR adds a single
update-kustomize-tagstep to.woodpecker.yamlthat downloads and runs the canonical script frompal-e-platform/scripts/update-kustomize-tag.shafter a successfulbuild-and-pushstep. This completes the CI/CD loop: push to main -> build image -> push to Harbor -> update kustomize overlay -> ArgoCD syncs.Verified against canonical template (
pal-e-platform/scripts/woodpecker-update-tag-step.yaml):basketball-apimatches the template's mapping table comment on line 8.Verified target overlay exists (
pal-e-deployments/overlays/basketball-api/prod/kustomization.yaml):newTagentries (lines 76, 78). The canonical script's sed pattern (s/^\( newTag:\s*\).*$/\1${IMAGE_TAG}/) will correctly update both.Pipeline gating is correct:
depends_on: build-and-pushensures the step only runs after a successful image push.when: event: push, branch: mainprevents execution on pull request events.forgejo_tokenis referenced viafrom_secret, not hardcoded.Script download URL uses the internal cluster service URL (
forgejo-http.forgejo.svc.cluster.local:80) which is correct for Woodpecker agents running in-cluster.BLOCKERS
None.
NITS
alpine/git:latesttag: Using:latestis technically non-deterministic. However, this matches the canonical template exactly, so any pinning decision should be made at the template level inpal-e-platform, not per-consumer. Not blocking.PR body template: The sections use "Review Checklist" and "Related Notes" instead of the SOP template's "Related" section. The content is there but the heading names differ slightly from the SOP template (
## Relatedvs## Related Notes). Minor.SOP COMPLIANCE
190-update-kustomize-tagreferences #190)pal-e-platformas source repo -- no plan slug, but this is a standalone CI task, not plan-driven work; acceptable)from_secretonly)PROCESS OBSERVATIONS
This step closes the CI/CD loop for basketball-api. Previously, image tags in
pal-e-deploymentshad to be updated manually or by a separate process. With this change, every merge to main will automatically propagate the new image tag to ArgoCD, improving deployment frequency (DORA DF metric).The canonical script pattern (download from pal-e-platform at runtime) is a good DRY strategy -- updates to the script propagate to all consumers without per-repo PRs. The retry logic in the script handles concurrent push conflicts gracefully.
Post-merge validation (unchecked item in Test Plan) is the remaining gate: verify the Woodpecker pipeline actually runs the step successfully on the first merge to main.
VERDICT: APPROVED