@@ -252,31 +252,30 @@ func (l *loadbalancers) EnsureLoadBalancer(ctx context.Context, clusterName stri
252252 var nb * linodego.NodeBalancer
253253
254254 nb , err = l .getNodeBalancerForService (ctx , service )
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..." )
261- sentry .CaptureError (ctx , err )
262- return nil , err
263- }
264-
265- if nb , err = l .buildLoadBalancerRequest (ctx , clusterName , service , nodes ); err != nil {
255+ if err == nil {
256+ if err = l .updateNodeBalancer (ctx , clusterName , service , nodes , nb ); err != nil {
266257 sentry .CaptureError (ctx , err )
267258 return nil , err
268259 }
269- klog .Infof ("created new NodeBalancer (%d) for service (%s)" , nb .ID , serviceNn )
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+ }
270269
271- case nil :
272- if err = l .updateNodeBalancer (ctx , clusterName , service , nodes , nb ); err != nil {
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 {
273276 sentry .CaptureError (ctx , err )
274277 return nil , err
275278 }
276-
277- default :
278- sentry .CaptureError (ctx , err )
279- return nil , err
280279 }
281280
282281 klog .Infof ("NodeBalancer (%d) has been ensured for service (%s)" , nb .ID , serviceNn )
@@ -553,19 +552,16 @@ func (l *loadbalancers) EnsureLoadBalancerDeleted(ctx context.Context, clusterNa
553552 }
554553
555554 nb , err := l .getNodeBalancerForService (ctx , service )
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
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+ }
569565 }
570566
571567 if l .shouldPreserveNodeBalancer (service ) {
0 commit comments