From b389cb0fbd9beee7d03e9287d02dff5018f3f38e Mon Sep 17 00:00:00 2001 From: Joel Speed Date: Mon, 29 Jun 2020 14:23:18 +0100 Subject: [PATCH] UPSTREAM: : openshift: Fallback to Status Replicas if Replicas nil when listing NodeGroups --- .../clusterapi/clusterapi_controller.go | 2 +- .../clusterapi/clusterapi_controller_test.go | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller.go index 1d8962f6a710..0a6f5eb487ec 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller.go @@ -507,7 +507,7 @@ func (c *machineController) machineSetNodeGroups() ([]*nodegroup, error) { if ng.MaxSize()-ng.MinSize() > 0 { if ng.scalableResource.CanScaleFromZero() { nodegroups = append(nodegroups, ng) - } else if pointer.Int32PtrDerefOr(machineSet.Spec.Replicas, 0) > 0 { + } else if pointer.Int32PtrDerefOr(machineSet.Spec.Replicas, machineSet.Status.Replicas) > 0 { nodegroups = append(nodegroups, ng) } } diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller_test.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller_test.go index ef4e99a71949..173790c16a5c 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller_test.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller_test.go @@ -776,6 +776,10 @@ func TestControllerNodeGroups(t *testing.T) { if _, err := controller.nodeGroups(); err == nil { t.Fatalf("expected an error") } + if err := deleteTestConfigs(t, controller, machineSetConfigs...); err != nil { + t.Fatalf("unexpected error: %v", err) + } + assertNodegroupLen(t, controller, 0) // Test #8: machinedeployment with bad scaling bounds results in an error and no nodegroups machineDeploymentConfigs = createMachineDeploymentTestConfigs("MachineDeployment", 2, 1, annotations) @@ -785,6 +789,24 @@ func TestControllerNodeGroups(t *testing.T) { if _, err := controller.nodeGroups(); err == nil { t.Fatalf("expected an error") } + if err := deleteTestConfigs(t, controller, machineDeploymentConfigs...); err != nil { + t.Fatalf("unexpected error: %v", err) + } + assertNodegroupLen(t, controller, 0) + + annotations = map[string]string{ + nodeGroupMinSizeAnnotationKey: "1", + nodeGroupMaxSizeAnnotationKey: "5", + } + + // Test #9: machineset with nil replicas results in falling back to status count + machineSetConfigs = createMachineSetTestConfigs("MachineSet", 1, 1, annotations) + machineSetConfigs[0].machineSet.Status.Replicas = *machineSetConfigs[0].machineSet.Spec.Replicas + machineSetConfigs[0].machineSet.Spec.Replicas = nil + if err := addTestConfigs(t, controller, machineSetConfigs...); err != nil { + t.Fatalf("unexpected error: %v", err) + } + assertNodegroupLen(t, controller, 1) } func TestControllerNodeGroupsNodeCount(t *testing.T) {