@@ -100,8 +100,10 @@ var CapabilitiesByProvisionerKey = map[string][]StorageCapabilities{
100100 "kubernetes.io/portworx-volume/nfs" : {{rwx , file }, {rwo , file }},
101101 "kubernetes.io/portworx-volume" : {{rwx , block }, {rwx , file }, {rwo , block }, {rwo , file }},
102102 // Portworx CSI
103- "pxd.portworx.com/nfs" : {{rwx , file }, {rwo , file }},
104- "pxd.portworx.com" : {{rwx , block }, {rwx , file }, {rwo , block }, {rwo , file }},
103+ "pxd.portworx.com/nfs" : {{rwx , file }, {rwo , file }},
104+ "pxd.portworx.com" : {{rwx , block }, {rwx , file }, {rwo , block }, {rwo , file }},
105+ "pxd.portworx.com/pure_block" : {{rwx , block }, {rwo , block }, {rwo , file }},
106+ "pxd.portworx.com/pure_fa_file" : {{rwx , file }, {rwo , file }},
105107 // Trident
106108 "csi.trident.netapp.io/ontap-nas" : {{rwx , file }, {rwo , file }},
107109 "csi.trident.netapp.io/ontap-san" : {{rwx , block }},
@@ -305,9 +307,17 @@ var storageClassToProvisionerKeyMapper = map[string]func(sc *storagev1.StorageCl
305307 },
306308 "pxd.portworx.com" : func (sc * storagev1.StorageClass ) string {
307309 // https://docs.portworx.com/portworx-enterprise/operations/operate-kubernetes/storage-operations/manage-kubevirt-vms.html#create-a-storageclass
308- opts := strings .Split (sc .Parameters ["sharedv4_mount_options" ], "," )
309- if slices .Contains (opts , "vers=3.0" ) && slices .Contains (opts , "nolock" ) {
310- return "pxd.portworx.com/nfs"
310+ if val , exists := sc .Parameters ["backend" ]; exists {
311+ if val == "pure_block" {
312+ return "pxd.portworx.com/pure_block"
313+ } else if val == "pure_fa_file" {
314+ return "pxd.portworx.com/pure_fa_file"
315+ }
316+ } else {
317+ opts := strings .Split (sc .Parameters ["sharedv4_mount_options" ], "," )
318+ if slices .Contains (opts , "vers=3.0" ) && slices .Contains (opts , "nolock" ) {
319+ return "pxd.portworx.com/nfs"
320+ }
311321 }
312322 return "pxd.portworx.com"
313323 },
0 commit comments