add deprecation for Azure Disk Kind in csi migration

This commit is contained in:
andyzhangx 2021-07-19 03:21:53 +00:00
parent 18955db416
commit d9b8c5f992
2 changed files with 39 additions and 0 deletions

View File

@ -100,6 +100,9 @@ func (t *azureDiskCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Vol
}
azureSource := volume.AzureDisk
if azureSource.Kind != nil && !strings.EqualFold(string(*azureSource.Kind), managed) {
return nil, fmt.Errorf("kind(%v) is not supported in csi migration", *azureSource.Kind)
}
pv := &v1.PersistentVolume{
ObjectMeta: metav1.ObjectMeta{
// Must be unique per disk as it is used as the unique part of the
@ -151,6 +154,10 @@ func (t *azureDiskCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume)
}
)
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)
}

View File

@ -98,6 +98,7 @@ func TestGetDiskName(t *testing.T) {
}
func TestTranslateAzureDiskInTreeStorageClassToCSI(t *testing.T) {
sharedBlobDiskKind := v1.AzureDedicatedBlobDisk
translator := NewAzureDiskCSITranslator()
cases := []struct {
@ -141,6 +142,19 @@ func TestTranslateAzureDiskInTreeStorageClassToCSI(t *testing.T) {
},
},
},
{
name: "azure disk volume with non-managed kind",
volume: &corev1.Volume{
VolumeSource: corev1.VolumeSource{
AzureDisk: &corev1.AzureDiskVolumeSource{
DiskName: "diskname",
DataDiskURI: "datadiskuri",
Kind: &sharedBlobDiskKind,
},
},
},
expErr: true,
},
}
for _, tc := range cases {
@ -163,6 +177,7 @@ func TestTranslateAzureDiskInTreeStorageClassToCSI(t *testing.T) {
func TestTranslateAzureDiskInTreePVToCSI(t *testing.T) {
translator := NewAzureDiskCSITranslator()
sharedBlobDiskKind := v1.AzureDedicatedBlobDisk
cachingMode := corev1.AzureDataDiskCachingMode("cachingmode")
fsType := "fstype"
readOnly := true
@ -215,6 +230,23 @@ func TestTranslateAzureDiskInTreePVToCSI(t *testing.T) {
},
},
},
{
name: "azure disk volume with non-managed kind",
volume: &corev1.PersistentVolume{
Spec: corev1.PersistentVolumeSpec{
PersistentVolumeSource: corev1.PersistentVolumeSource{
AzureDisk: &corev1.AzureDiskVolumeSource{
CachingMode: &cachingMode,
DataDiskURI: diskURI,
FSType: &fsType,
ReadOnly: &readOnly,
Kind: &sharedBlobDiskKind,
},
},
},
},
expErr: true,
},
}
for _, tc := range cases {