--- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: mongo annotations: kubernetes.io/description: | Storage class for Mongo and similar applications that implement high availability in application layer. provisioner: rook-ceph.rbd.csi.ceph.com parameters: clusterID: rook-ceph csi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisioner csi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph csi.storage.k8s.io/fstype: xfs csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph imageFeatures: layering imageFormat: '2' pool: ks-nvme reclaimPolicy: Retain allowVolumeExpansion: true volumeBindingMode: WaitForFirstConsumer --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: prometheus annotations: kubernetes.io/description: | Storage class for Prometheus and similar applications that implement high availability in application layer. provisioner: rook-ceph.rbd.csi.ceph.com parameters: clusterID: rook-ceph csi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisioner csi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph csi.storage.k8s.io/fstype: xfs csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph imageFeatures: layering imageFormat: '2' pool: ks-nvme reclaimPolicy: Retain allowVolumeExpansion: true volumeBindingMode: WaitForFirstConsumer --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: woodpecker annotations: kubernetes.io/description: | Storage class for Drone, Woodpecker and similar application pipeline runs where Git repos are checked out to. This storage class uses XFS, has no block level redundancy and it's deleted as soon as the pod exits. provisioner: driver.longhorn.io reclaimPolicy: Delete volumeBindingMode: Immediate allowVolumeExpansion: true parameters: dataLocality: best-effort numberOfReplicas: "1" fsType: "xfs" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: gitea annotations: kubernetes.io/description: | Storage class for Gitea and similar applications needing block device level replication with 3 replicas using XFS filesystem and best effort data locality. provisioner: driver.longhorn.io reclaimPolicy: Retain volumeBindingMode: Immediate allowVolumeExpansion: true parameters: dataLocality: best-effort numberOfReplicas: "3" fsType: "xfs" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: rabbitmq annotations: kubernetes.io/description: | Storage class for RabbitMQ and similar applications deployed in highly available fashion utilizing application level replication needing persistent volume. provisioner: rook-ceph.rbd.csi.ceph.com parameters: clusterID: rook-ceph csi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisioner csi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph csi.storage.k8s.io/fstype: xfs csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph imageFeatures: layering imageFormat: '2' pool: ks-nvme reclaimPolicy: Retain allowVolumeExpansion: true volumeBindingMode: WaitForFirstConsumer --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: "null" annotations: kubernetes.io/description: | Storage class for applications insisting on having a PV, but actually do not and for data that can be discarded immediately provisioner: rancher.io/local-path reclaimPolicy: Delete volumeBindingMode: WaitForFirstConsumer