From 00c75ffda9ae9212ac5682b1bebd6d32efc1fb42 Mon Sep 17 00:00:00 2001 From: Shyam Radhakrishnan Date: Tue, 27 Feb 2024 09:35:45 +0530 Subject: [PATCH 1/2] Handle machien deletion when NLB/LB has been deleted --- cloud/scope/machine.go | 8 ++++++++ cloud/scope/machine_test.go | 26 ++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/cloud/scope/machine.go b/cloud/scope/machine.go index 920243b4..18f75bb7 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") + 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") + 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, From 960c09e0e75dad4f9a1a4563730fd808cb707c76 Mon Sep 17 00:00:00 2001 From: Shyam Radhakrishnan Date: Wed, 28 Feb 2024 13:56:43 +0530 Subject: [PATCH 2/2] Handle machien deletion when NLB/LB has been deleted --- cloud/scope/machine.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cloud/scope/machine.go b/cloud/scope/machine.go index 18f75bb7..de33178c 100644 --- a/cloud/scope/machine.go +++ b/cloud/scope/machine.go @@ -610,7 +610,7 @@ func (m *MachineScope) ReconcileDeleteInstanceOnLB(ctx context.Context) error { }) if err != nil { if ociutil.IsNotFound(err) { - m.Logger.Info("LB has been deleted") + m.Logger.Info("LB has been deleted", "lb", *loadbalancerId) return nil } return err @@ -663,7 +663,7 @@ func (m *MachineScope) ReconcileDeleteInstanceOnLB(ctx context.Context) error { }) if err != nil { if ociutil.IsNotFound(err) { - m.Logger.Info("NLB has been deleted") + m.Logger.Info("NLB has been deleted", "nlb", *loadbalancerId) return nil } return err