ArgoCD was reporting all 6 ExternalSecrets as OutOfSync because the live CRs had conversionStrategy/decodingStrategy/metadataPolicy fields filled in by the CRD defaults that werent in the chart manifests. Stamping them explicitly so the diff is clean. Tower UI will now show Provisioning state correctly transition to Ready.
35 lines
1.5 KiB
YAML
35 lines
1.5 KiB
YAML
{{- if .Values.longhorn.enabled }}
|
|
# Tenant data StorageClass. Tower's instance overlays bind here in
|
|
# Phase 6 (Tower stamps storageClassName=longhorn-tenants on new
|
|
# instance PVCs). Existing instances on local-path stay where they
|
|
# are — Longhorn additive, doesn't replace.
|
|
#
|
|
# `replicaCount` comes from values; Standalone tier ships replicas=1
|
|
# (durability is hourly S3 backup, not local mirrors).
|
|
apiVersion: storage.k8s.io/v1
|
|
kind: StorageClass
|
|
metadata:
|
|
name: longhorn-tenants
|
|
annotations:
|
|
# Not the cluster default — explicit opt-in only via Tower's
|
|
# PVC-stamp logic. (Two default storage classes is a k8s
|
|
# misconfig; k3s already provides local-path as default.)
|
|
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
|
|
# AND the external-snapshotter CRDs (which Longhorn does not ship —
|
|
# they're a separate install). Adding VolumeSnapshotClass here would
|
|
# fail the initial sync. Phase 3 lands all three together: snapshotter
|
|
# CRDs + controller + VolumeSnapshotClass + Tower VolumeClone path.
|