Review: Remove ConfigMap, use baked-in email templates (re-review)

review-753-2026-04-03-b Doc

review ready

Verdict: READY

Re-review after refinement. Previous review review-753-2026-04-03 had one NEEDS_REFINEMENT issue: missing arch-email note. That note now exists (slug: arch-email, id: 1102, project: westside-basketball, tags: architecture,active). All other checks passed in the original review and are re-confirmed below.

Template Completeness

  • [x] Type — Feature
  • [x] Lineage — present, references basketball-api MJML system ticket
  • [x] Repo — forgejo_admin/pal-e-deployments
  • [x] User Story — clear "who wants what and why"
  • [x] Context — detailed, explains ConfigMap drift problem and coordination order
  • [x] File Targets — present with specific line numbers, verified accurate
  • [x] Acceptance Criteria — 5 testable criteria
  • [x] Test Expectations — YAML validation and kustomize build commands provided
  • [x] Constraints — deployment ordering documented
  • [x] Checklist — present
  • [x] Related — present

Traceability

  • [x] story:WS-S7 label — "As an admin, I want to send branded email announcements so that parent comms are professional and consistent"
  • [x] story note verified — found in project-westside-basketball user-stories section (Admin stories, stories-admin)
  • [x] arch:email label — email architecture component
  • [x] arch note verified — arch-email note exists in pal-e-docs (id: 1102, project: westside-basketball, tags: architecture,active)
  • [x] Forgejo issue — forgejo_admin/pal-e-deployments#83, open

File Targets

  • [x] overlays/basketball-api/prod/deployment-patch.yaml — verified exists (97 lines)
  • [x] Lines 77-79: volumeMount email-templates confirmed at exactly those lines
  • [x] Lines 95-97: volume email-templates ConfigMap confirmed at exactly those lines
  • [x] No existing BASKETBALL_EMAIL_TEMPLATES_DIR env var in file — addition is correct
  • [x] kustomization.yaml — confirmed no ConfigMap generator reference, no changes needed

Repo Placement

OK. Issue is filed on pal-e-deployments, which owns the kustomize overlays. The deployment-patch.yaml is the correct file. basketball-api code changes (baking templates into the image) are a separate ticket on the basketball-api repo (board item 750). Single-repo scope, no cross-repo work needed in this ticket.

Dependencies

  • [x] Board item 750 (Issue #293: MJML email system — brand base + three layouts + docker build) — in backlog. Upstream dependency: templates must be baked into the basketball-api Docker image BEFORE this deployment change lands. Documented correctly in issue Constraints section.
  • [x] Sibling items (751, 752, 658, 735, 724) — all arch:email. Not blockers for this ticket.
Dependency ordering is documented and not a review blocker — just an execution gate.

Acceptance Criteria

  • [x] AC1: "no reference to email-templates ConfigMap" — testable via grep, automatable
  • [x] AC2: "BASKETBALL_EMAIL_TEMPLATES_DIR env var set" — testable via grep, automatable
  • [x] AC3: "ArgoCD syncs cleanly" — post-merge validation, appropriate
  • [x] AC4: "pod starts and email works" — post-merge validation, appropriate
  • [x] AC5: "orphaned ConfigMap deleted" — post-merge manual step via kubectl
AC1-2 are agent-verifiable in PR. AC3-5 are post-merge validations. Test Expectations provide concrete commands. No ambiguity.

Blast Radius

  • pal-e-mail overlay references email-templates via MinIO CDN URL, not ConfigMap — no impact
  • No other service overlays reference the email-templates ConfigMap (confirmed via grep)
  • email-templates ConfigMap is basketball-api namespace only — safe to remove
  • Rollback: re-add ConfigMap volume mount. Straightforward.

Decomposition Assessment

  • 1 file target, 1 repo — well under 3-file threshold
  • 3 edits in one file (remove volumeMount, remove volume, add env var) — atomic change set
  • 5 AC total, but only 2 are PR-time verifiable — agent scope is small
  • Estimated agent time: under 5 minutes
No decomposition needed.

Recommendation

No action needed.