Hi folks — I just made a small controller for Rancher on Hetzner:
https://github.com/mbilan1/rancher-hcloud-image-controller
It automates the creation of
project-local prebuilt node images for downstream clusters on Hetzner.
Hetzner custom images are snapshots, and snapshots are project-scoped, so operators otherwise end up rebuilding the same prebuilt RKE2/CIS image per project and manually handling snapshot IDs.
This could be done with CI/CD, too, but I chose a controller because our entry point for the dev/feature environments is Rancher UI, not a pipeline.
The controller resolves or builds the required
prebuilt snapshot in the target project, patches
HetznerConfig
, and only then allows provisioning to continue.
The goal was to keep image resolution/building inside the same reconciliation flow as cluster provisioning, using the cluster's existing Rancher Cloud Credential and a hard pause gate before node creation.
This is currently specific to the HetznerConfig-based Rancher provisioning flow using the node driver
https://github.com/zsys-studio/rancher-hetzner-cluster-provider