boma/terraform/README.md

18 lines
922 B
Markdown
Raw Normal View History

# terraform/
Infrastructure provisioning. Terraform owns **VM existence only** — creating and
destroying Proxmox VMs. It writes no DNS records and configures nothing inside a
VM; Ansible owns all of that.
- `modules/proxmox_vm/` — reusable VM module (Proxmox only).
- `modules/hetzner_vm/` — reusable VM module (Hetzner Cloud: server + firewall +
SSH key + cloud-init).
- `environments/{staging,production}/` — separate state per environment (Proxmox).
Add a VM by editing `local.vms` in that env's `main.tf`, then `make tf-plan`
`tf-apply``tf-inventory`. Not yet `terraform init`ed.
- `environments/offsite/` — the off-site Hetzner host (`askari`); the one
**applied** environment. Use `make tf-* TF_ENV=offsite` and `tf-inventory-offsite`.
Rationale: **ADR-006**. Handoff to Ansible: **ADR-009**. Secrets via `TF_VAR_*`
only — never in `.tfvars`. See `STATUS.md` for what is provisioned.