network: optional. The Virtual Private Cloud (VPC) network in which to create the Managed Lustre instance.
If this property is not specified, the default network is used.
To create a Managed Lustre 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.
filesystem: specifies the fsname for
the Managed Lustre instance. This parameter is used for dynamic provisioning.
The fsname must be an alphanumeric string
of up to eight characters, beginning with an alphabetic character. If you don't
provide a value, the CSI driver generates an fsname with the format
"lfsNNNNN" (for example, "lfs97603").
labels: optional.
Managed Lustre supports labels per instance, as a map of key-value
pairs. The Managed Lustre CSI driver lets you attach user-provided labels to the
instance.
description: optional. A description of the instance. Must be
2,048 characters or fewer.
perUnitStorageThroughput: specifies the per-unit storage throughput
(MB/s/TiB) for the instance. Supported values are 125, 250, 500, and 1000. The default
is 1000.
allowTopologies: optional. Managed Lustre instances are zonal
resources. If this property is not specified, the Managed Lustre
instance is created in the same zone as the CSI controller Driver Pod, and the
volume binding mode defaults to Immediate.
If WaitForFirstConsumer is specified, the topology is set to where the Pod
is scheduled. However, this setting can cause Pods to be blocked while they wait for a
volume to be provisioned.
The Managed Lustre CSI driver supports the topology feature to ensure that persistent volumes and Pods are placed
in the allowed topologies, based on the topology provided in the StorageClass.
mountOptions: optional. Specifies mount.lustre mount options. Managed Lustre volumes
inherit these mount options from the StorageClass in the pv.spec.mountOptions field.
Persistent Volume
The following manifest includes all of the supported fields in the Persistent
Volume.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Managed Lustre CSI driver reference\n\n*** ** * ** ***\n\nThe following manifests describe supported CSI driver fields in the Storage\nClass and Persistent Volume resources.\n\nStorage Class\n-------------\n\nThe following manifest includes all of the supported fields in the Storage\nClass. \n\n apiVersion: storage.k8s.io/v1\n kind: StorageClass\n metadata:\n name: lustre-csi-example-storage-class\n provisioner: lustre.csi.storage.gke.io\n parameters:\n network: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eVPC_NETWORK\u003c/span\u003e\u003c/var\u003e # optional\n filesystem: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eLUSTRE_FILESYSTEM_NAME\u003c/span\u003e\u003c/var\u003e # optional\n labels: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eKEY_1=VALUE_1,KEY_2=VALUE_2,...,KEY_N=VALUE_N\u003c/span\u003e\u003c/var\u003e # optional\n description: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eDESCRIPTION\u003c/span\u003e\u003c/var\u003e # optional\n perUnitStorageThroughput: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003e125 | 250 | 500 | 1000\u003c/span\u003e\u003c/var\u003e # required\n volumeBindingMode: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eWaitForFirstConsumer | Immediate\u003c/span\u003e\u003c/var\u003e # default is Immediate\n allowedTopologies:\n - matchLabelExpressions:\n - key: topology.gke.io/zone\n values:\n - \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eZONE_1\u003c/span\u003e\u003c/var\u003e\n - \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eZONE_2\u003c/span\u003e\u003c/var\u003e\n mountOptions:\n - \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eLUSTRE_MOUNT_OPTIONS\u003c/span\u003e\u003c/var\u003e\n\nReplace the following values:\n\n- `network`: optional. The Virtual Private Cloud (VPC) network in which to create the Managed Lustre instance.\n If this property is not specified, the default network is used.\n\n To create a Managed Lustre instance in a shared\n VPC network, the full name of the\n network must be provided. For example, `projects/`\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e`/global/networks/`\u003cvar translate=\"no\"\u003eVPC_NETWORK_NAME\u003c/var\u003e.\n- `filesystem`: specifies the `fsname` for\n the Managed Lustre instance. This parameter is used for [dynamic provisioning](/kubernetes-engine/docs/how-to/persistent-volumes/lustre-csi-driver-new-volume#new-volume).\n The `fsname` must be an alphanumeric string\n of up to eight characters, beginning with an alphabetic character. If you don't\n provide a value, the CSI driver generates an `fsname` with the format\n `\"lfs`\u003cvar translate=\"no\"\u003eNNNNN\u003c/var\u003e`\"` (for example, `\"lfs97603\"`).\n\n | **Note:** If you plan to mount multiple Managed Lustre instances on the same node, you'll need a separate StorageClass for each instance. Each of these StorageClasses must specify a unique `fsname` value to avoid conflicts when mounting on the same node.\n- `labels`: optional.\n Managed Lustre supports labels per instance, as a map of key-value\n pairs. The Managed Lustre CSI driver lets you attach user-provided labels to the\n instance.\n\n- `description`: optional. A description of the instance. Must be\n 2,048 characters or fewer.\n\n- `perUnitStorageThroughput`: specifies the per-unit storage throughput\n (MB/s/TiB) for the instance. Supported values are `125`, `250`, `500`, and `1000`. The default\n is `1000`.\n\n- `allowTopologies`: optional. Managed Lustre instances are zonal\n resources. If this property is not specified, the Managed Lustre\n instance is created in the same zone as the CSI controller Driver Pod, and the\n volume binding mode defaults to `Immediate`.\n\n If `WaitForFirstConsumer` is specified, the topology is set to where the Pod\n is scheduled. However, this setting can cause Pods to be blocked while they wait for a\n volume to be provisioned.\n\n The Managed Lustre CSI driver supports the [topology feature](https://kubernetes-csi.github.io/docs/topology.html#csi-topology-feature) to ensure that persistent volumes and Pods are placed\n in the allowed topologies, based on the topology provided in the StorageClass.\n- `mountOptions`: optional. Specifies [`mount.lustre`](https://doc.lustre.org/lustre_manual.xhtml#mount.lustre) mount options. Managed Lustre volumes\n inherit these mount options from the StorageClass in the `pv.spec.mountOptions` field.\n\nPersistent Volume\n-----------------\n\nThe following manifest includes all of the supported fields in the Persistent\nVolume. \n\n apiVersion: v1\n kind: PersistentVolume\n metadata:\n name: preprov-pv\n annotations:\n pv.kubernetes.io/provisioned-by: lustre.csi.storage.gke.io\n spec:\n mountOptions:\n - \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eLUSTRE_MOUNT_OPTIONS\u003c/span\u003e\u003c/var\u003e\n ...\n storageClassName: \"\"\n capacity:\n storage: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCAPACITY\u003c/span\u003e\u003c/var\u003e\n accessModes:\n - ReadWriteMany\n persistentVolumeReclaimPolicy: Retain\n volumeMode: Filesystem\n csi:\n driver: lustre.csi.storage.gke.io\n volumeHandle: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eEXISTING_LUSTRE_INSTANCE_NAME\u003c/span\u003e\u003c/var\u003e\n volumeAttributes:\n ip: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eEXISTING_LUSTRE_IP_ADDRESS\u003c/span\u003e\u003c/var\u003e\n filesystem: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eEXISTING_LUSTRE_FSNAME\u003c/span\u003e\u003c/var\u003e\n\nReplace the following values:\n\n- `capacity.storage`: the capacity of the Managed Lustre instance. Refer to [Performance tiers](/managed-lustre/docs/performance#performance_tiers) for the supported minimum and maximum instance capacities.\n- `mountOptions`: Specifies [`mount.lustre`](https://doc.lustre.org/lustre_manual.xhtml#mount.lustre) mount options. This value is inherited from the `mountOptions` field in the StorageClass.\n- `csi.volumeHandle`: an exclusive identifier for a Managed Lustre instance. Must use the following format: \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e/\u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e/\u003cvar translate=\"no\"\u003eINSTANCE_NAME\u003c/var\u003e.\n- `csi.volumeAttributes.ip`: the IP address of the Managed Lustre instance, used for mounting.\n- `csi.volumeAttributes.filesystem`: the file system name of the Managed Lustre instance, which is an eight-character identifier."]]