Review: Register ISS dev environment as terraform-managed service
Verdict: NEEDS_REFINEMENT
Re-reviewed 2026-07-20. Previous review flagged two issues; one resolved (arch-argocd note now exists), one still outstanding (invalid paldocs-dev reference).
Template Completeness
- [x] Type — Feature
- [x] Lineage — Standalone, discovered debugging 502
- [x] Repo — ldraney/pal-e-services
- [x] User Story — As a developer / I want / So that
- [x] Context — Comprehensive: 502 cause, overlay state, Harbor/image-updater gap
- [x] File Targets — 4 pal-e-services files + cross-repo pal-e-deployments
- [x] Feature Flag — none
- [x] Acceptance Criteria — 6 criteria
- [x] Test Expectations — 4 items with run commands
- [x] Constraints — 4 constraints
- [x] Checklist — Present
- [x] Related — Present
All 12 required sections present.
Traceability
- [x] story:dev-environment label — verified in project-iss user-stories table (backing: "#192 / #193 / #194 + docs/pipeline.md")
- [x] story note verified — found in project-iss user-stories section
- [x] arch:argocd label — present on board item
- [x] arch note verified — arch-argocd note exists in pal-e-docs (doc type, tags: architecture, argocd, platform). Created 2026-07-21. RESOLVED from previous review.
- [x] Forgejo issue — ldraney/pal-e-services#192, state: open
File Targets
- [x]
terraform/k3s.tfvars— verified: symlink to secrets; confirms ISS prod registered (L370) but no dev entry exists - [x]
terraform/k3s.tfvars.example— verified: exists, contains ISS prod entry and my-service-dev pattern (L470) - [x]
terraform/variables.tf— verified: services type (L269-282) has no image_updater/harbor opt-out field yet - [x]
terraform/services.tf— verified: harbor_project (L43), harbor_robot_account (L54, L90), harbor_creds secret (L127), and ArgoCD image-updater annotations (L196-202) all use unconditionalfor_each = var.services - [x]
overlays/intelligentstaffingsystems/dev/*.yaml(pal-e-deployments) — verified: 7 files present, namespace consistentlyiss-devacross all manifests (namespace.yaml, deployment.yaml, service.yaml, ingress.yaml, configmap.yaml, kustomization.yaml)
Repo Placement
OK. Issue filed on ldraney/pal-e-services where all terraform files reside. Cross-repo dependency on pal-e-deployments is documented in File Targets section (conditional namespace rename). No separate Forgejo issue needed for pal-e-deployments — the change is minor and conditional.
Dependencies
- Board items #1893 (pal-e-services#193 — staging) and #1894 (pal-e-services#194 — prod promotion) both depend on this ticket's opt-out flag. Documented in issue: "This ticket owns the opt-out flag; #193 and #194 consume it."
- #193 is independent of #192 (can proceed in parallel). #194 is blocked by #193.
- #86 (dev environment, Rails side) — done. No blockers on this ticket.
- No items in in_progress that block this work.
Acceptance Criteria
6 criteria, all verifiable by an agent:
- [x] Namespace exists —
kubectl get ns {chosen-namespace} - [x] ArgoCD app Synced/Healthy —
kubectl get applications.argoproj.io -n argocd - [x] curl returns 200 —
curl -sI https://dev.intelligentstaffingsystems.ai - [x] No Harbor project/robot accounts —
terraform planoutput verification - [x] No image updater annotations —
kubectl get app -n argocd -o yaml - [x] terraform plan clean —
terraform plan -var-file=k3s.tfvars
All criteria are concrete and machine-verifiable. 6 ACs is at the boundary of the >5 threshold, but these are verification steps for the same terraform apply, not independent implementation work. No decomposition needed.
Blast Radius
The opt-out flag (e.g.,
image_updater = optional(bool, true)) defaults to true, so all 13 existing services retain current behavior with no tfvars changes. Safe.Resources that must be gated behind the flag in services.tf:
harbor_project.service(L43)harbor_robot_account.service_ci(L54)harbor_robot_account.service_pull(L90)kubernetes_secret_v1.harbor_creds(L127)- ArgoCD image-updater annotations in
argocd_application.service(L196-202)
No similar pattern gaps found in sibling services — this is the first non-Harbor service in the stack.
Decomposition Assessment
4 file targets in 1 primary repo + conditional cross-repo rename. 6 AC (boundary case, all verification of same apply). Estimated agent time: ~5 minutes. Work is tightly coupled in one terraform directory. No decomposition needed.
Recommendation
[BODY]Fix invalid reference: Context section says "seepaldocs-devas reference" but nopaldocs-devservice exists in k3s.tfvars or k3s.tfvars.example. Replace with reference tomy-service-devpattern in k3s.tfvars.example (line 470), or remove the reference entirely and let the agent infer the pattern from existing entries.
Previous
[SCOPE] recommendation (create arch-argocd note) is RESOLVED — note was created 2026-07-21.