talos-hetzner/README.md

62 lines
1.4 KiB
Markdown
Raw Normal View History

2024-11-19 14:42:27 +01:00
# Setup talos cluster
2024-11-19 22:12:57 +01:00
This will not be perfect, it's for my own use and for learning :)
2024-11-20 14:24:56 +01:00
## Target
* running talos with defined number of controlplanes/workers
* install Hetzner Cloud Controller Manager
* install Cilium with Gateway API
Configured correctly and Hetzner has no issues, talos + kubernetes is up and runing in about 5 minutes.
2024-11-19 14:42:27 +01:00
## Requirements
* Hetzner customer :)
* Domain at Hetzner, not needed, can be removed/adapted
* packer for creating a talos base image
2024-11-19 14:56:16 +01:00
* tofu (Should work with terraform too)
2024-11-19 14:42:27 +01:00
* I use direnv to setup all the needed configuration variables
2024-11-19 22:12:57 +01:00
## Config
### Required environment variables:
```
# to use hcloud command in shell, optional
export HCLOUD_TOKEN=....
# for provider setup
export TF_VAR_hcloud_token=$HCLOUD_TOKEN
# provider setup
export HETZNER_DNS_API_TOKEN=...
# not needed, but useful when used with direnv in .envrc file
# tofu output -raw kubeconfig >kubeconfig; tofu output -raw talosconfig >talosconfig
export KUBECONFIG=kubeconfig
export TALOSCONFIG=talosconfig
```
### Input Parameter
see test.tfvars.sample
2024-11-24 12:27:56 +01:00
## Create cluster
```
cd <repodir>
cp test.tfvars.sample test.tfvars
# adapt parameters
# initialize tofu/packer
tofu init
packer init --upgrade packer/talos_image.pkr.hcl
tofu apply -var-file=test.tfvars
```
2024-11-20 14:24:56 +01:00
## Todo
* define cilium version to be installed (hardcoded to 1.16rc right now)
* maybe some other tweaks
* maybe instsall flux, not sure if that should be part of initial setup