Storage classes
To configure the workload layer interface for device class selection, review the supported storage class parameters in MicroShift. By understanding these parameters, you can define how storage is provisioned and managed for your specific workload requirements.
The following storage class parameters are supported in MicroShift:
-
The
csi.storage.k8s.io/fstypeparameter selects the file system types. Bothxfsandext4file system types are supported. -
The
topolvm.io/device-classparameter is the name of the device class. If a device class is not provided, the default device class is assumed.
Multiple storage classes can refer to the same device class. You can provide varying sets of parameters for the same backing device class, such as xfs and ext4 variants.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
storageclass.kubernetes.io/is-default-class: "true"
name: topolvm-provisioner
parameters:
"csi.storage.k8s.io/fstype": "xfs"
provisioner: topolvm.io
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion:
# ...
where:
storageclass.kubernetes.io/is-default-class-
Specifies an example of the default storage class. If a PVC does not specify a storage class, this class is assumed. There can only be one default storage class in a MicroShift node. Having no value assigned to this annotation is also supported.
csi.storage.k8s.io/fstype-
Specifies what file system to provision on the volume. Options are "xfs" and "ext4".
provisioner-
Specifies what provisioner should manage this class.
volumeBindingMode-
Specifies whether to provision the volume before a client pod is present or immediately. Options are
WaitForFirstConsumerandImmediate.WaitForFirstConsumeris recommended to ensure that storage is only provisioned for pods that can be scheduled. allowVolumeExpansion-
Specifies if PVCs provisioned from the
StorageClasspermit expansion. The MicroShift LVMS CSI plugin does support volume expansion, but if this value is set tofalse, expansion is blocked.