Review: Rollout: wire update-kustomize-tag into remaining repos (re-review)

review-464-2026-03-28 Review

review ready

Verdict: READY

Re-review Context

Re-review after refinement from review-464-2026-03-27 (NEEDS_REFINEMENT). All 6 prior recommendations have been addressed. Decisions resolved: mcd-tracker excluded, Woodpecker onboarding as separate tickets. Issue body updated with rollout status table, forgejo_token audit, prerequisite documentation, and corrected repo count (9 to 8).

Template Completeness

  • [x] Type -- Feature
  • [x] Lineage -- discovered scope from #204
  • [x] Repo -- forgejo_admin/pal-e-platform (tracking issue)
  • [x] User Story -- platform operator, automated deploys
  • [x] Context -- PR #205 background, per-repo requirements
  • [x] File Targets -- .woodpecker.yaml per repo + secret setup
  • [x] Acceptance Criteria -- 11 items, 6 checked off as complete
  • [x] Test Expectations -- push-and-verify + kubectl check
  • [x] Constraints -- dependency on #204 (satisfied), one PR per repo
  • [x] Checklist -- 7 items, 4 checked off
  • [x] Related -- parent issue, board, exclusion rationale
All required sections present. Template is complete.

Traceability

  • [x] story:superuser-deploy label -- matches user story (platform operator deploy automation)
  • [x] arch:ci-pipeline label -- correct architecture component
  • [x] Forgejo issue -- #206, open
  • [x] scope:discovered label -- correctly reflects origin from #204 implementation
Traceability triangle is complete.

File Targets

  • [x] scripts/update-kustomize-tag.sh -- verified exists in pal-e-platform on main
  • [x] scripts/woodpecker-update-tag-step.yaml -- verified exists, documents overlay mapping
  • [x] pal-e-app/.woodpecker.yaml -- step present on main (PR #67)
  • [x] pal-e-docs/.woodpecker.yaml -- step present on main (PR #221)
  • [x] basketball-api/.woodpecker.yaml -- step present on main (PR #192)
  • [x] westside-app/.woodpecker.yaml -- step present on main (PR #124)
  • [x] westside-contracts/.woodpecker.yaml -- file exists with build-and-push pipeline, but repo NOT registered in Woodpecker (404). Correctly documented as blocked.
  • [x] minio-api/.woodpecker.yaml -- file exists with build-and-push pipeline, but repo NOT registered in Woodpecker (404). Correctly documented as blocked.
All file targets verified. Blocked repos correctly identified.

Repo Placement

OK. Tracking issue correctly filed on pal-e-platform. Child work spans 8 repos (corrected from 9). 4/8 complete. 2 blocked on Woodpecker onboarding (separate tickets). 2 excluded (archive candidates).

Dependencies

  • #204 / PR #205 -- SATISFIED (closed/merged).
  • Woodpecker onboarding for westside-contracts and minio-api -- correctly documented as out-of-scope prerequisite requiring separate tickets.
  • Board item #411 (Harbor timeout) -- in_progress. Potential blocker for e2e verification AC but not for scope approval.
  • pal-e-deployments overlays -- NOTE: neither westside-contracts nor minio-api has a kustomize overlay directory in pal-e-deployments yet. This is an additional prerequisite beyond Woodpecker onboarding that is only documented in the step template comment, not the issue body.

Acceptance Criteria

  • 6 of 11 AC items are checked off (4 repo wirings + broken step fix + secret provisioning).
  • 2 items for westside-contracts and minio-api are correctly marked unchecked with "Woodpecker onboarding" qualifier.
  • 2 items for mcd-tracker repos still show as unchecked "pending decision" -- decision is now resolved (exclude). These should be removed or marked N/A to avoid confusion, but this is a cosmetic nit.
  • E2e verification AC is valid and testable.
  • Test commands are real (kubectl get application -n argocd).

Blast Radius

Low. Post-build step failure does not affect build/push. All consumers share the same script from pal-e-platform main. Remaining work is blocked on prerequisites, so no immediate blast radius concern.

Decomposition

Remaining executable scope = 2 repos (westside-contracts, minio-api), each blocked on prerequisites. Each gets its own PR per convention. No decomposition needed -- the issue is a tracking artifact, and the remaining work is already scoped as "one repo = one PR" with prerequisite gates. Well under the 5-minute rule per repo once prerequisites are met.

Recommendation

  • [BODY] Minor nit: Remove or mark N/A the 2 mcd-tracker AC items now that the exclusion decision is resolved. Currently they say "pending decision" but the decision section says "Resolved: Exclude."
  • [BODY] Minor nit: Add note that westside-contracts and minio-api also need kustomize overlay directories created in pal-e-deployments (neither exists today). This is an additional prerequisite beyond Woodpecker onboarding.
  • [LABEL] Board item #464 title still says "all 9 repos" -- update to match issue title "all 8 app repos" or better: "Rollout: wire update-kustomize-tag into remaining repos" since 4/8 are done.
All prior NEEDS_REFINEMENT items have been addressed. The 3 remaining items above are cosmetic nits that do not block execution. Verdict: READY to move from backlog to todo.