-
Task
-
Resolution: Unresolved
-
Major
-
None
-
None
We must handle NFS, iSCSI, and FC. It looks like we can use the storage_protocol field of the storage class parameters to differentiate. See the trident logic for how to do this.
Please backport all the way back to 4.12.
iSCSI storage class
allowVolumeExpansion: true apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: annotations: storageclass.kubernetes.io/is-default-class: "true" creationTimestamp: "2024-04-19T14:40:17Z" name: ibox-iscsi resourceVersion: "132289232" uid: 152a7b36-0c84-4225-8a05-3b3bab47fd78 parameters: csi.storage.k8s.io/controller-expand-secret-name: infinibox-creds csi.storage.k8s.io/controller-expand-secret-namespace: infinidat-csi csi.storage.k8s.io/controller-publish-secret-name: infinibox-creds csi.storage.k8s.io/controller-publish-secret-namespace: infinidat-csi csi.storage.k8s.io/fstype: ext4 csi.storage.k8s.io/node-publish-secret-name: infinibox-creds csi.storage.k8s.io/node-publish-secret-namespace: infinidat-csi csi.storage.k8s.io/node-stage-secret-name: infinibox-creds csi.storage.k8s.io/node-stage-secret-namespace: infinidat-csi csi.storage.k8s.io/provisioner-secret-name: infinibox-creds csi.storage.k8s.io/provisioner-secret-namespace: infinidat-csi network_space: iSCSI pool_name: csitesting storage_protocol: iscsi unix_permissions: "777" useCHAP: none provisioner: infinibox-csi-driver reclaimPolicy: Delete volumeBindingMode: Immediate
NFS Storage Class
allowVolumeExpansion: true apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: creationTimestamp: "2024-04-25T15:14:40Z" name: ibox-nfs resourceVersion: "9235897" uid: fec08847-105e-4b9d-aca5-5c6cb0ce22fa mountOptions: - vers=3 - tcp - rsize=262144 - wsize=262144 parameters: csi.storage.k8s.io/controller-expand-secret-name: infinibox-creds csi.storage.k8s.io/controller-expand-secret-namespace: infinidat-csi csi.storage.k8s.io/controller-publish-secret-name: infinibox-creds csi.storage.k8s.io/controller-publish-secret-namespace: infinidat-csi csi.storage.k8s.io/node-publish-secret-name: infinibox-creds csi.storage.k8s.io/node-publish-secret-namespace: infinidat-csi csi.storage.k8s.io/node-stage-secret-name: infinibox-creds csi.storage.k8s.io/node-stage-secret-namespace: infinidat-csi csi.storage.k8s.io/provisioner-secret-name: infinibox-creds csi.storage.k8s.io/provisioner-secret-namespace: infinidat-csi gid: "3000" network_space: NAS pool_name: csitesting storage_protocol: nfs uid: "3000" provisioner: infinibox-csi-driver reclaimPolicy: Delete volumeBindingMode: Immediate
FibreChannel Storage Class:
allowVolumeExpansion: true apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: creationTimestamp: "2024-05-17T16:34:55Z" name: ibox-fc resourceVersion: "220743238" uid: 43e31b4c-12a9-4a65-84bc-26d9d247696e parameters: csi.storage.k8s.io/controller-expand-secret-name: infinibox-creds csi.storage.k8s.io/controller-expand-secret-namespace: infinidat-csi csi.storage.k8s.io/controller-publish-secret-name: infinibox-creds csi.storage.k8s.io/controller-publish-secret-namespace: infinidat-csi csi.storage.k8s.io/fstype: ext4 csi.storage.k8s.io/node-publish-secret-name: infinibox-creds csi.storage.k8s.io/node-publish-secret-namespace: infinidat-csi csi.storage.k8s.io/node-stage-secret-name: infinibox-creds csi.storage.k8s.io/node-stage-secret-namespace: infinidat-csi csi.storage.k8s.io/provisioner-secret-name: infinibox-creds csi.storage.k8s.io/provisioner-secret-namespace: infinidat-csi gid: "3000" pool_name: csitesting storage_protocol: fc uid: "3000" provisioner: infinibox-csi-driver reclaimPolicy: Delete volumeBindingMode: Immediate
Clones: for our driver, it's probably better to use a CSI clone instead of snapshot restore