Review v2: Onboard westside-admin: Harbor project + CI robot account via terraform
Verdict: READY
All v1 refinements have been applied and verified. Ticket is ready to advance backlog → todo per
feedback_todo_means_reviewed.v1 Refinements Verified
- [x] [LABEL] Label changed
arch:k8s-deploy→arch:harbor— confirmed vialist_board_items: item #1098 labels =story:admin-row-crud,arch:harbor,type:infra. Matches sibling #1088 convention. - [x] [BODY] Port 3000 explicit — confirmed in Scope ("port: 3000") and AC #2 ("Entry specifies port 3000 and image_repo westside-admin/app").
- [x] [BODY] Woodpecker secret model documentation required — confirmed in Scope ("Document in the PR description whether the new service uses the existing global secrets..."), AC #3 ("PR description documents which Woodpecker secret model is used"), and Checklist ("PR description documents Woodpecker secret model choice").
- [x] [SCOPE]
arch-deployment-westside-admindoc drift fixed — verified directly:
Template Completeness
- [x] Type — Task
- [x] Lineage — cites #1094 scope review + reviewer pre-investigation of
services.tf:7 - [x] Repo —
forgejo_admin/pal-e-services - [x] User Story —
story-westside-admin-admin-row-crud - [x] Context — existing pattern + reference entries cited
- [x] Scope — clear, port 3000 + Woodpecker secret model both addressed
- [x] Acceptance Criteria — 8 criteria, all testable
- [x] Test Expectations — tofu plan + Harbor UI + first kaniko push
- [x] Constraints — tofu, -lock=false, naming convention
- [x] Checklist — present, includes secret model documentation gate
- [x] Related — project, arch, conventions, blocks linkage
Traceability
- [x]
story:admin-row-crudlabel — admin row CRUD story - [x] story note verified —
story-westside-admin-admin-row-crudexists; listed inproject-westside-adminuser-stories table (single v1 story) - [x]
arch:harborlabel — Harbor registry component, backed by the "Harbor registry" row inarch-deployment-westside-adminComponents table (per fractal arch convention used by sibling #1088) - [~] No standalone
arch-harbornote exists in pal-e-docs — OBSERVATION not blocker. The Harbor component is documented as a row inside the deployment-level arch note, which is the convention this board uses (sibling #1088 also labelsarch:harborwith the same backing). If platform-wide standalonearch-harbornote is desired, file as a separate doc-cleanup ticket. Does NOT block #1098. - [x] Forgejo issue — https://forgejo.tail5b443a.ts.net/forgejo_admin/pal-e-services/issues/64, open
File Targets
Task type — file targets verified during v1 review and unchanged:
- [x]
~/pal-e-services/terraform/k3s.tfvars— reference entrywestsidekingsandqueens(lines 224-231) confirmed; schema (forgejo_repo, image_repo, port, funnel, source_repo, source_path) confirmed. - [x]
~/pal-e-services/terraform/services.tf— for_each overvar.services, key drives Harbor project name + robot accounts (line 7 comment, line 13name = each.key).
Repo Placement
OK — single-repo change in
forgejo_admin/pal-e-services.Dependencies
- Blocks: #1094 (westside-admin .woodpecker.yaml), #1095 (pal-e-deployments overlay).
- No upstream blockers. Independent of #1087 (scaffolding), #1088 (Dockerfile).
- Only #1093 in
todo; rest of board istodoorbacklog. No conflicts.
Acceptance Criteria
All 8 ACs are testable. AC #3 (Woodpecker secret model documented in PR) and AC #2 (port 3000 + image_repo) directly address the v1 [BODY] flags. AC #8 verifies end-to-end via kaniko push test. The previous ambiguity around "(or document how the new project authenticates)" is resolved — the PR description must explicitly state which model (global vs per-repo).
Blast Radius
Harbor naming correct (verified v1). Doc drift in
arch-deployment-westside-admin resolved — downstream tickets (#1094 .woodpecker.yaml, #1095 overlay) will now read consistent harbor.tail5b443a.ts.net/westside-admin/app:<sha> from the arch note. No risk of divergence at runtime.Decomposition Assessment
1 file edit (k3s.tfvars), 8 AC (mostly post-apply verifications, not separate work units), ~5-10 min agent work. No decomposition needed. Single-pass agent task.
Recommendation
READY — advance #1098 backlog → todo. No action needed on this ticket.
- Optional follow-up (not blocking): Consider filing a low-priority doc-cleanup ticket to create a standalone
arch-harbornote for platform-wide reuse. Currently the Harbor component lives only as rows in per-deployment arch notes. This is a convention question for Ava, not a #1098 blocker.