Skip to Content
ScaleOps via GitOpsNode Consolidation Configuration

Node Consolidation Configuration

Node consolidation settings and schedule can be defined in Helm values and deployed via GitOps.
Helm-defined settings and schedule can be edited via the product. On Helm upgrade, only the relevant changes will be applied.

Configuration Available in v1.27.12+

nodeConsolidation: enabled: true settings: general: enableScaleDownNodesWithGpu: true enableScaleDownNodesWithUnevictablePods: true karpenter: enableScaleDownUnderutilizedNodes: true enableScaleDownClusterAutoScalerNodes: true clusterAutoScaler: enableOverrideNodePoolMinCount: true enableScaleDownNodesWithLocalStorage: true enableScaleDownNodesWithKubeSystemPods: true enableReplaceNodesWithBetterInstanceTypes: true schedule: recurrences: - days: [1, 3, 5] # Monday, Wednesday, Friday times: ["02:00"] # 2 AM UTC

Fields

nodeConsolidation.enabled

Must be true to apply the Helm-defined configuration.

nodeConsolidation.settings

Optional object with three sub-objects: general, karpenter, and clusterAutoScaler. Omitted keys are not applied.

settings.general - Relevant for both Karpenter and Cluster Autoscaler managed clusters

KeyDescription
enableScaleDownNodesWithGpuWhen true, allow scaling down nodes with GPU.
enableScaleDownNodesWithUnevictablePodsWhen true, allow scaling down nodes with unevictable pods.

settings.karpenter

KeyDescription
enableScaleDownUnderutilizedNodesWhen true, allow force-deleting Karpenter underutilized nodes (scale down beyond Karpenter’s default constraints).
enableScaleDownClusterAutoScalerNodesWhen true, allow Cluster Autoscaler-managed nodes to participate in consolidation on mixed Karpenter + CAS clusters.

settings.clusterAutoScaler

KeyDescription
enableOverrideNodePoolMinCountWhen true, allow scaling down nodes from node pools at minimum size.
enableScaleDownNodesWithLocalStorageWhen true, allow scaling down nodes with local storage.
enableScaleDownNodesWithKubeSystemPodsWhen true, allow scaling down nodes with kube-system pods.
enableReplaceNodesWithBetterInstanceTypesWhen true, replace nodes with better (smaller/cheaper) instance types during consolidation.

nodeConsolidation.schedule

Optional object with a recurrences array. Each recurrence defines when consolidation runs automatically.

Schedule format:

  • recurrences: Array of { days: number[], times: string[] }
  • days: Weekday numbers (0 = Sunday, 1 = Monday, …, 6 = Saturday)
  • times: Array of "HH:MM" strings in UTC (24-hour format)

Example: run consolidation on Mon, Wed, Fri at 2:00 and 14:00 UTC:

schedule: recurrences: - days: [1, 3, 5] times: ["02:00", "14:00"]