33 lines
1.3 KiB
YAML
33 lines
1.3 KiB
YAML
{{- if .Values.longhorn.enabled }}
|
|
# Tenant data StorageClass. Tower's instance overlays don't pin a
|
|
# storageClassName today (they let the cluster default decide). Phase
|
|
# 1 of ADR 0003 just defines this class so Phase 2/3 can flip new
|
|
# instances to bind here without further chart changes.
|
|
#
|
|
# `replicaCount` comes from values; Standalone tier ships replicas=1
|
|
# (durability is hourly S3, not local mirrors).
|
|
apiVersion: storage.k8s.io/v1
|
|
kind: StorageClass
|
|
metadata:
|
|
name: longhorn-tenants
|
|
annotations:
|
|
# Not the cluster default in Phase 1 — explicit opt-in only.
|
|
storageclass.kubernetes.io/is-default-class: "false"
|
|
provisioner: driver.longhorn.io
|
|
allowVolumeExpansion: true
|
|
reclaimPolicy: Delete
|
|
volumeBindingMode: Immediate
|
|
parameters:
|
|
numberOfReplicas: "{{ .Values.longhorn.replicas }}"
|
|
staleReplicaTimeout: "30"
|
|
fromBackup: ""
|
|
# fsType: ext4 is the default; explicit so the contract is in Git.
|
|
fsType: "ext4"
|
|
{{- end }}
|
|
# NOTE: The CSI VolumeSnapshotClass (snapshot.storage.k8s.io/v1) lives
|
|
# in Phase 3 of ADR 0003, alongside the Tower code that consumes it.
|
|
# It depends on the external-snapshotter CRDs which Longhorn does not
|
|
# ship — they're a separate install. Adding it here would fail the
|
|
# initial sync on a fresh cluster. Phase 3 will land both together
|
|
# (snapshotter CRDs + VolumeSnapshotClass + Tower VolumeClone path).
|