@@ -347,6 +347,16 @@ func (r *MachineReconciler) reconcileDelete(ctx context.Context, cluster *cluste
347
347
// Return early and don't remove the finalizer if we got an error or
348
348
// the external reconciliation deletion isn't ready.
349
349
350
+ patchHelper , err := patch .NewHelper (m , r .Client )
351
+ if err != nil {
352
+ return ctrl.Result {}, err
353
+ }
354
+ conditions .MarkFalse (m , clusterv1 .MachineNodeHealthyCondition , clusterv1 .DeletingReason , clusterv1 .ConditionSeverityInfo , "" )
355
+ if err := patchMachine (ctx , patchHelper , m ); err != nil {
356
+ conditions .MarkFalse (m , clusterv1 .MachineNodeHealthyCondition , clusterv1 .DeletionFailedReason , clusterv1 .ConditionSeverityInfo , "" )
357
+ return ctrl.Result {}, errors .Wrap (err , "failed to patch Machine" )
358
+ }
359
+
350
360
if ok , err := r .reconcileDeleteInfrastructure (ctx , m ); ! ok || err != nil {
351
361
return ctrl.Result {}, err
352
362
}
@@ -358,16 +368,7 @@ func (r *MachineReconciler) reconcileDelete(ctx context.Context, cluster *cluste
358
368
// We only delete the node after the underlying infrastructure is gone.
359
369
// https://github.com/kubernetes-sigs/cluster-api/issues/2565
360
370
if isDeleteNodeAllowed {
361
- patchHelper , err := patch .NewHelper (m , r .Client )
362
- if err != nil {
363
- return ctrl.Result {}, err
364
- }
365
371
logger .Info ("Deleting node" , "node" , m .Status .NodeRef .Name )
366
- conditions .MarkFalse (m , clusterv1 .MachineNodeHealthyCondition , clusterv1 .DeletingReason , clusterv1 .ConditionSeverityInfo , "" )
367
- if err := patchMachine (ctx , patchHelper , m ); err != nil {
368
- return ctrl.Result {}, errors .Wrap (err , "failed to patch Machine" )
369
- }
370
-
371
372
var deleteNodeErr error
372
373
waitErr := wait .PollImmediate (2 * time .Second , 10 * time .Second , func () (bool , error ) {
373
374
if deleteNodeErr = r .deleteNode (ctx , cluster , m .Status .NodeRef .Name ); deleteNodeErr != nil && ! apierrors .IsNotFound (deleteNodeErr ) {
0 commit comments