diff --git a/cloud/scope/machine.go b/cloud/scope/machine.go index 920243b4..de33178c 100644 --- a/cloud/scope/machine.go +++ b/cloud/scope/machine.go @@ -609,6 +609,10 @@ func (m *MachineScope) ReconcileDeleteInstanceOnLB(ctx context.Context) error { LoadBalancerId: loadbalancerId, }) if err != nil { + if ociutil.IsNotFound(err) { + m.Logger.Info("LB has been deleted", "lb", *loadbalancerId) + return nil + } return err } backendSet := lb.BackendSets[APIServerLBBackendSetName] @@ -658,6 +662,10 @@ func (m *MachineScope) ReconcileDeleteInstanceOnLB(ctx context.Context) error { NetworkLoadBalancerId: loadbalancerId, }) if err != nil { + if ociutil.IsNotFound(err) { + m.Logger.Info("NLB has been deleted", "nlb", *loadbalancerId) + return nil + } return err } backendSet := lb.BackendSets[APIServerLBBackendSetName] diff --git a/cloud/scope/machine_test.go b/cloud/scope/machine_test.go index 7fe3a80b..16f9914b 100644 --- a/cloud/scope/machine_test.go +++ b/cloud/scope/machine_test.go @@ -1566,6 +1566,16 @@ func TestNLBReconciliationDeletion(t *testing.T) { NetworkLoadBalancer: networkloadbalancer.NetworkLoadBalancer{}}, errors.New("could not get nlb")) }, }, + { + name: "get nlb error, not found", + errorExpected: false, + testSpecificSetup: func(machineScope *MachineScope, nlbClient *mock_nlb.MockNetworkLoadBalancerClient) { + nlbClient.EXPECT().GetNetworkLoadBalancer(gomock.Any(), gomock.Eq(networkloadbalancer.GetNetworkLoadBalancerRequest{ + NetworkLoadBalancerId: common.String("nlbid"), + })).Return(networkloadbalancer.GetNetworkLoadBalancerResponse{ + NetworkLoadBalancer: networkloadbalancer.NetworkLoadBalancer{}}, ociutil.ErrNotFound) + }, + }, { name: "backend exists", errorExpected: false, @@ -2108,6 +2118,22 @@ func TestLBReconciliationDeletion(t *testing.T) { errorSubStringMatch bool testSpecificSetup func(machineScope *MachineScope, lbClient *mock_lb.MockLoadBalancerClient) }{ + { + name: "get lb error", + errorExpected: false, + testSpecificSetup: func(machineScope *MachineScope, nlbClient *mock_lb.MockLoadBalancerClient) { + machineScope.OCIMachine.Status.Addresses = []clusterv1.MachineAddress{ + { + Type: clusterv1.MachineInternalIP, + Address: "1.1.1.1", + }, + } + nlbClient.EXPECT().GetLoadBalancer(gomock.Any(), gomock.Eq(loadbalancer.GetLoadBalancerRequest{ + LoadBalancerId: common.String("lbid"), + })).Return(loadbalancer.GetLoadBalancerResponse{ + LoadBalancer: loadbalancer.LoadBalancer{}}, ociutil.ErrNotFound) + }, + }, { name: "get lb error", errorExpected: true,