K3S Single Node Multi Cluster IaC
Minimal k3s single node deployment on Hetzner Cloud with Terraform and Ansible as multi cluster configuration managed with ArgoCD.
K3s is stripped down to minimal components. The only components we have are CoreDNS, local-path-provisioner, and metrics-server. Everything else is disabled and configured with custom Helm charts.
The clusters will be automatically bootstrapped and managed with ArgoCD.
Prerequisites
Before you begin, ensure you have the following:
- Hetzner Cloud account (20$ free credits)
- Terraform
- Helm
- kubectl
- K9s (optional but recommended)
The main idea is to have a primary single-node operations K3s cluster that has ArgoCD and an App of Apps pattern to manage both operations and other K3s single or multi-node clusters.
Helm charts and Terraform modules are custom-made with the intention to be reusable and reconfigurable: