fix: Allow ClusterAPI MachinePool scaling to be considered Healthy (#22040)

Signed-off-by: Mike Tougeron <tougeron@adobe.com>
This commit is contained in:
Mike Tougeron
2025-04-27 21:55:41 +01:00
committed by GitHub
parent ca431dc5e4
commit 895dcf7fa7
3 changed files with 63 additions and 1 deletions

View File

@@ -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

View File

@@ -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)'

View File

@@ -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