The Terraform Boundary Follows the Data
What Terraform Rebuilds in My Homelab
What Terraform Does Not Own Destructively
- TrueNAS dataset contents
- Physical disks, partitions, and ZFS pools after creation
- NFS shares containing real files
- VM disks with application data
- Databases and database volumes
- Media libraries
- Backups and backup targets
- Game worlds
- Kubernetes persistent volume contents
Separate Terraform State by Blast Radius
The S3 Backend Is Part of the Safety Model
Provider Credentials Stay in the Terraform Process Environment
Import Storage Metadata Before Managing It
Prevent Destroy Is a Guardrail, Not a Backup
Why Atlantis Fits This Operating Model
- Every infrastructure change starts as a pull request.
- The plan is visible before an apply.
- Destructive actions appear beside the code that caused them.
- Protected storage plans are reviewed separately from rebuildable compute.
- Concurrent changes to the same root do not race each other.
The Operating Model
Tech Stack
- Terraform for infrastructure state, plans, imports, and lifecycle guardrails
- Terraform S3 backend with versioning, encryption, and native lockfiles
- Atlantis for pull-request plans and per-project locking
- bpg/proxmox for Proxmox VM shells and infrastructure metadata
- barodeur/truenas for imported TrueNAS dataset and NFS share metadata
- Cloudflare Terraform provider for DNS records and public routing metadata
- AWS Secrets Manager for provider credentials injected into each root's Terraform process environment
- Talos and Kubernetes for the cluster layer after the VM shells exist