@@ -88,13 +88,17 @@ func (r *OpenStackMachine) ValidateUpdate(old runtime.Object) error {
88
88
newOpenStackMachineSpec := newOpenStackMachine ["spec" ].(map [string ]interface {})
89
89
oldOpenStackMachineSpec := oldOpenStackMachine ["spec" ].(map [string ]interface {})
90
90
91
- // allow changes to providerID
92
- delete (oldOpenStackMachineSpec , "providerID" )
93
- delete (newOpenStackMachineSpec , "providerID" )
91
+ // allow changes to providerID once
92
+ if oldOpenStackMachineSpec ["providerID" ] == nil {
93
+ delete (oldOpenStackMachineSpec , "providerID" )
94
+ delete (newOpenStackMachineSpec , "providerID" )
95
+ }
94
96
95
- // allow changes to instanceID
96
- delete (oldOpenStackMachineSpec , "instanceID" )
97
- delete (newOpenStackMachineSpec , "instanceID" )
97
+ // allow changes to instanceID once
98
+ if oldOpenStackMachineSpec ["instanceID" ] == nil {
99
+ delete (oldOpenStackMachineSpec , "instanceID" )
100
+ delete (newOpenStackMachineSpec , "instanceID" )
101
+ }
98
102
99
103
if ! reflect .DeepEqual (oldOpenStackMachineSpec , newOpenStackMachineSpec ) {
100
104
allErrs = append (allErrs , field .Forbidden (field .NewPath ("spec" ), "cannot be modified" ))
0 commit comments