Skip to content

Commit ca3cc2d

Browse files
authored
Merge pull request #4704 from k8s-infra-cherrypick-robot/cherry-pick-4701-to-release-2.3
[release-2.3] 🐛 Fix deregistering of deleted CAPI Machines
2 parents baabf33 + d8af861 commit ca3cc2d

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

controllers/awsmachine_controller.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -867,8 +867,8 @@ func (r *AWSMachineReconciler) reconcileLBAttachment(machineScope *scope.Machine
867867
elbsvc := r.getELBService(elbScope)
868868

869869
// In order to prevent sending request to a "not-ready" control plane machines, it is required to remove the machine
870-
// from the ELB as soon as the machine gets deleted or when the machine is in a not running state.
871-
if !machineScope.AWSMachine.DeletionTimestamp.IsZero() || !machineScope.InstanceIsRunning() {
870+
// from the ELB as soon as the machine or infra machine gets deleted or when the machine is in a not running state.
871+
if machineScope.AWSMachineIsDeleted() || machineScope.MachineIsDeleted() || !machineScope.InstanceIsRunning() {
872872
if elbScope.ControlPlaneLoadBalancer().LoadBalancerType == infrav1.LoadBalancerTypeClassic {
873873
machineScope.Debug("deregistering from classic load balancer")
874874
return r.deregisterInstanceFromClassicLB(machineScope, elbsvc, i)

pkg/cloud/scope/machine.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -360,11 +360,16 @@ func (m *MachineScope) InstanceIsInKnownState() bool {
360360
return state != nil && infrav1.InstanceKnownStates.Has(string(*state))
361361
}
362362

363-
// AWSMachineIsDeleted checks if the machine was deleted.
363+
// AWSMachineIsDeleted checks if the AWS machine was deleted.
364364
func (m *MachineScope) AWSMachineIsDeleted() bool {
365365
return !m.AWSMachine.ObjectMeta.DeletionTimestamp.IsZero()
366366
}
367367

368+
// MachineIsDeleted checks if the machine was deleted.
369+
func (m *MachineScope) MachineIsDeleted() bool {
370+
return !m.Machine.ObjectMeta.DeletionTimestamp.IsZero()
371+
}
372+
368373
// IsEKSManaged checks if the machine is EKS managed.
369374
func (m *MachineScope) IsEKSManaged() bool {
370375
return m.InfraCluster.InfraCluster().GetObjectKind().GroupVersionKind().Kind == ekscontrolplanev1.AWSManagedControlPlaneKind

0 commit comments

Comments
 (0)