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 Everpure 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 Everpure Storage array to use for volume provisioning or importing volumes.

Use cases
- Dynamic provisioning: Target a specific array for new volume creation when multiple arrays are connected to the cluster. This setting takes precedence over the StorageClass parameter of the same name.
- Static provisioning: Specify the array from which to import the volume when multiple arrays contain volumes with the same name.
For more information, see Control volume placement using array IDs.
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
annotations:
portworx.io/pure-array-id: "1b07343b-xxxx-xxxx-xxxx-8b5e8cdeb16c" # Optional: target specific array
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