@@ -604,7 +604,11 @@ func (r *Reconciler) drainNode(ctx context.Context, cluster *clusterv1.Cluster,
604
604
605
605
restConfig , err := r .Tracker .GetRESTConfig (ctx , util .ObjectKey (cluster ))
606
606
if err != nil {
607
- log .Error (err , "Error creating a remote client while deleting Machine, won't retry" )
607
+ if errors .Is (err , remote .ErrClusterLocked ) {
608
+ log .V (5 ).Info ("Requeuing drain Node because another worker has the lock on the ClusterCacheTracker" )
609
+ return ctrl.Result {Requeue : true }, nil
610
+ }
611
+ log .Error (err , "Error creating a remote client for cluster while draining Node, won't retry" )
608
612
return ctrl.Result {}, nil
609
613
}
610
614
restConfig = rest .CopyConfig (restConfig )
@@ -700,7 +704,10 @@ func (r *Reconciler) deleteNode(ctx context.Context, cluster *clusterv1.Cluster,
700
704
701
705
remoteClient , err := r .Tracker .GetClient (ctx , util .ObjectKey (cluster ))
702
706
if err != nil {
703
- log .Error (err , "Error creating a remote client for cluster while deleting Machine, won't retry" )
707
+ if errors .Is (err , remote .ErrClusterLocked ) {
708
+ return errors .Wrapf (err , "failed deleting Node because another worker has the lock on the ClusterCacheTracker" )
709
+ }
710
+ log .Error (err , "Error creating a remote client for cluster while deleting Node, won't retry" )
704
711
return nil
705
712
}
706
713
0 commit comments