Review: Add computed_fields to CNPG kubernetes_manifest resources
Review: Board Item #1107
Verdict: READY (APPROVED)
Forgejo issue: forgejo_admin/pal-e-services#69
Item type: issue (Feature) | Labels: type:feature, story:superuser-deploy, arch:cnpg, arch:terraform
Template Completeness
Issue body conforms to
template-issue-feature. All required sections present: Type, Lineage, Repo, User Story, Context, File Targets, Acceptance Criteria, Test Expectations, Constraints, Checklist, Related.Traceability Triangle
- User Story (story:superuser-deploy): PRESENT. Verified in
project-pal-e-platformuser-stories table — "I can deploy infrastructure changes via tofu plan/apply and see them succeed in Woodpecker CI without manual intervention." Direct fit: this ticket eliminates a non-zero exit code that blocks CI. - Architecture (arch:cnpg, arch:terraform): Labels present, BUT no backing notes
arch-cnpgorarch-terraformexist in pal-e-docs (search returned []). [SCOPE] recommendation: Create architecture notesarch-cnpgandarch-terraformfor these components. Not blocking — work can proceed; flag for separate doc backlog item. - Forgejo issue: URL valid, issue #69 OPEN, body well-formed.
File Target Verification
terraform/cnpg.tfEXISTS (180 lines, /home/ldraney/pal-e-services/terraform/cnpg.tf).kubernetes_manifest.cnpg_clusterresource confirmed at line 62.kubernetes_manifest.cnpg_scheduled_backupresource confirmed at line 158.- Neither resource currently declares
computed_fields— fix has clean attach point. - Minor: issue references "
terraform/cnpg.tf:60-61" for the existing operator-drift comment — actual location is lines 57-60. Off by one; not blocking.
Repo Placement
Correct. Issue is on
forgejo_admin/pal-e-services, file lives in same repo. Single-repo change.Dependencies / Blast Radius
- Companion ticket #1106 (ArgoCD label drift) is mentioned in Lineage — separate scope, no blocker relationship. Fine.
- No items in
in_progressblocking this. No items currently depend on it. - Blast radius: contained. Only affects how Terraform state tracks two manifests; runtime CNPG behavior is operator-driven and untouched. The Constraints section explicitly forbids changing desired-state spec.
Acceptance Criteria Assessment
All four ACs are agent-verifiable: tofu apply exit code, tofu plan output, kubectl cluster status, kubectl scheduledbackup status. Test Expectations include a baseline-vs-after comparison (good). Constraints precisely scope the fix (no resource-type swap, dotted-path format, no spec changes).
Decomposition Assessment (5-minute rule)
- 1 file target, 1 repo. PASS.
- 4 ACs. PASS.
- Estimated work: identify operator-injected paths (kubectl get cluster -o yaml against live cluster), add 2
computed_fieldsblocks, run tofu plan/apply. Well under 5 minutes for a dev agent.
No decomposition needed.
Recommendations (non-blocking)
- [SCOPE] Create
arch-cnpgandarch-terraformarchitecture notes (separate doc tickets — not gating this one). - Minor: agent should derive the exact list of computed_fields paths from a live
kubectl get cluster pal-e-postgres -o yamldiff against the desired manifest, not from the issue's hand-listed examples. Issue body mentions this implicitly via "~20 postgres parameters" — clear enough.
Verdict
READY / APPROVED. Scope is tight, file targets verified, traceability is complete enough (story confirmed; missing arch notes are doc debt, not scoping debt), single-agent single-pass work. Safe to advance backlog → todo → next_up.