Skip to content

Commit 1e563a2

Browse files
authored
Support KubeVirt CDI Datavolume secret ref (#1885)
Signed-off-by: moadqassem <[email protected]>
1 parent be6a6aa commit 1e563a2

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

pkg/cloudprovider/provider/kubevirt/provider.go

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

pkg/cloudprovider/provider/kubevirt/types/types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ type Template struct {
7878
// PrimaryDisk.
7979
type PrimaryDisk struct {
8080
Disk
81+
// DataVolumeSecretRef is the name of the secret that will be sent to the CDI data importer pod to read basic auth parameters.
82+
DataVolumeSecretRef providerconfigtypes.ConfigVarString `json:"dataVolumeSecretRef,omitempty"`
8183
// ExtraHeaders is a list of strings containing extra headers to include with HTTP transfer requests
8284
// +optional
8385
ExtraHeaders []string `json:"extraHeaders,omitempty"`

0 commit comments

Comments
 (0)