Skip to content

Ability to define scale-down-enabled, enforce-node-group-min-size on pool level #8186

Open
@olegsmetanin

Description

@olegsmetanin

Which component are you using?: Autoscaler for Hetzner, helm-chart

What components does this apply to?
/area cluster-autoscaler
/area helm-charts

Is your feature request designed to solve a problem? If so describe the problem this feature should solve:
Node pools can be used to separate workloads with different scalability requirements, For example, stateless applications can be relatively easily downscaled to one node and it is reasonable to use scale-down-enabled, enforce-node-group-min-size flags for stateless app node pool. Automatic downscaling of stateful applications can create issues. Currently, can define different scaling requirements like scale-down-enabled, enforce-node-group-min-size at Autoscaler/cluster level only.

Describe the solution you'd like:
We need scalability requirements like scale-down-enabled, enforce-node-group-min-size definitions at the pool level:

cat <<EOF | helm upgrade cluster-autoscaler autoscaler/cluster-autoscaler --install --create-namespace -n cluster-autoscaler --version 9.46.6 -f -
cloudProvider: hetzner
autoscalingGroups:
  - name: app-pool
    minSize: 1 
    maxSize: 10
    instanceType: CPX41
    region: NBG1
    ######## Pool level scalability requirements for stateless applications
    scale-down-enabled: true
    enforce-node-group-min-size: true
  - name: db-pool
    minSize: 5
    maxSize: 8
    instanceType: CPX41 # Uppercase!
    region: NBG1 # Uppercase!
    ######## Pool level scalability requirements for stateful applications
    scale-down-enabled: false
    enforce-node-group-min-size: false
extraEnv:
  HCLOUD_TOKEN: "$HCLOUD_TOKEN"
  HCLOUD_CLUSTER_CONFIG: "$HCLOUD_CLUSTER_CONFIG"
  HCLOUD_NETWORK: "$HETZNER_NETWORK_ID"
  HCLOUD_SSH_KEY: "$HCLOUD_SSH_KEY"
  HCLOUD_PUBLIC_IPV4: "false"
  HCLOUD_PUBLIC_IPV6: "false"
extraArgs:
  ######## Existing Autoscaler/system-level scalability requirements
    scale-down-enabled: false
    enforce-node-group-min-size: false
EOF

Describe any alternative solutions you've considered.:
Deploy multiple Autoscalers in different namespaces, every deployment will manage pools with similar requirements.

Additional context.:
Autoscaler configuration: https://oleg.smetan.in/posts/2025-04-15-kubernetes-based-dev-environment-on-hetzner#install-and-configure-node-autoscaler

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions