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 thefsnamefor
the Managed Lustre instance. This parameter is used fordynamic provisioning.
Thefsnamemust 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 anfsnamewith 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 are125,250,500, and1000. The default
is1000.
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 toImmediate.
IfWaitForFirstConsumeris 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 thetopology featureto ensure that persistent volumes and Pods are placed
in the allowed topologies, based on the topology provided in the StorageClass.
mountOptions: optional. Specifiesmount.lustremount options. Managed Lustre volumes
inherit these mount options from the StorageClass in thepv.spec.mountOptionsfield.
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\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."]]