feat: secrets pillar validation gate + missing Woodpecker secrets #140
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
forgejo_admin/pal-e-platform#140
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Type
Feature
Lineage
plan-pal-e-platform→ Platform Hardening → discovered scope from Keycloak theme apply (PR #130)Repo
forgejo_admin/pal-e-platformUser Story
As a platform operator
I want all required Terraform secrets present in the Salt pillar with a validation gate
So that
make tofu-plannever fails due to pillar/variable driftContext
During
tofu applyfor PR #130 (Keycloak theme),make tofu-planfailed because two required Terraform variables (woodpecker_db_password,woodpecker_encryption_key) are not in the Salt pillar. The variables exist invariables.tf, the Makefile'sTF_SECRET_VARSlist, and Woodpecker CI'sfrom_secretreferences — but were never GPG-encrypted intosalt/pillar/secrets/platform.sls.CI works because Woodpecker has its own secret store. Local apply fails because it depends on Salt as the single source of truth.
Additionally, a stale state lock from 2026-03-17 (
ffc8634f-0b8d-8062-f4e2-bad7ece5b393) blockstofu planwithout-lock=false.File Targets
Files the agent should modify:
salt/pillar/secrets/platform.sls— add GPG-encryptedwoodpecker_db_passwordandwoodpecker_encryption_keyMakefile— addtofu-validate-secretstarget that checks allTF_SECRET_VARSkeys exist in renderedsecrets.auto.tfvarsFiles the agent should NOT touch:
terraform/variables.tf— declarations are correct.woodpecker.yaml— CI secret refs are correctAcceptance Criteria
woodpecker_db_passwordandwoodpecker_encryption_keypresent in Salt pillarmake tofu-secretsrenders 17 vars (currently 15)make tofu-plansucceeds without-lock=falseworkaroundmake tofu-validate-secretstarget catches missing vars before planTest Expectations
make tofu-secrets && wc -l terraform/secrets.auto.tfvarsoutputs 17make tofu-plancompletes without errormake tofu-validate-secretspasses when all vars present, fails when one is removedmake tofu-planConstraints
Checklist
Related
project-pal-e-platform— platform hardening