The entire homelab can be provisioned with a single command:
terraform applyThis will:
- Setup Secrets Manager - Create an AWS SSM Parameter Store for all secrets
- Configure Cloudflare DNS - Set up CNAME records for all deployed services behind a reverse proxy.
- Provision VMs - Create 3 Talos Linux VMs on Proxmox (1 control plane, 2 workers) with:
- 2 cores, 2GB RAM, 20GB disk each
- Static IPs
- Custom Talos image with QEMU guest agent and Tailscale extensions
- Bootstrap Kubernetes - Initialize a 3-node Kubernetes cluster:
- Generate machine secrets and certificates
- Apply machine-specific patched Talos configurations
- Bootstrap etcd and Kubernetes API server on the control-plane node
- Set up Tailscale - Configure VPN networking:
- Create Access Control Lists (ACLs) for network policies
- Generate OAuth2 client credentials for Kubernetes Operator integration
- Auto-enroll all VMs in the Tailscale network
- Deploy applications
- Automatically discover and create namespaces from
kubernetes/apps/directories - Deploy all Kubernetes manifests (deployments, services, ingress, PVCs)
- Install Tailscale Operator via Helm for secure ingress management
- Automatically discover and create namespaces from