@@ -439,12 +439,17 @@ func (r *OpenStackMachineReconciler) getOrCreate(logger logr.Logger, cluster *cl
439
439
}
440
440
441
441
if instanceStatus == nil {
442
- instanceSpec := machineToInstanceSpec (openStackCluster , machine , openStackMachine , userData )
443
- logger .Info ("Machine does not exist, creating Machine" , "name" , openStackMachine .Name )
444
- instanceStatus , err = computeService .CreateInstance (openStackMachine , openStackCluster , instanceSpec , cluster .Name )
445
- if err != nil {
446
- conditions .MarkFalse (openStackMachine , infrav1 .InstanceReadyCondition , infrav1 .InstanceCreateFailedReason , clusterv1 .ConditionSeverityError , err .Error ())
447
- return nil , fmt .Errorf ("create OpenStack instance: %w" , err )
442
+ if openStackMachine .Spec .InstanceID != nil {
443
+ logger .Info ("Not reconciling machine in failed state. The previously existing OpenStack instance is no longer available" )
444
+ return nil , nil
445
+ } else {
446
+ instanceSpec := machineToInstanceSpec (openStackCluster , machine , openStackMachine , userData )
447
+ logger .Info ("Machine does not exist, creating Machine" , "name" , openStackMachine .Name )
448
+ instanceStatus , err = computeService .CreateInstance (openStackMachine , openStackCluster , instanceSpec , cluster .Name )
449
+ if err != nil {
450
+ conditions .MarkFalse (openStackMachine , infrav1 .InstanceReadyCondition , infrav1 .InstanceCreateFailedReason , clusterv1 .ConditionSeverityError , err .Error ())
451
+ return nil , fmt .Errorf ("create OpenStack instance: %w" , err )
452
+ }
448
453
}
449
454
}
450
455
0 commit comments