make edge-plan / make edge: the Edge Stack through the Makefile (#30) #39
No reviewers
Labels
No labels
needs-info
needs-triage
ready-for-agent
ready-for-human
wontfix
needs-info
needs-triage
ready-for-agent
ready-for-human
review/merge-ready
review/needs-fix
review/needs-human
review/needs-review
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
olympus/infra-forge!39
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "hermes/30-make-edge"
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?
What this does
Implements #30:
make edge-planandmake edgerun the Edge Stack (tofu/npm/) through the Makefile, so its two required arguments cannot be forgotten.tofu/npm/.envthemselves (the NPM provider credentials) and pass-var-file=forgejo.tfvarsautomatically — no caller-suppliedsourceor-var-file.make edgeruns the same three-step apply gate asmake guest: plan toplan.out→ render withtofu show→ confirm by typingprod→ apply that artifact.make edge-planshows the full plan and mutates nothing.tofu/npm/.envrefuses before any command is composed.The
guestTarget's gate was factored into the sharedconfirm_and_applymacro and rewired to call it. Its composed command line is byte-identical before and after (make -n guestdiffed).Verification
make -n edge-plan/make -n edgecomposecd tofu/npm→source .env→tofu init→tofu plan [-out=plan.out] -var-file=forgejo.tfvars→ render → typed word → apply; both.envand-var-filecome from the Target.make edgeagainst the unchanged estate:No changes. Your infrastructure matches the configuration.→Apply complete! Resources: 0 added, 0 changed, 0 destroyed.Run against a copy of the state, so the live state file's mtime is unchanged.prodprintsapplying nothing, removesplan.out, exits non-zero.make fmtleaves the tree unmodified;make validatesucceeds;make/make helplist all eight Targets and deploy nothing.Merge Danger
Door: two-way — reverting the commit removes two Targets and restores the runbook section; nothing in the estate changes.
Blast Radius: low — additive Makefile Targets plus docs. Only latent effect:
guestnow routes its gate through the shared macro (behaviour identical).Review
Two-axis
/code-review(Standards + Spec) ran on the diff: no functional defects, no documented-standard violations. Acted on its judgement calls — deduped the runbook's var-file rationale to point at §3, and documented the sharedplan.outrelative-path/cwd coupling in the macro comment. The$(1)environment-word parameter and the Target-preamble duplication were left as-is (thepre/pre-downTargets need a second word; the two Stacks' paths differ).Sibling Targets (
service,snapshot,state-backup,verify,prod,pre) stay out of scope — #31–#35.Refs #30.