From d9b8c5f992cdeeda33180f5ac2683e9445cbc146 Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Mon, 19 Jul 2021 03:21:53 +0000 Subject: [PATCH] add deprecation for Azure Disk Kind in csi migration --- .../csi-translation-lib/plugins/azure_disk.go | 7 ++++ .../plugins/azure_disk_test.go | 32 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk.go b/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk.go index 59976b3e1c8..00030612320 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk.go @@ -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) } diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk_test.go b/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk_test.go index ebc1149279c..ce58f15727f 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk_test.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk_test.go @@ -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 {