No description
- HCL 100%
| .gitignore | ||
| backend.conf.example | ||
| main.tf | ||
| outputs.tf | ||
| providers.tf | ||
| README.md | ||
| terraform.tfvars.example | ||
| traefik-values.yaml | ||
| traefik.tf | ||
| variables.tf | ||
hcloud-k8s
My Kubernetes cluster on Hetzner Cloud. Uses hcloud-k8s/kubernetes/hcloud terraform module which runs Talos Linux (no SSH, API-only, immutable OS).
What's in here
- 1 control plane + 2 workers (cx23, Helsinki)
- Cilium CNI with WireGuard encryption
- cert-manager for TLS
- Traefik ingress
- State stored in Hetzner Object Storage (S3)
Setup
cp terraform.tfvars.example terraform.tfvars
# fill in your hcloud token
cp backend.conf.example backend.conf
# fill in s3 access_key and secret_key
terraform init -backend-config=backend.conf
terraform apply
Kubeconfig gets written to ./kubeconfig after apply.
Scaling to HA
Change control plane count from 1 to 3 in main.tf and re-apply. Talos handles etcd member joining automatically.