@@ -498,26 +498,28 @@ func (c *K0sController) reconcileMachines(ctx context.Context, cluster *clusterv
498498}
499499
500500func (c * K0sController ) runMachineDeletionSequence (ctx context.Context , logger logr.Logger , cluster * clusterv1.Cluster , kcp * cpv1beta1.K0sControlPlane , machine * clusterv1.Machine ) error {
501- kubeClient , err := c .getKubeClient (ctx , cluster )
502- if err != nil {
503- return fmt .Errorf ("error getting cluster client set for deletion: %w" , err )
504- }
505-
506- waitCtx , cancel := context .WithTimeout (ctx , 60 * time .Second )
507- defer cancel ()
508- err = wait .PollUntilContextCancel (waitCtx , 10 * time .Second , true , func (fctx context.Context ) (bool , error ) {
509- if err := c .markChildControlNodeToLeave (fctx , machine .Name , kubeClient ); err != nil {
510- return false , fmt .Errorf ("error marking controlnode to leave: %w" , err )
501+ if kcp .Status .Ready {
502+ kubeClient , err := c .getKubeClient (ctx , cluster )
503+ if err != nil {
504+ return fmt .Errorf ("error getting cluster client set for deletion: %w" , err )
511505 }
512506
513- ok , err := c .checkMachineLeft (fctx , machine .Name , kubeClient )
507+ waitCtx , cancel := context .WithTimeout (ctx , 60 * time .Second )
508+ defer cancel ()
509+ err = wait .PollUntilContextCancel (waitCtx , 10 * time .Second , true , func (fctx context.Context ) (bool , error ) {
510+ if err := c .markChildControlNodeToLeave (fctx , machine .Name , kubeClient ); err != nil {
511+ return false , fmt .Errorf ("error marking controlnode to leave: %w" , err )
512+ }
513+
514+ ok , err := c .checkMachineLeft (fctx , machine .Name , kubeClient )
515+ if err != nil {
516+ logger .Error (err , "Error checking machine left" , "machine" , machine .Name )
517+ }
518+ return ok , err
519+ })
514520 if err != nil {
515- logger . Error ( err , "Error checking machine left" , "machine" , machine . Name )
521+ return fmt . Errorf ( "error checking machine left: %w" , err )
516522 }
517- return ok , err
518- })
519- if err != nil {
520- return fmt .Errorf ("error checking machine left: %w" , err )
521523 }
522524
523525 if err := c .deleteBootstrapConfig (ctx , machine .Name , kcp ); err != nil {
0 commit comments