Files
cluster-platform-v3/templates/longhorn.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).