The following manifests describe supported CSI driver fields in the Storage Class and Persistent Volume resources.
Storage Class
The following manifest includes all of the supported fields in the Storage Class.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: parallelstore-csi-sc
provisioner: parallelstore.csi.storage.gke.io
parameters:
network: VPC_NETWORK_NAME # optional
labels: KEY: VALUE # optional
description: DESCRIPTION # optional
reserved-ip-range: IP_RANGE_NAME # optional
file-stripe-level: FILE_STRIPE_LEVEL # optional
directory-stripe-level: DIRECTORY_STRIPE_LEVEL # optional
volumeBindingMode: VOLUME_BINDING_MODE # default is "immediate"; or "waitForFirstConsumer"
allowedTopologies: # optional
- matchLabelExpressions:
- key: topology.gke.io/zone
values:
- ZONE
mountOptions:
- DFUSE_MOUNT_OPTIONS # disable-caching, enable-wb-cache, thread-count, eq-count
All of the following fields are optional:
network
: The VPC network in which to create the Parallelstore instance. If this property is not specified, the network of the GKE cluster is used.To create a Parallelstore instance in a shared VPC network, the full name of the network must be provided. For example:
projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
labels
: User-specified key-value pairs to attach to this instance.description
: A description of the instance. Must be 2048 characters or less.reserved-ip-range
: The name of an allocated IP address range. If unspecified, all ranges are considered.file-stripe-level
defines file striping settings. Allowed values are:file-stripe-level-balanced
file-stripe-level-max
file-stripe-level-min
See Performance considerations for details.
directory-stripe-level
defines the striping level for directories. Allowed values are:directory-stripe-level-balanced
directory-stripe-level-max
directory-stripe-level-min
See Performance considerations for details.
allowedTopologies
: Specifies the zone in which to create the Parallelstore instance. If this field is not specified, the instance is created in the same zone as the CSI driver deployment, withimmediate
volume binding mode.volumeBindingMode
: Specifies the topology selection mode. Theimmediate
mode uses the value specified inallowedTopologies
. ThewaitForFirstConsumer
mode assigns the topology to the zone in which the GKE pod is scheduled. This can cause pods to be blocked while waiting for a volume to be provisioned.mountOptions
: Specifies dfuse mount options and kernel parameters, includingread_ahead_kb
andmax_ratio
. Parallelstore instance-backed volumes inherit these values in the.spec.mountOptions
field of the persistent volume.Options are:
disable-caching
: Disables all caching. By default, full caching (except for write-back cache) is enabled when mounting a Parallelstore instance in GKE.enable-wb-cache
: Use write-back cache rather than write-through.thread-count
: Number of threads to use. This value is the sum of the number of FUSE threads and the number of event queues.eq-count
: Number of event queues to use.read_ahead_kb
: Size of the read-ahead window in kilobytes.max_ratio
: Allows limiting a particular device to use not more than the given percentage of the write-back cache.
For information about these options, see Performance considerations.
Persistent Volume
The following manifest includes all of the supported fields in the Persistent Volume.
apiVersion: v1
kind: PersistentVolume
metadata:
name: parallelstore-pv
annotations:
pv.kubernetes.io/provisioned-by: parallelstore.csi.storage.gke.io
spec:
storageClassName: parallelstore-csi-sc
capacity:
storage: INSTANCE_SIZE # 12Ti
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain # or "Delete"
volumeMode: Filesystem
mountOptions:
- DFUSE_MOUNT_OPTIONS # disable-caching, enable-wb-cache, thread-count, eq-count, read_ahead_kb, max_ratio
csi:
driver: parallelstore.csi.storage.gke.io
volumeHandle: PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container
volumeAttributes:
accessPoints: ACCESS_POINTS # comma-separated list of IP addresses
network: VPC_NETWORK # optional
capacity
: The capacity of the Parallelstore instance. Must be one of:12Ti
,16Ti
, or20Ti
.mountOptions
: Inherit from themountOptions
field in StorageClass.csi.volumeHandle
: An exclusive identifier for a Parallelstore instance. Must use the format:PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container
csi.volumeAttributes.accessPoints
: A list of IP addresses for Parallelstore server nodes, separated by commas.csi.volumeAttributes.network
: The VPC network of the Parallelstore instance, which must align with the network of the GKE cluster. This field is used to verify that the provided Parallelstore instance is in a valid network before the CSI Driver mounts it.