@@ -188,20 +188,6 @@ func (s *Service) createInstanceImpl(eventObject runtime.Object, openStackCluste
188188 })
189189 }
190190
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-
205191 volume , err := s .getOrCreateRootVolume (eventObject , instanceSpec , imageID )
206192 if err != nil {
207193 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
235221 }
236222 }
237223
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+
238244 serverCreateOpts = applyRootVolume (serverCreateOpts , volume )
239245
240246 serverCreateOpts = applyServerGroupID (serverCreateOpts , instanceSpec .ServerGroupID )
0 commit comments