Skip to content

Commit ff634b7

Browse files
committed
Don't set ImageRef on server when booting from volume
1 parent 944b265 commit ff634b7

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

pkg/cloud/services/compute/instance.go

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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)

pkg/cloud/services/compute/instance_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -834,6 +834,7 @@ func TestService_ReconcileInstance(t *testing.T) {
834834

835835
createMap := getDefaultServerMap()
836836
serverMap := createMap["server"].(map[string]interface{})
837+
serverMap["imageRef"] = ""
837838
serverMap["block_device_mapping_v2"] = []map[string]interface{}{
838839
{
839840
"delete_on_termination": true,
@@ -880,6 +881,7 @@ func TestService_ReconcileInstance(t *testing.T) {
880881

881882
createMap := getDefaultServerMap()
882883
serverMap := createMap["server"].(map[string]interface{})
884+
serverMap["imageRef"] = ""
883885
serverMap["block_device_mapping_v2"] = []map[string]interface{}{
884886
{
885887
"delete_on_termination": true,

0 commit comments

Comments
 (0)