boma/terraform
sjat 09b0aad342 fix(tf): cloud-init heredoc column-0 + firewall uses ubongo's WAN IP
Review catches: (1) <<-EOT strips by the closing marker's indent, so the
cloud-config body must match it (2 spaces) for '#cloud-config' to land at column
0; (2) the Hetzner Cloud Firewall filters public traffic, so ssh_admin_cidrs is
ubongo's WAN/egress IP, not its LAN address — a private CIDR would lock SSH out of
the live VPS.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 12:19:45 +02:00
..
environments fix(tf): cloud-init heredoc column-0 + firewall uses ubongo's WAN IP 2026-06-14 12:19:45 +02:00
modules fix(tf): cloud-init heredoc column-0 + firewall uses ubongo's WAN IP 2026-06-14 12:19:45 +02:00
README.md Add Terraform VM-provisioning skeleton 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).
  • environments/{staging,production}/ — separate state per environment. Add a VM by editing local.vms in that env's main.tf, then make tf-plantf-applytf-inventory.

Rationale: ADR-006. Handoff to Ansible: ADR-009. Secrets via TF_VAR_* only — never in .tfvars. Not yet terraform inited — see STATUS.md.