diff --git a/controllers/awsmachine_controller.go b/controllers/awsmachine_controller.go index 2c511093ca..0da9cb1e6d 100644 --- a/controllers/awsmachine_controller.go +++ b/controllers/awsmachine_controller.go @@ -835,8 +835,8 @@ func (r *AWSMachineReconciler) reconcileLBAttachment(machineScope *scope.Machine elbsvc := r.getELBService(elbScope) // In order to prevent sending request to a "not-ready" control plane machines, it is required to remove the machine - // from the ELB as soon as the machine gets deleted or when the machine is in a not running state. - if !machineScope.AWSMachine.DeletionTimestamp.IsZero() || !machineScope.InstanceIsRunning() { + // from the ELB as soon as the machine or infra machine gets deleted or when the machine is in a not running state. + if machineScope.AWSMachineIsDeleted() || machineScope.MachineIsDeleted() || !machineScope.InstanceIsRunning() { if elbScope.ControlPlaneLoadBalancer().LoadBalancerType == infrav1.LoadBalancerTypeClassic { machineScope.Debug("deregistering from classic load balancer") return r.deregisterInstanceFromClassicLB(machineScope, elbsvc, i) diff --git a/pkg/cloud/scope/machine.go b/pkg/cloud/scope/machine.go index 208895d8e3..20ef163058 100644 --- a/pkg/cloud/scope/machine.go +++ b/pkg/cloud/scope/machine.go @@ -360,11 +360,16 @@ func (m *MachineScope) InstanceIsInKnownState() bool { return state != nil && infrav1.InstanceKnownStates.Has(string(*state)) } -// AWSMachineIsDeleted checks if the machine was deleted. +// AWSMachineIsDeleted checks if the AWS machine was deleted. func (m *MachineScope) AWSMachineIsDeleted() bool { return !m.AWSMachine.ObjectMeta.DeletionTimestamp.IsZero() } +// MachineIsDeleted checks if the machine was deleted. +func (m *MachineScope) MachineIsDeleted() bool { + return !m.Machine.ObjectMeta.DeletionTimestamp.IsZero() +} + // IsEKSManaged checks if the machine is EKS managed. func (m *MachineScope) IsEKSManaged() bool { return m.InfraCluster.InfraCluster().GetObjectKind().GroupVersionKind().Kind == ekscontrolplanev1.AWSManagedControlPlaneKind