Skip to main content

SCS KaaS default storage class: Implementation and Testing Notes

Implementation notes

A StorageClass is made default by using the storageclass.kubernetes.io/is-default-class annotation; a standardized name is not given. ReadWriteOnce must be supported by the volume, and it must be protected against data loss due to hardware failures. Therefore, volumes must not be bound to the lifecycle of a Kubernetes node and, at best, be backed by some kind of redundant storage. Guarantees for latency, bandwidth, IOPS and so on are not given.

The cost-intensive part of this standard would be the hardware failure protection by binding the StorageClass to redundant, non-lifecycle bound storage, since this would mean that storage needs to be provided in a higher capacity to achieve the same usable capacity.

Automated tests

Notes

The test for the SCS Kaas Default storage class checks if a default storage class is available and if this storage class can be used to create a PersistentVolume from a PersistentVolumeClaim for a container.

Implementation

The script k8s-default-storage-class-check.py connects to an existing K8s cluster and checks for the availability of a default storage class. This can also be done via Sonobuoy.

Manual tests

None.