hcloud-fip-controller
Wrapper chart for cbeneke/hcloud-fip-controller.
It keeps a Hetzner Cloud Floating IP attached to the active (leader-elected)
node, so a hostNetwork workload that must be reachable at a fixed public IP —
e.g. NetBird Coturn (STUN/TURN, UDP 3478 / 5349 + the 49152–65535 relay
range, which an LB can't front) — survives node failures: the leader pod assigns
the Floating IP to its own node, and when that node dies a new leader reassigns
it (lease-based, ~15s failover by default).
Operator responsibilities
This chart deploys the controller only. Two things must be arranged outside it:
floatingIPs+existingSecretName— set per-cluster in the values overlay.existingSecretNamemust point to a Secret carrying anHCLOUD_API_TOKENkey (use a kubeaid SealedSecret; don't inline the token viahcloudApiToken).- Node networking — the controller only moves the API assignment; it does not configure the node's interface. The Floating IP must already be bound on every candidate node's NIC via cloud-init / netplan, or the node won't answer for it once the IP lands there.
Notes
- For real HA, spread the 3 replicas across nodes (podAntiAffinity / topology spread) so leader election can fail over when a node dies.
- Land the workload it protects (e.g. Coturn) on a dedicated worker, not a control-plane node — a public 16k-port UDP relay does not belong next to etcd/apiserver.