From e5ee1636cfc625e348121f033b893930361fee22 Mon Sep 17 00:00:00 2001 From: watermeion Date: Tue, 26 Sep 2023 16:11:16 +0800 Subject: [PATCH] fix fhpa controller panic when SelectPolicy is nil Signed-off-by: watermeion --- pkg/controllers/federatedhpa/federatedhpa_controller.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/controllers/federatedhpa/federatedhpa_controller.go b/pkg/controllers/federatedhpa/federatedhpa_controller.go index 63a9ccc21..a63135901 100644 --- a/pkg/controllers/federatedhpa/federatedhpa_controller.go +++ b/pkg/controllers/federatedhpa/federatedhpa_controller.go @@ -1270,9 +1270,9 @@ func calculateScaleUpLimitWithScalingRules(currentReplicas int32, scaleUpEvents, var result int32 var proposed int32 var selectPolicyFn func(int32, int32) int32 - if *scalingRules.SelectPolicy == autoscalingv2.DisabledPolicySelect { + if scalingRules.SelectPolicy != nil && *scalingRules.SelectPolicy == autoscalingv2.DisabledPolicySelect { return currentReplicas // Scaling is disabled - } else if *scalingRules.SelectPolicy == autoscalingv2.MinChangePolicySelect { + } else if scalingRules.SelectPolicy != nil && *scalingRules.SelectPolicy == autoscalingv2.MinChangePolicySelect { result = math.MaxInt32 selectPolicyFn = min // For scaling up, the lowest change ('min' policy) produces a minimum value } else { @@ -1299,9 +1299,9 @@ func calculateScaleDownLimitWithBehaviors(currentReplicas int32, scaleUpEvents, var result int32 var proposed int32 var selectPolicyFn func(int32, int32) int32 - if *scalingRules.SelectPolicy == autoscalingv2.DisabledPolicySelect { + if scalingRules.SelectPolicy != nil && *scalingRules.SelectPolicy == autoscalingv2.DisabledPolicySelect { return currentReplicas // Scaling is disabled - } else if *scalingRules.SelectPolicy == autoscalingv2.MinChangePolicySelect { + } else if scalingRules.SelectPolicy != nil && *scalingRules.SelectPolicy == autoscalingv2.MinChangePolicySelect { result = math.MinInt32 selectPolicyFn = max // For scaling down, the lowest change ('min' policy) produces a maximum value } else {