Review: Bootstrap salt-minion on edge-proxy (Hetzner VPS)
Verdict: APPROVED
Re-review of board item #1813. Previous review (
review-1813-2026-07-05) found 2 issues: 5 missing bug template sections and missing arch-edge-proxy architecture note. Both are now resolved.Template Completeness
Issue type: Bug. Checked against
template-issue-bug.- [x] Type -- present ("Bug")
- [x] Lineage -- present ("Blocks pal-e-platform#516... Standalone discovery during prediction-assistant S11 deploy")
- [x] Repo -- present ("ldraney/pal-e-platform")
- [x] What Broke -- present as "Problem" (semantically equivalent, header name differs slightly)
- [x] Repro Steps -- present (salt test.ping + salt-minion --version commands)
- [x] Expected Behavior -- present (test.ping returns True, salt-apply works)
- [x] Environment -- present (Hetzner CPX11, Debian 12, Tailscale 100.72.199.14)
- [x] Acceptance Criteria -- present (3 criteria)
- [x] Related -- present (blocks listed)
Extra sections: Impact (useful), Solution (useful). All 9 required Bug template sections are present.
Traceability
- [x] story:platform-setup label -- Platform Setup
- [x] story note verified --
platform-setupentry exists in project-prediction-assistant user-stories section (Developer role, "CI/CD push-to-deploy in under 10 minutes") - [x] arch:edge-proxy label -- edge proxy component
- [x] arch note verified --
arch-edge-proxynote exists in pal-e-docs (architecture type, active status, pal-e-platform project). Comprehensive content including diagram, components table, provisioning flow, and "Known Gap: Salt-Minion Not Bootstrapped" section - [x] Forgejo issue -- ldraney/pal-e-platform#521, closed (status:approved label)
File Targets
- [x]
terraform/modules/hetzner-edge/cloud-init.yaml-- verified: exists, contains only Tailscale + Caddy bootstrap (no salt-minion), confirms issue claim - [x]
salt/bootstrap.sh-- verified: exists, is Arch-only (uses paru, hardcodesMINION_ID="archbox"), confirms issue claim - [x]
salt/states/top.sls-- verified: line 23 references'edge-proxy'with caddy state assignment - [x]
salt/pillar/top.sls-- verified: line 22 references'edge-proxy'
Repo Placement
OK. Issue filed on
ldraney/pal-e-platform, fix targets files in pal-e-platform (cloud-init.yaml and/or bootstrap script). Board item is on board-prediction-assistant as a cross-project dependency -- acceptable since this blocks prediction-assistant deployment.Dependencies
- Blocks: pal-e-platform#516 (Apply Caddy salt state) -- board item #1771, currently in
validationcolumn - Blocks: prediction-assistant#93 (Verify prediction-assistant.com is live) -- board item #1774, currently in
todocolumn - Sprint: 12 (deploy + verify)
- pal-e-services#173 (tofu apply) in
todois also S12 work, not directly dependent but same sprint
Forgejo issue is now closed with
status:approved, indicating implementation has merged. Board item is in validation column awaiting post-merge verification.Acceptance Criteria
3 ACs, all clear and testable:
- AC1: Salt-minion installed on edge-proxy via IaC -- verifiable by code review of cloud-init or bootstrap script
- AC2:
salt edge-proxy test.pingreturns True -- requires SSH to archbox for verification - AC3:
make salt-applysucceeds for edge-proxy -- requires SSH to archbox
AC2 and AC3 are integration-level checks requiring remote execution. An agent can implement the code changes but verification requires SSH access to archbox.
Blast Radius
salt/bootstrap.shis Arch-only. If a Debian bootstrap path is added, future Debian hosts would benefit. No other Debian minions currently intop.sls.- Any future Hetzner VPS would have the same cloud-init gap if not updated.
arch-edge-proxynote documents the gap under "Known Gap: Salt-Minion Not Bootstrapped" -- good traceability.
Decomposition Assessment
2 primary file targets in 1 repo. 3 acceptance criteria. Estimated agent work well under 5 minutes. No decomposition needed.
Recommendations
No action needed. Both issues from the previous review have been resolved:
- All 5 missing Bug template sections (Lineage, Repo, Repro Steps, Expected Behavior, Environment) are now present in the Forgejo issue body.
- The
arch-edge-proxyarchitecture note now exists with comprehensive documentation of the edge proxy component, including the known salt-minion gap.