Merge pull request #81633 from andyzhangx/azuredisk-migration

fix: add kind parameter in azure disk CSI migration
This commit is contained in:
Kubernetes Prow Robot 2019-08-29 05:30:38 -07:00 committed by GitHub
commit d7ec9f76e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -34,6 +34,7 @@ const (
// Parameter names defined in azure disk CSI driver, refer to // Parameter names defined in azure disk CSI driver, refer to
// https://github.com/kubernetes-sigs/azuredisk-csi-driver/blob/master/docs/driver-parameters.md // https://github.com/kubernetes-sigs/azuredisk-csi-driver/blob/master/docs/driver-parameters.md
azureDiskKind = "kind"
azureDiskCachingMode = "cachingMode" azureDiskCachingMode = "cachingMode"
azureDiskFSType = "fsType" azureDiskFSType = "fsType"
) )
@ -79,7 +80,7 @@ func (t *azureDiskCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Vol
VolumeHandle: azureSource.DataDiskURI, VolumeHandle: azureSource.DataDiskURI,
ReadOnly: *azureSource.ReadOnly, ReadOnly: *azureSource.ReadOnly,
FSType: *azureSource.FSType, FSType: *azureSource.FSType,
VolumeAttributes: map[string]string{}, VolumeAttributes: map[string]string{azureDiskKind: "Managed"},
}, },
}, },
AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce}, AccessModes: []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce},
@ -92,6 +93,9 @@ func (t *azureDiskCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Vol
if *azureSource.FSType != "" { if *azureSource.FSType != "" {
pv.Spec.PersistentVolumeSource.CSI.VolumeAttributes[azureDiskFSType] = *azureSource.FSType pv.Spec.PersistentVolumeSource.CSI.VolumeAttributes[azureDiskFSType] = *azureSource.FSType
} }
if azureSource.Kind != nil {
pv.Spec.PersistentVolumeSource.CSI.VolumeAttributes[azureDiskKind] = string(*azureSource.Kind)
}
return pv, nil return pv, nil
} }
@ -111,17 +115,21 @@ func (t *azureDiskCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume)
VolumeHandle: azureSource.DataDiskURI, VolumeHandle: azureSource.DataDiskURI,
ReadOnly: *azureSource.ReadOnly, ReadOnly: *azureSource.ReadOnly,
FSType: *azureSource.FSType, FSType: *azureSource.FSType,
VolumeAttributes: map[string]string{}, VolumeAttributes: map[string]string{azureDiskKind: "Managed"},
} }
if *azureSource.CachingMode != "" { if azureSource.CachingMode != nil {
csiSource.VolumeAttributes[azureDiskCachingMode] = string(*azureSource.CachingMode) csiSource.VolumeAttributes[azureDiskCachingMode] = string(*azureSource.CachingMode)
} }
if *azureSource.FSType != "" { if azureSource.FSType != nil {
csiSource.VolumeAttributes[azureDiskFSType] = *azureSource.FSType csiSource.VolumeAttributes[azureDiskFSType] = *azureSource.FSType
} }
if azureSource.Kind != nil {
csiSource.VolumeAttributes[azureDiskKind] = string(*azureSource.Kind)
}
pv.Spec.PersistentVolumeSource.AzureDisk = nil pv.Spec.PersistentVolumeSource.AzureDisk = nil
pv.Spec.PersistentVolumeSource.CSI = csiSource pv.Spec.PersistentVolumeSource.CSI = csiSource
pv.Spec.AccessModes = backwardCompatibleAccessModes(pv.Spec.AccessModes) pv.Spec.AccessModes = backwardCompatibleAccessModes(pv.Spec.AccessModes)
@ -144,11 +152,13 @@ func (t *azureDiskCSITranslator) TranslateCSIPVToInTree(pv *v1.PersistentVolume)
} }
// refer to https://github.com/kubernetes-sigs/azuredisk-csi-driver/blob/master/docs/driver-parameters.md // refer to https://github.com/kubernetes-sigs/azuredisk-csi-driver/blob/master/docs/driver-parameters.md
managed := v1.AzureManagedDisk
azureSource := &v1.AzureDiskVolumeSource{ azureSource := &v1.AzureDiskVolumeSource{
DiskName: diskName, DiskName: diskName,
DataDiskURI: diskURI, DataDiskURI: diskURI,
FSType: &csiSource.FSType, FSType: &csiSource.FSType,
ReadOnly: &csiSource.ReadOnly, ReadOnly: &csiSource.ReadOnly,
Kind: &managed,
} }
if csiSource.VolumeAttributes != nil { if csiSource.VolumeAttributes != nil {
@ -160,6 +170,11 @@ func (t *azureDiskCSITranslator) TranslateCSIPVToInTree(pv *v1.PersistentVolume)
if fsType, ok := csiSource.VolumeAttributes[azureDiskFSType]; ok && fsType != "" { if fsType, ok := csiSource.VolumeAttributes[azureDiskFSType]; ok && fsType != "" {
azureSource.FSType = &fsType azureSource.FSType = &fsType
} }
if kind, ok := csiSource.VolumeAttributes[azureDiskKind]; ok && kind != "" {
diskKind := v1.AzureDataDiskKind(kind)
azureSource.Kind = &diskKind
}
} }
pv.Spec.CSI = nil pv.Spec.CSI = nil