You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Would you be open to an opt-in Karpenter integration alongside the existing
Cluster Autoscaler, using karpenter-provider-hetzner?
Disclosure: I help maintain karpenter-provider-hetzner, so I have an
interest here. I'm raising this as a Discussion (not a surprise PR) precisely
because the module already has solid Hetzner autoscaling — I want to check
appetite before building anything.
Why this module specifically
Of the popular Hetzner installers, this one is the cleanest fit for Karpenter:
The provider already supports Talos worker bootstrap.
This module already generates Talos worker machineconfigs and ships
components as Talos inline manifests — so the integration reuses existing
machinery (data.talos_machine_configuration, the *_manifest pattern)
rather than adding new bootstrap logic.
The hcloud CCM you already install provides the hcloud://<id> providerID
Karpenter needs.
What I'm proposing (not a replacement)
Karpenter is an alternative to the Cluster Autoscaler, not a gap-filler — it
does per-pod instance-type selection and consolidation instead of pre-declared
ASGs. So I'd keep it strictly opt-in:
New karpenter_nodepools variable; empty by default → zero change for
current users.
A guard so Karpenter and cluster_autoscaler_nodepools can't both be enabled
(both want to own provisioning).
Follows cluster_autoscaler.tf exactly: data.helm_template to render the
chart, a generated worker machineconfig as the node userData, manifests
appended to talos_inline_manifests.
I have a working draft of karpenter.tf + variables ready to share.
Open questions
Is an alternative autoscaler something you'd want to carry, or do you prefer
to keep one autoscaling path?
karpenter-provider-hetzner is young — would you want a stability bar (e.g.
N months / pinned chart, marked beta) before merge?
Preference on shape: single shared HCloudNodeClass + per-pool NodePools
(what I drafted), or a richer per-pool NodeClass mapping?
Happy to open the PR if there's interest. Thanks for the module — it's the
nicest Talos-on-Hetzner setup out there.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Summary
Would you be open to an opt-in Karpenter integration alongside the existing
Cluster Autoscaler, using
karpenter-provider-hetzner?Disclosure: I help maintain
karpenter-provider-hetzner, so I have aninterest here. I'm raising this as a Discussion (not a surprise PR) precisely
because the module already has solid Hetzner autoscaling — I want to check
appetite before building anything.
Why this module specifically
Of the popular Hetzner installers, this one is the cleanest fit for Karpenter:
components as Talos inline manifests — so the integration reuses existing
machinery (
data.talos_machine_configuration, the*_manifestpattern)rather than adding new bootstrap logic.
hcloud://<id>providerIDKarpenter needs.
What I'm proposing (not a replacement)
Karpenter is an alternative to the Cluster Autoscaler, not a gap-filler — it
does per-pod instance-type selection and consolidation instead of pre-declared
ASGs. So I'd keep it strictly opt-in:
karpenter_nodepoolsvariable; empty by default → zero change forcurrent users.
cluster_autoscaler_nodepoolscan't both be enabled(both want to own provisioning).
cluster_autoscaler.tfexactly:data.helm_templateto render thechart, a generated worker machineconfig as the node
userData, manifestsappended to
talos_inline_manifests.I have a working draft of
karpenter.tf+ variables ready to share.Open questions
to keep one autoscaling path?
karpenter-provider-hetzneris young — would you want a stability bar (e.g.N months / pinned chart, marked beta) before merge?
HCloudNodeClass+ per-pool NodePools(what I drafted), or a richer per-pool NodeClass mapping?
Happy to open the PR if there's interest. Thanks for the module — it's the
nicest Talos-on-Hetzner setup out there.
All reactions