Review: Decommission basketball-api and westsidekingsandqueens namespaces

review-1367-2026-06-06 Review

review needs-refinement

Verdict: NEEDS_REFINEMENT

Template Completeness

  • [x] Type — Feature
  • [x] Lineage — references #33 consolidation spike
  • [x] Repo — specifies pal-e-deployments
  • [x] User Story
  • [x] Context — describes what's no longer needed after #35/#36
  • [x] File Targets — pal-e-deployments overlays + Forgejo repo archival
  • [x] Acceptance Criteria — 9 items
  • [x] Test Expectations — kubectl verification commands
  • [x] Constraints — prerequisite gates, PVC retention, archive-not-delete
  • [x] Checklist
  • [x] Related — links to #33, #35, #36

Traceability

  • [ ] story:admin-roster-report label — MISMATCH. This is a namespace decommission ticket, not part of the admin roster report story. The story label should reflect the consolidation effort (e.g., story:consolidation or story:infra-cleanup). [LABEL] Change story label to match actual work scope.
  • [ ] story note MISSING — No project page project-westside-ror exists in pal-e-docs to verify any story entry. [SCOPE] Create project page project-westside-ror with user-stories section.
  • [ ] arch note MISSING — arch:westside-ror label present but no arch-westside-ror note found in pal-e-docs. [SCOPE] Create architecture note arch-westside-ror.
  • [x] Forgejo issue — #37, open, valid

File Targets

  • [x] pal-e-deployments/overlays/basketball-api/ — verified: exists (6 files including kustomization.yaml, deployment-patch.yaml, postgres.yaml, pvc.yaml, secrets)
  • [x] pal-e-deployments/overlays/westsidekingsandqueens/ — verified: exists (prod: 4 files, dev: 4 files)
  • [x] westside-ror codebase — verified: only doc references (README.md, docs/db-reconciliation.md), no code changes needed. Correct.
  • [ ] pal-e-services/terraform/k3s.tfvars — MISSING from file targets. Contains basketball-api service entry (lines 200-206), westsidekingsandqueens service entry (lines 209-215), and westside-spa Keycloak client (lines 90-105 with redirect URIs). If overlays are deleted but terraform entries remain, terraform apply will fail or attempt to recreate resources. [BODY] Add pal-e-services/terraform/k3s.tfvars to file targets: remove basketball-api + westsidekingsandqueens service entries and westside-spa Keycloak client block.

Repo Placement

Issue filed on ldraney/westside-ror but all work happens in pal-e-deployments (manifest removal), pal-e-services (terraform cleanup), Forgejo admin (repo archival), Keycloak admin, and Tailscale admin console. The issue body correctly identifies pal-e-deployments as the repo, but the Forgejo issue itself is on westside-ror. Acceptable since this is the consolidation project's repo and the PR checklist says "PR opened (on pal-e-deployments)." However, pal-e-services is also affected (see file targets).

Dependencies

  • [x] #35 (data migration) — board item 1365, column: done. Prerequisite satisfied.
  • [x] #36 (URL cutover) — board item 1366, column: done. Prerequisite satisfied.
  • [x] #33 (consolidation spike) — board item 1362, column: done. Parent work complete.
  • No blocking items in in_progress for this work.

Acceptance Criteria

9 acceptance criteria. Most are verifiable by an agent via kubectl commands. Concerns:
  • "Orphaned Tailscale nodes cleaned up in Tailscale admin console" — requires Tailscale admin UI access, not automatable by an agent. Manual step.
  • "Sidecar postgres PVC preserved for 30 days" — this is a deferred action, not verifiable at implementation time. Needs a follow-up ticket or calendar reminder for day-30 deletion.
  • "Keycloak westside-spa client disabled or deleted" — needs to specify whether this is via Keycloak admin UI or terraform (answer: terraform, since it's in k3s.tfvars).

Blast Radius

  • pal-e-services/terraform — The services map in k3s.tfvars drives Argo CD applications, Harbor robot accounts, and Kubernetes namespaces via terraform. Removing overlays without removing the terraform entries will cause plan/apply drift or failures. This is the most critical gap.
  • pal-e-deployments README and dev-tunnel README reference these namespaces — minor doc cleanup.
  • westside-ror README/docs — historical references only, no action needed.
  • pal-e-services README, SERVICE_ONBOARDING.md, CLAUDE.md — reference basketball-api, minor doc cleanup.

Decomposition Assessment

9 AC across 5 systems (k8s cluster, pal-e-deployments, pal-e-services/terraform, Forgejo admin, Tailscale admin). Estimated agent work exceeds 5 minutes. However, the nature of this work is mostly imperative commands (kubectl delete, git rm, terraform changes) rather than code authoring. Some steps (Tailscale admin, PVC retention scheduling) are manual and cannot be agent-executed. Recommendation: NEEDS DECOMPOSITION — split into: (1) terraform cleanup PR on pal-e-services, (2) overlay removal PR on pal-e-deployments, (3) manual checklist for Forgejo archival + Tailscale cleanup + PVC retention timer. Route to skill-decompose-ticket.

Recommendation

  • [BODY] Add pal-e-services/terraform/k3s.tfvars to File Targets — remove basketball-api service entry, westsidekingsandqueens service entry, and westside-spa Keycloak client block.
  • [LABEL] Change story:admin-roster-report to story:consolidation or story:infra-cleanup — current label is a mismatch for decommission work.
  • [SCOPE] Create project page project-westside-ror with user-stories section.
  • [SCOPE] Create architecture note arch-westside-ror.
  • [DECOMPOSE] 9 AC across 5 systems. Route to skill-decompose-ticket for sub-ticket creation: (1) pal-e-services terraform cleanup, (2) pal-e-deployments overlay removal, (3) manual ops checklist (Forgejo archival, Tailscale nodes, PVC retention timer).