diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/azure_file.go b/staging/src/k8s.io/csi-translation-lib/plugins/azure_file.go index d87cc645e60..8588419187c 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/azure_file.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/azure_file.go @@ -34,7 +34,7 @@ const ( AzureFileInTreePluginName = "kubernetes.io/azure-file" separator = "#" - volumeIDTemplate = "%s#%s#%s#%s" + volumeIDTemplate = "%s#%s#%s#%s#%s" // Parameter names defined in azure file CSI driver, refer to // https://github.com/kubernetes-sigs/azurefile-csi-driver/blob/master/docs/driver-parameters.md shareNameField = "sharename" @@ -81,7 +81,7 @@ func (t *azureFileCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Vol if podNamespace != "" { secretNamespace = podNamespace } - volumeID := fmt.Sprintf(volumeIDTemplate, "", accountName, azureSource.ShareName, volume.Name) + volumeID := fmt.Sprintf(volumeIDTemplate, "", accountName, azureSource.ShareName, volume.Name, secretNamespace) var ( pv = &v1.PersistentVolume{ @@ -129,7 +129,12 @@ func (t *azureFileCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume) resourceGroup = v } } - volumeID := fmt.Sprintf(volumeIDTemplate, resourceGroup, accountName, azureSource.ShareName, pv.ObjectMeta.Name) + namespace := defaultSecretNamespace + if azureSource.SecretNamespace != nil { + namespace = *azureSource.SecretNamespace + } + + volumeID := fmt.Sprintf(volumeIDTemplate, resourceGroup, accountName, azureSource.ShareName, pv.ObjectMeta.Name, namespace) var ( // refer to https://github.com/kubernetes-sigs/azurefile-csi-driver/blob/master/docs/driver-parameters.md @@ -137,7 +142,7 @@ func (t *azureFileCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume) Driver: AzureFileDriverName, NodeStageSecretRef: &v1.SecretReference{ Name: azureSource.SecretName, - Namespace: defaultSecretNamespace, + Namespace: namespace, }, ReadOnly: azureSource.ReadOnly, VolumeAttributes: map[string]string{shareNameField: azureSource.ShareName}, @@ -145,10 +150,6 @@ func (t *azureFileCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume) } ) - if azureSource.SecretNamespace != nil { - csiSource.NodeStageSecretRef.Namespace = *azureSource.SecretNamespace - } - pv.Spec.PersistentVolumeSource.AzureFile = nil pv.Spec.PersistentVolumeSource.CSI = csiSource diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/azure_file_test.go b/staging/src/k8s.io/csi-translation-lib/plugins/azure_file_test.go index 59246f07fc0..19ba1f5225b 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/azure_file_test.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/azure_file_test.go @@ -131,7 +131,7 @@ func TestTranslateAzureFileInTreeStorageClassToCSI(t *testing.T) { }, expVol: &corev1.PersistentVolume{ ObjectMeta: metav1.ObjectMeta{ - Name: "#secretname#sharename#name", + Name: "#secretname#sharename#name#default", }, Spec: corev1.PersistentVolumeSpec{ PersistentVolumeSource: corev1.PersistentVolumeSource{ @@ -143,7 +143,7 @@ func TestTranslateAzureFileInTreeStorageClassToCSI(t *testing.T) { }, ReadOnly: true, VolumeAttributes: map[string]string{shareNameField: "sharename"}, - VolumeHandle: "#secretname#sharename#name", + VolumeHandle: "#secretname#sharename#name#default", }, }, AccessModes: []corev1.PersistentVolumeAccessMode{corev1.ReadWriteMany}, @@ -165,7 +165,7 @@ func TestTranslateAzureFileInTreeStorageClassToCSI(t *testing.T) { podNamespace: "test", expVol: &corev1.PersistentVolume{ ObjectMeta: metav1.ObjectMeta{ - Name: "#secretname#sharename#name", + Name: "#secretname#sharename#name#test", }, Spec: corev1.PersistentVolumeSpec{ PersistentVolumeSource: corev1.PersistentVolumeSource{ @@ -177,7 +177,7 @@ func TestTranslateAzureFileInTreeStorageClassToCSI(t *testing.T) { }, ReadOnly: true, VolumeAttributes: map[string]string{shareNameField: "sharename"}, - VolumeHandle: "#secretname#sharename#name", + VolumeHandle: "#secretname#sharename#name#test", }, }, AccessModes: []corev1.PersistentVolumeAccessMode{corev1.ReadWriteMany}, @@ -254,7 +254,7 @@ func TestTranslateAzureFileInTreePVToCSI(t *testing.T) { Namespace: secretNamespace, }, VolumeAttributes: map[string]string{shareNameField: "sharename"}, - VolumeHandle: "#secretname#sharename#uuid", + VolumeHandle: "#secretname#sharename#uuid#secretnamespace", }, }, }, @@ -293,7 +293,7 @@ func TestTranslateAzureFileInTreePVToCSI(t *testing.T) { Namespace: secretNamespace, }, VolumeAttributes: map[string]string{shareNameField: "sharename"}, - VolumeHandle: "rg#secretname#sharename#uuid", + VolumeHandle: "rg#secretname#sharename#uuid#secretnamespace", }, }, },