From dc8df2701bfdd54a158ce35470a64ddd369f732f Mon Sep 17 00:00:00 2001 From: mattjmcnaughton Date: Fri, 8 Sep 2017 09:09:22 -0400 Subject: [PATCH] Fix incorrect status msg in podautoscaler Fix #49256 When `ScalingLimited = true` for the `hpa`, there is an accompanying status message, describing why scaling is limited. Previously if the desired replica count was 0, and spec.minReplicas > 0, the status message indicated "the desired replica count was less than the min replica count". This was particularly confusing when `spec.MinReplicas = 1`. If there was no `spec.minReplicas`, then the status message indicated "the desired replica count was zero" which is more informative. Update the calculation of status message so that if the desired replica count is 0, we always display the clearer "the desired replica count was zero" status message, even if spec.minReplicas > 0. Signed-off-by: mattjmcnaughton --- pkg/controller/podautoscaler/horizontal.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/controller/podautoscaler/horizontal.go b/pkg/controller/podautoscaler/horizontal.go index b8c50795f05..6c02a72c8e0 100644 --- a/pkg/controller/podautoscaler/horizontal.go +++ b/pkg/controller/podautoscaler/horizontal.go @@ -441,7 +441,14 @@ func (a *HorizontalController) reconcileAutoscaler(hpav1Shared *autoscalingv1.Ho desiredReplicas = scaleUpLimit case hpa.Spec.MinReplicas != nil && desiredReplicas < *hpa.Spec.MinReplicas: // make sure we aren't below our minimum - setCondition(hpa, autoscalingv2.ScalingLimited, v1.ConditionTrue, "TooFewReplicas", "the desired replica count was less than the minimum replica count") + var statusMsg string + if desiredReplicas == 0 { + statusMsg = "the desired replica count was zero" + } else { + statusMsg = "the desired replica count was less than the minimum replica count" + } + + setCondition(hpa, autoscalingv2.ScalingLimited, v1.ConditionTrue, "TooFewReplicas", statusMsg) desiredReplicas = *hpa.Spec.MinReplicas case desiredReplicas == 0: // never scale down to 0, reserved for disabling autoscaling