StorageClass Setup

We provide one default storage class per Cluster.

Caution: This is managed by WIIT and can be overwritten at any time. Please create a separate storage class for your changes.

kubectl get storageclasses.storage.k8s.io
NAME                   PROVISIONER                AGE
cinder-csi (default)   cinder.csi.openstack.org   6h45m

Openstack Volume Types

The Openstack volume types sorted by maximum possible IOPS:

  • standard <- used in the default class
  • high-iops

Volume Features

We don’t provide Read-Write-Many Volumes. All Volumes are Read-Write-Once!

Adding Your Own Classes

If you need use one of the other types, you can add your own definitions.

Example:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: my-high-iops-class
provisioner: cinder.csi.openstack.org
volumeBindingMode: WaitForFirstConsumer
parameters:
  type: high-iops

Apply with kubectl apply -f storage-class.yaml.

  • name: Choose a unique one, as we don’t want to interfere with the default names.
  • provisioner: Use the one of your cluster. You can always have a look in the default class to verify the right provider.
  • type: Use one of the official provided types from the Openstack platform (at the time of writing standard and high-iops).
  • volumeBindingMode: There are two options. WaitForFirstConsumer is the suggested one. Because if you are using more than one availability Zone in combination with some pod placement policies Immediate will give you some unpredictable challenges.
    • WaitForFirstConsumer: The volume is created when a pod requests it.
    • Immediate: The volume is created at the moment the pvc is created.

To use the new storage class, you need to change your volume definitions and add the new StorageClass name.