2026-05-30 14:10:01 +02:00
|
|
|
# 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).
|
2026-06-14 18:37:54 +02:00
|
|
|
- `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`.
|
2026-05-30 14:10:01 +02:00
|
|
|
|
|
|
|
|
Rationale: **ADR-006**. Handoff to Ansible: **ADR-009**. Secrets via `TF_VAR_*`
|
2026-06-14 18:37:54 +02:00
|
|
|
only — never in `.tfvars`. See `STATUS.md` for what is provisioned.
|