Skip to main content
Version: 26.1

PX-CSI StorageClass Reference

PX-CSI uses standard Kubernetes StorageClass resources with a set of PX-CSI-specific parameters for FlashArray and FlashBlade backend storage.

StorageClass

FieldDescriptionType
apiVersionThe Kubernetes API version for the StorageClass object.string
kindThe kind of Kubernetes object, always StorageClass.string
metadata.nameThe name of the StorageClass.string
provisionerSpecifies the CSI driver used for dynamic provisioning. For PX-CSI, this value is pxd.portworx.com.string
reclaimPolicyDefines what happens to a volume when released from its claim. Refer to the Kubernetes documentation for options Delete or Retain.string
volumeBindingModeControls when volume binding and dynamic provisioning occur. Refer to the Kubernetes documentation for options Immediate or WaitForFirstConsumer.string
allowVolumeExpansionSpecifies whether the volume can be dynamically resized.boolean
mountOptionsA list of mount options supported by the backend. Common examples include nfsvers=3, tcp, and nfsvers=4.1.array
parametersPX-CSI-specific configuration parameters described below.object

parameters fields

Common

FieldDescriptionTypeRequired/Optional
parameters.backendDefines the storage backend for the volume. Accepted values:
- pure_block (FlashArray block)
- pure_fa_file (FlashArray File Services)
- pure_file (FlashBlade file)
stringRequired

FlashArray block volumes

FieldDescriptionTypeRequired/Optional
parameters.max_iopsSets a QoS IOPS cap. Range: 100 – 100,000,000.stringOptional
parameters.max_bandwidthSets a QoS bandwidth cap. Units: K, M, G (for example, 10G).stringOptional
parameters.csi.storage.k8s.io/fstypeThe file system type to create on the volume (for example, ext4, xfs).stringOptional
parameters.secureWhen true, enables volume encryption. Requires cluster-wide key setup.booleanOptional
parameters.pure_fa_pod_nameSets the FlashArray pod name to control volume placement. This parameter is:
  • Required for ActiveCluster stretched pods, see Use FlashArray ActiveCluster
  • Required for secure multi-tenancy (realms)
  • Optional for controlling volume placement across multiple arrays
stringRequired for ActiveCluster and realms

FlashArray file services

FieldDescriptionTypeRequired/Optional
parameters.pure_nfs_policyThe name of a pre-created FlashArray NFS policy.stringRequired
parameters.pure_fa_file_systemThe FlashArray file system name where directories or volumes are created.stringRequired
parameters.pure_quota_policyAn optional quota policy name for enforcing size limits.stringOptional
parameters.pure_nfs_endpointOverrides the FlashArray NFSEndPoint from the configuration for this class.stringOptional

FlashBlade file systems

FieldDescriptionTypeRequired/Optional
parameters.pure_export_rulesNFS export rules that apply to the directory (for example, *(rw) or *(rw,no_root_squash)).stringOptional
parameters.pure_nfs_endpointSpecifies a particular FlashBlade NFS endpoint when multiple endpoints are available.stringOptional
parameters.pure_fb_node_groupSpecifies the node group name for FlashBlade//EXA deployments (such as group-05). When specified, the volume is provisioned using node group–based provisioning instead of size-based provisioning.stringRequired for FlashBlade//EXA
parameters.pure_fb_hard_limit_enabledEnables or disables hard quota limits on the file system. Valid values: true or false. Default: true. For FlashBlade//EXA, set to "false".stringOptional
parameters.pure_fb_snapshot_directory_enabledEnables or disables the snapshot directory. Valid values: true or false. Default: false. For FlashBlade//EXA, set to "false".stringOptional
parameters.pure_fb_nfsv3_enabledEnables or disables the NFSv3 protocol. Valid values: true or false. Default: false. For FlashBlade//EXA, set to "false".stringOptional
parameters.pure_fb_nfsv4_1_enabledEnables or disables the NFSv4.1 protocol. Valid values: true or false. Default: true. For FlashBlade//EXA, set to "true".stringOptional
parameters.pure_fb_fast_remove_directory_enabledEnables or disables fast directory removal for FlashBlade file systems. When set to "true", PX-CSI automatically deletes directory contents when you delete a PVC. Valid values: true or false. Default: false.stringOptional
FlashBlade//EXA configuration requirements

For FlashBlade//EXA deployments, the following parameters are required:

  • pure_fb_node_group: Must specify the node group name (for example, group-05)
  • pure_fb_nfsv4_1_enabled: Must be set to "true"
  • pure_fb_nfsv3_enabled: Must be set to "false"
  • pure_fb_snapshot_directory_enabled: Must be set to "false"
  • pure_fb_hard_limit_enabled: Must be set to "false"

Additionally, for HPC workloads, use nconnect=16 in mountOptions to enable multiple TCP connections for improved performance.

Defaults created by PX-CSI

PX-CSI automatically deploys default StorageClass objects during installation:

StorageClassBackendPurpose
px-fa-direct-accessFlashArrayFlashArray block volume provisioning
px-fb-direct-access-nfsv3FlashBladeFlashBlade NFSv3 provisioning
px-fb-direct-access-nfsv4FlashBladeFlashBlade NFSv4 provisioning

To view available StorageClass objects, run the following command:

kubectl get sc

Example StorageClass

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: px-fa-direct-access
provisioner: pxd.portworx.com
allowVolumeExpansion: true
parameters:
backend: pure_block
reclaimPolicy: Delete
volumeBindingMode: Immediate