Skip to content

Commit

Permalink
fix: dynamic assignment of the scale down threshold flags. Setting ma…
Browse files Browse the repository at this point in the history
…xEmptyBulkDelete, and maxScaleDownParallelism to be the larger of the two flags in the case both are set
  • Loading branch information
bsoghigian committed Jul 8, 2023
1 parent 265e57c commit 1e45078
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions cluster-autoscaler/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,16 @@ var (
forceDaemonSets = flag.Bool("force-ds", false, "Blocks scale-up of node groups too small for all suitable Daemon Sets pods.")
)

func isFlagPassed(name string) bool {
found := false
flag.Visit(func(f *flag.Flag) {
if f.Name == name {
found = true
}
})
return found
}

func createAutoscalingOptions() config.AutoscalingOptions {
minCoresTotal, maxCoresTotal, err := parseMinMaxFlag(*coresTotal)
if err != nil {
Expand All @@ -252,6 +262,17 @@ func createAutoscalingOptions() config.AutoscalingOptions {
if *maxDrainParallelismFlag > 1 && !*parallelDrain {
klog.Fatalf("Invalid configuration, could not use --max-drain-parallelism > 1 if --parallel-drain is false")
}

// in order to avoid inconsistent deletion thresholds for the legacy planner and the new actuator, the max-empty-bulk-delete,
// and max-scale-down-parallelism flags must be set to the same value.
if isFlagPassed("max-empty-bulk-delete") && !isFlagPassed("max-scale-down-parallelism") {
*maxScaleDownParallelismFlag = *maxEmptyBulkDeleteFlag
klog.Warning("The max-empty-bulk-delete flag will be deprecated in k8s version 1.29. Please use max-scale-down-parallelism instead.")
klog.Infof("Setting max-scale-down-parallelism to %d, based on the max-empty-bulk-delete value %d", *maxScaleDownParallelismFlag, *maxEmptyBulkDeleteFlag)
} else if !isFlagPassed("max-empty-bulk-delete") && isFlagPassed("max-scale-down-parallelism") {
*maxEmptyBulkDeleteFlag = *maxScaleDownParallelismFlag
}

return config.AutoscalingOptions{
NodeGroupDefaults: config.NodeGroupAutoscalingOptions{
ScaleDownUtilizationThreshold: *scaleDownUtilizationThreshold,
Expand Down

0 comments on commit 1e45078

Please sign in to comment.