talos-hetzner/README.md
Stefan Le Breton edc83f6708 update README
2024-11-24 12:27:56 +01:00

1.4 KiB

Setup talos cluster

This will not be perfect, it's for my own use and for learning :)

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.

Requirements

  • Hetzner customer :)
  • Domain at Hetzner, not needed, can be removed/adapted
  • packer for creating a talos base image
  • tofu (Should work with terraform too)
  • I use direnv to setup all the needed configuration variables

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

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

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