@@ -127,7 +127,7 @@ func (l *loadbalancers) cleanupOldNodeBalancer(ctx context.Context, service *v1.
127127
128128 previousNB , err := l .getNodeBalancerByStatus (ctx , service )
129129 if err != nil {
130- var targetError * lbNotFoundError
130+ var targetError lbNotFoundError
131131 if errors .As (err , & targetError ) {
132132 return nil
133133 } else {
@@ -177,7 +177,7 @@ func (l *loadbalancers) GetLoadBalancer(ctx context.Context, clusterName string,
177177
178178 nb , err := l .getNodeBalancerForService (ctx , service )
179179 if err != nil {
180- var targetError * lbNotFoundError
180+ var targetError lbNotFoundError
181181 if errors .As (err , & targetError ) {
182182 return nil , false , nil
183183 } else {
@@ -252,30 +252,31 @@ func (l *loadbalancers) EnsureLoadBalancer(ctx context.Context, clusterName stri
252252 var nb * linodego.NodeBalancer
253253
254254 nb , err = l .getNodeBalancerForService (ctx , service )
255- if err == nil {
256- if err = l .updateNodeBalancer (ctx , clusterName , service , nodes , nb ); err != nil {
255+ //nolint: errorlint //conversion to errors.Is() may break chainsaw tests
256+ switch err .(type ) {
257+ case lbNotFoundError :
258+ if service .GetAnnotations ()[annotations .AnnLinodeNodeBalancerID ] != "" {
259+ // a load balancer annotation has been created so a NodeBalancer is coming, error out and retry later
260+ klog .Infof ("NodeBalancer created but not available yet, waiting..." )
257261 sentry .CaptureError (ctx , err )
258262 return nil , err
259263 }
260- } else {
261- var targetError * lbNotFoundError
262- if errors .As (err , & targetError ) {
263- if service .GetAnnotations ()[annotations .AnnLinodeNodeBalancerID ] != "" {
264- // a load balancer annotation has been created so a NodeBalancer is coming, error out and retry later
265- klog .Infof ("NodeBalancer created but not available yet, waiting..." )
266- sentry .CaptureError (ctx , err )
267- return nil , err
268- }
269264
270- if nb , err = l .buildLoadBalancerRequest (ctx , clusterName , service , nodes ); err != nil {
271- sentry .CaptureError (ctx , err )
272- return nil , err
273- }
274- klog .Infof ("created new NodeBalancer (%d) for service (%s)" , nb .ID , serviceNn )
275- } else {
265+ if nb , err = l .buildLoadBalancerRequest (ctx , clusterName , service , nodes ); err != nil {
266+ sentry .CaptureError (ctx , err )
267+ return nil , err
268+ }
269+ klog .Infof ("created new NodeBalancer (%d) for service (%s)" , nb .ID , serviceNn )
270+
271+ case nil :
272+ if err = l .updateNodeBalancer (ctx , clusterName , service , nodes , nb ); err != nil {
276273 sentry .CaptureError (ctx , err )
277274 return nil , err
278275 }
276+
277+ default :
278+ sentry .CaptureError (ctx , err )
279+ return nil , err
279280 }
280281
281282 klog .Infof ("NodeBalancer (%d) has been ensured for service (%s)" , nb .ID , serviceNn )
@@ -552,16 +553,19 @@ func (l *loadbalancers) EnsureLoadBalancerDeleted(ctx context.Context, clusterNa
552553 }
553554
554555 nb , err := l .getNodeBalancerForService (ctx , service )
555- if err != nil {
556- var targetError * lbNotFoundError
557- if errors .As (err , & targetError ) {
558- klog .Infof ("short-circuiting deletion for NodeBalancer for service (%s) as one does not exist: %s" , serviceNn , err )
559- return nil
560- } else {
561- klog .Errorf ("failed to get NodeBalancer for service (%s): %s" , serviceNn , err )
562- sentry .CaptureError (ctx , err )
563- return err
564- }
556+ //nolint: errorlint //conversion to errors.Is() may break chainsaw tests
557+ switch getErr := err .(type ) {
558+ case nil :
559+ break
560+
561+ case lbNotFoundError :
562+ klog .Infof ("short-circuiting deletion for NodeBalancer for service (%s) as one does not exist: %s" , serviceNn , err )
563+ return nil
564+
565+ default :
566+ klog .Errorf ("failed to get NodeBalancer for service (%s): %s" , serviceNn , err )
567+ sentry .CaptureError (ctx , getErr )
568+ return err
565569 }
566570
567571 if l .shouldPreserveNodeBalancer (service ) {
0 commit comments