@@ -188,20 +188,6 @@ func (s *Service) createInstanceImpl(eventObject runtime.Object, openStackCluste
188
188
})
189
189
}
190
190
191
- var serverCreateOpts servers.CreateOptsBuilder = servers.CreateOpts {
192
- Name : instanceSpec .Name ,
193
- ImageRef : imageID ,
194
- FlavorRef : flavorID ,
195
- AvailabilityZone : instanceSpec .FailureDomain ,
196
- Networks : portList ,
197
- UserData : []byte (instanceSpec .UserData ),
198
- SecurityGroups : securityGroups ,
199
- Tags : instanceSpec .Tags ,
200
- Metadata : instanceSpec .Metadata ,
201
- ConfigDrive : & instanceSpec .ConfigDrive ,
202
- AccessIPv4 : accessIPv4 ,
203
- }
204
-
205
191
volume , err := s .getOrCreateRootVolume (eventObject , instanceSpec , imageID )
206
192
if err != nil {
207
193
return nil , fmt .Errorf ("error in get or create root volume: %w" , err )
@@ -235,6 +221,26 @@ func (s *Service) createInstanceImpl(eventObject runtime.Object, openStackCluste
235
221
}
236
222
}
237
223
224
+ // Don't set ImageRef on the server if we're booting from volume
225
+ var serverImageRef string
226
+ if volume == nil {
227
+ serverImageRef = imageID
228
+ }
229
+
230
+ var serverCreateOpts servers.CreateOptsBuilder = servers.CreateOpts {
231
+ Name : instanceSpec .Name ,
232
+ ImageRef : serverImageRef ,
233
+ FlavorRef : flavorID ,
234
+ AvailabilityZone : instanceSpec .FailureDomain ,
235
+ Networks : portList ,
236
+ UserData : []byte (instanceSpec .UserData ),
237
+ SecurityGroups : securityGroups ,
238
+ Tags : instanceSpec .Tags ,
239
+ Metadata : instanceSpec .Metadata ,
240
+ ConfigDrive : & instanceSpec .ConfigDrive ,
241
+ AccessIPv4 : accessIPv4 ,
242
+ }
243
+
238
244
serverCreateOpts = applyRootVolume (serverCreateOpts , volume )
239
245
240
246
serverCreateOpts = applyServerGroupID (serverCreateOpts , instanceSpec .ServerGroupID )
0 commit comments