in plugins/azure_disk.go [141:179]
func (t *azureDiskCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error) {
if pv == nil || pv.Spec.AzureDisk == nil {
return nil, fmt.Errorf("pv is nil or Azure Disk source not defined on pv")
}
var (
azureSource = pv.Spec.PersistentVolumeSource.AzureDisk
// refer to https://github.com/kubernetes-sigs/azuredisk-csi-driver/blob/master/docs/driver-parameters.md
csiSource = &v1.CSIPersistentVolumeSource{
Driver: AzureDiskDriverName,
VolumeAttributes: map[string]string{azureDiskKind: managed},
VolumeHandle: azureSource.DataDiskURI,
}
)
if azureSource.Kind != nil && !strings.EqualFold(string(*azureSource.Kind), managed) {
return nil, fmt.Errorf("kind(%v) is not supported in csi migration", *azureSource.Kind)
}
if azureSource.CachingMode != nil {
csiSource.VolumeAttributes[azureDiskCachingMode] = string(*azureSource.CachingMode)
}
if azureSource.FSType != nil {
csiSource.FSType = *azureSource.FSType
csiSource.VolumeAttributes[azureDiskFSType] = *azureSource.FSType
}
csiSource.VolumeAttributes[azureDiskKind] = managed
if azureSource.ReadOnly != nil {
csiSource.ReadOnly = *azureSource.ReadOnly
}
pv.Spec.PersistentVolumeSource.AzureDisk = nil
pv.Spec.PersistentVolumeSource.CSI = csiSource
return pv, nil
}