diff --git a/resource_customizations/cluster.x-k8s.io/MachinePool/health.lua b/resource_customizations/cluster.x-k8s.io/MachinePool/health.lua index 521aa9a611..8da35f08f9 100644 --- a/resource_customizations/cluster.x-k8s.io/MachinePool/health.lua +++ b/resource_customizations/cluster.x-k8s.io/MachinePool/health.lua @@ -6,7 +6,7 @@ function getStatusBasedOnPhase(obj, hs) -- https://github.com/kubernetes-sigs/cluster-api/blob/release-1.8/exp/api/v1beta1/machinepool_types.go#L139-L182 if obj.status ~= nil and obj.status.phase ~= nil then hs.message = "MachinePool is " .. obj.status.phase - if obj.status.phase == "Running" then + if obj.status.phase == "Running" or obj.status.phase == "Scaling" then hs.status = "Healthy" end if obj.status.phase == "Failed" or obj.status.phase == "Unknown" then diff --git a/resource_customizations/cluster.x-k8s.io/MachinePool/health_test.yaml b/resource_customizations/cluster.x-k8s.io/MachinePool/health_test.yaml index 3ea490456e..d8e2228f7a 100644 --- a/resource_customizations/cluster.x-k8s.io/MachinePool/health_test.yaml +++ b/resource_customizations/cluster.x-k8s.io/MachinePool/health_test.yaml @@ -3,6 +3,10 @@ tests: status: Healthy message: 'MachinePool is Running' inputPath: testdata/healthy_provisioned.yaml +- healthStatus: + status: Healthy + message: 'MachinePool is Scaling' + inputPath: testdata/scaling_provisioned.yaml - healthStatus: status: Progressing message: 'MachinePool is Provisioning: Not Ready (WaitingForInfrastructure), Not InfrastructureReady (WaitingForInfrastructure)' diff --git a/resource_customizations/cluster.x-k8s.io/MachinePool/testdata/scaling_provisioned.yaml b/resource_customizations/cluster.x-k8s.io/MachinePool/testdata/scaling_provisioned.yaml new file mode 100644 index 0000000000..ce13ae2028 --- /dev/null +++ b/resource_customizations/cluster.x-k8s.io/MachinePool/testdata/scaling_provisioned.yaml @@ -0,0 +1,58 @@ +apiVersion: cluster.x-k8s.io/v1beta1 +kind: MachinePool +metadata: + labels: + argocd.argoproj.io/instance: foo + cluster.x-k8s.io/cluster-name: foo + name: foo-pool + namespace: default +spec: + clusterName: foo + replicas: 3 + template: + metadata: {} + spec: + bootstrap: + dataSecretName: "" + clusterName: foo + infrastructureRef: + apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 + kind: AWSManagedMachinePool + name: foo-pool + namespace: default + version: v1.30.0 +status: + availableReplicas: 2 + bootstrapReady: true + conditions: + - lastTransitionTime: '2024-08-19T20:33:02Z' + status: 'True' + type: Ready + - lastTransitionTime: '2024-08-19T20:18:31Z' + status: 'True' + type: BootstrapReady + - lastTransitionTime: '2024-08-19T20:33:02Z' + status: 'True' + type: InfrastructureReady + - lastTransitionTime: '2024-08-19T20:18:31Z' + status: 'True' + type: ReplicasReady + infrastructureReady: true + nodeRefs: + - apiVersion: v1 + kind: Node + name: ip-18-232-50-123-ec2.internal + uid: e4b3a44f-1c2d-4fd3-bb9e-3b0e08787a5a + - apiVersion: v1 + kind: Node + name: ip-52-23-45-67-ec2.internal + uid: 2b9dabe5-3a1d-429a-985b-5e7ffb9649c6 + - apiVersion: v1 + kind: Node + name: ip-34-207-89-12-ec2.internal + uid: 6f94031a-d3e4-48f7-bc94-22bb9b687f5e + observedGeneration: 2 + phase: Scaling + readyReplicas: 2 + unavailableReplicas: 1 + replicas: 3