This project aims to simplify the creation of K8s clusters on Hetzner Cloud with Terraform, Ansible and Rancher
Partially based on Vito Botta's Ansible and Terraform plugins and his article: From zero to Kubernetes in Hetzner Cloud with Terraform, Ansible and Rancher. It also adds example values, documentation, bugfixes, more reproducibility and further automation on top of it. Differences with the original article.
For the sake of compactness, the project is referenced as SolaKube.
WARNING: This is a work in progress and shared only in the hope that it may come useful for others. See the Issues. Until it reaches 1.0, major structural changes may be introduced.
The configuration describe my personal test cloud (named "andromeda"). If you want to use it as a starting point, please read Vito's article and customize everything according to your own preferences, tokens...etc.
The SolaKube deployed cluster will have the following features, in short:
- Highly available via Hetzner Floating IP and Nginx-Ingress
- Flexible cluster node structuring and roles
- Automatic HTTPS certificates (per-service or wildcard) via Let's Encrypt
- Data persistence (Hetzner Volumes + Rook/Ceph)
- Fully automated, reproducible cluster builds with infrastructure component + application deployments
- Built in disaster recovery tooling (Velero + application backup profiles)
- Monitoring & Alerting via Prometheus or New Relic.
- Simplified deployments for
For feature details, see the Features page
For details about the directly supported infrastructure components & applications, see the Applications & Components page
Before using SolaKube, you need to ensure that all necessary software is present that are needed for the cluster building processes (Ansible, Terraform, Helm...etc).
See the Requirements & Dependencies page for details.
See the Cluster Creation and Provisioning page about creating the cluster and installing all basic infrastructural elements