fix: wire missing TF_VAR secrets into CI plan and apply steps #446
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/pal-e-platform!446
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/ci-missing-tf-vars"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
.woodpecker/terraform.yamlenvironment blockstofu applyhas failed since these variables were introduced, blocking DNS and all subsequent terraform changesdocs/secrets.mdChanges
.woodpecker/terraform.yaml: AddTF_VAR_hetzner_api_token,TF_VAR_edge_ssh_public_key,TF_VAR_telegram_landscaping_chat_idto bothplanandapplystep environmentsdocs/secrets.md: Add CI secret wiring section with full inventory table, update "Adding a New Secret" checklist with CI steps 6-7Test Plan
palinks.appandlandscaping-assistant.appresolve to 178.156.129.142Review Checklist
Related Notes
pal-e-platform— platform infrastructure projectPR #446 Review
DOMAIN REVIEW
Tech stack: Woodpecker CI pipeline YAML + Terraform variable wiring + documentation (Markdown).
Correctness of the fix: The three added variables are all required for CI to succeed:
hetzner_api_token--sensitive = true, no default. Would causetofu planfailure. Correct to wire.edge_ssh_public_key-- NOT markedsensitive = true, no default. Still required -- without ittofu planfails with "No value for required variable." Correct to wire viafrom_secretsince Woodpecker has no other injection mechanism.telegram_landscaping_chat_id--sensitive = true, no default. Would cause failure. Correct to wire.Symmetry: All three are added to BOTH plan and apply steps. After this PR, both steps will have 28
TF_VAR_*entries (up from 25). The entries are inserted at the same position relative togodaddy_api_secretin both blocks, maintaining consistent ordering. Good.Inventory table: 29 rows (28
TF_VAR_*+ 1kubeconfig_content). Matches the post-PR pipeline state with one exception noted below.docs/secrets.md updates: Steps 6-7 added to the "Adding a New Secret" checklist are correct and prevent this exact class of bug from recurring. The rewrite of the Woodpecker CI Secrets section clearly documents the two-step requirement (add secret value + wire in YAML) and the failure mode (silent until apply).
BLOCKERS
None.
NITS
Inventory table omits
minio_oidc_client_secret. The variable exists interraform/variables.tf(lines 122-127) withsensitive = trueanddefault = "". It is NOT wired in the pipeline YAML and is absent from the "canonical list" in the inventory table. This is not a CI blocker (the empty default prevents failure), but the table declares itself canonical -- omitting a sensitive variable undermines that claim. Consider either adding it to the table with a note like "default empty, not yet wired" or adding the full wiring. Low priority since it does not block CI.edge_ssh_public_keyin a secrets table. This variable is not markedsensitive = trueinvariables.tf. Storing it as a Woodpecker secret is fine (no harm), but listing it alongside actual secrets in the inventory table without distinguishing it could be mildly confusing. A comment in the table noting it is non-sensitive but stored as a secret for convenience would add clarity.SOP COMPLIANCE
fix: wire missing TF_VAR secrets into CI plan and apply steps)PROCESS OBSERVATIONS
VERDICT: APPROVED