Skip to main content
Version: 26.1

PX-CSI PersistentVolumeClaim Reference

PX-CSI uses standard Kubernetes PersistentVolumeClaim resources with PX-CSI-specific annotations for static provisioning and encryption.

PersistentVolumeClaim

FieldDescriptionType
apiVersionThe Kubernetes API version for the PersistentVolumeClaim object. Typically v1.string
kindThe kind of Kubernetes object, always PersistentVolumeClaim.string
metadata.nameThe name of the PersistentVolumeClaim.string
metadata.annotationsPX-CSI-specific annotations for static provisioning and encryption. See PX-CSI-specific annotations below.object
spec.accessModesDefines how the volume can be mounted. Refer to the Kubernetes documentation for options ReadWriteOnce, ReadWriteMany, or ReadOnlyMany.array
spec.resources.requests.storageThe amount of storage requested for the volume.string
spec.storageClassNameThe name of the StorageClass to use for dynamic provisioning. Omit for static provisioning.string
spec.volumeModeDefines whether the volume is a filesystem (Filesystem) or raw block device (Block).string
spec.dataSourceReference to a source for cloning or restoring from snapshots. Supported source types:
- PersistentVolumeClaim (for cloning an existing PVC)
- VolumeSnapshot (for restoring from a snapshot)
Refer to the Kubernetes documentation for details.
object

PX-CSI-specific annotations

AnnotationDescriptionTypeRequired/Optional
portworx.io/pure-volume-nameThe name of the existing volume on the Pure Storage array for static provisioning.
Format:
- FlashArray block: <realm>::<pod_name>::<volume_name> (realm and pod_name are optional)
- FlashArray File Services: <pod_name>::<filesystem_name> (pod_name is optional)
- FlashBlade: <filesystem_name>
stringRequired for static provisioning
portworx.io/pure-array-idThe ID of the Pure Storage array where the volume exists. Use this when you have multiple arrays with volumes of the same name.stringOptional
px/secureWhen set to "true", enables encryption for this specific PVC. Requires a cluster-wide encryption key to be configured. Only supported for FlashArray block volumes.stringOptional

Example PersistentVolumeClaim

Dynamic provisioning

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pure-claim-fa
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
storageClassName: px-fa-direct-access

Static provisioning

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: preprovisioned-fa-pvc
annotations:
portworx.io/pure-volume-name: "<existing-volume-name>" # Format: <realm>::<pod_name>::<volume_name> if using realm and pod
# For ActiveCluster: <stretched-pod-name>::<volume-name>
# portworx.io/pure-array-id: "<your-flasharray-id>" # Optional: specify array ID if you want to import the volume from specific array
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi # Must match the size of the existing volume on FlashArray
storageClassName: px-fa-direct-access