@@ -116,6 +116,7 @@ type Config struct {
116116 EnableNetworkMultiQueue bool
117117 ExtraHeaders []string
118118 ExtraHeadersSecretRef string
119+ DataVolumeSecretRef string
119120
120121 ProviderNetworkName string
121122 SubnetName string
@@ -284,6 +285,11 @@ func (p *provider) getConfig(provSpec clusterv1alpha1.ProviderSpec) (*Config, *p
284285 if len (rawConfig .VirtualMachine .Template .PrimaryDisk .ExtraHeaders ) > 0 {
285286 config .ExtraHeaders = rawConfig .VirtualMachine .Template .PrimaryDisk .ExtraHeaders
286287 }
288+ dataVolumeSecretRef , err := p .configVarResolver .GetConfigVarStringValue (rawConfig .VirtualMachine .Template .PrimaryDisk .DataVolumeSecretRef )
289+ if err != nil {
290+ return nil , nil , fmt .Errorf (`failed to get value of "dataVolumeSecretRef" field: %w` , err )
291+ }
292+ config .DataVolumeSecretRef = dataVolumeSecretRef
287293 extraHeadersSecretRef , err := p .configVarResolver .GetConfigVarStringValue (rawConfig .VirtualMachine .Template .PrimaryDisk .ExtraHeadersSecretRef )
288294 if err != nil {
289295 return nil , nil , fmt .Errorf (`failed to get value of "extraHeadersSecretRef" field: %w` , err )
@@ -457,8 +463,7 @@ func (p *provider) parseOSImageSource(primaryDisk kubevirttypes.PrimaryDisk, con
457463 if err != nil {
458464 return nil , fmt .Errorf (`failed to get value of "primaryDisk.extraHeaders" field: %w` , err )
459465 }
460-
461- return & cdiv1beta1.DataVolumeSource {HTTP : & cdiv1beta1.DataVolumeSourceHTTP {URL : osImage , ExtraHeaders : extraHeaders }}, nil
466+ return & cdiv1beta1.DataVolumeSource {HTTP : & cdiv1beta1.DataVolumeSourceHTTP {URL : osImage , ExtraHeaders : extraHeaders , SecretRef : config .DataVolumeSecretRef }}, nil
462467 case registrySource :
463468 return registryDataVolume (osImage , pullMethod ), nil
464469 case pvcSource :
@@ -478,7 +483,7 @@ func (p *provider) parseOSImageSource(primaryDisk kubevirttypes.PrimaryDisk, con
478483 return nil , fmt .Errorf (`failed to get value of "primaryDisk.extraHeaders" field: %w` , err )
479484 }
480485
481- return & cdiv1beta1.DataVolumeSource {HTTP : & cdiv1beta1.DataVolumeSourceHTTP {URL : osImage , ExtraHeaders : extraHeaders }}, nil
486+ return & cdiv1beta1.DataVolumeSource {HTTP : & cdiv1beta1.DataVolumeSourceHTTP {URL : osImage , ExtraHeaders : extraHeaders , SecretRef : config . DataVolumeSecretRef }}, nil
482487 }
483488 if namespaceAndName := strings .Split (osImage , "/" ); len (namespaceAndName ) >= 2 {
484489 return & cdiv1beta1.DataVolumeSource {PVC : & cdiv1beta1.DataVolumeSourcePVC {Name : namespaceAndName [1 ], Namespace : namespaceAndName [0 ]}}, nil
0 commit comments