# Longhorn Helm values — REFERENCE ONLY (not consumed by kustomization.yaml). # # The authoritative values are inline in helmrelease.yaml (matching the sibling pattern across # platform/ — cilium, cert-manager, velero, etc.). This file documents the knobs that matter so a # reviewer can see intent without reading the HelmRelease. Keep it in sync with helmrelease.yaml. # # persistence: # defaultClass: false # we own StorageClasses (storageclasses.yaml) # # defaultSettings: # defaultDataPath: ${LONGHORN_DATA_PATH} # cluster-vars knob: dev /var/lib/longhorn # # (dedicated /dev/vdb), prod /data/longhorn # # (a subdirectory of the shared data partition) # defaultReplicaCount: ${LONGHORN_DEFAULT_REPLICA_COUNT} # overlay knob (=3 in dev) # replicaSoftAntiAffinity: false # HARD anti-affinity: one replica per node # replicaZoneSoftAntiAffinity: true # single zone (3 mini-PCs, no failure zones) # replicaAutoBalance: best-effort # rebalance toward one-per-node when a node returns # # # --- I/O throttles: keep Longhorn from starving etcd's WAL fsync. The etcd WAL and every # # Longhorn replica share ONE partition on every prod node (PROD-PROVISIONING.md §2); see # # helmrelease.yaml for the 2026-09-07 incident, the post-drive-replacement measurement, and the # # cost of each value. The two marked "was 5" were measured at 5 on prod on 2026-09-13 while a # # runbook claimed they were 1 — nothing in this repo declared them. --- # concurrentReplicaRebuildPerNodeLimit: 1 # one replica rebuild per node at a time # replicaReplenishmentWaitInterval: 600 # PINNED at Longhorn's default, not changed # concurrentVolumeBackupRestorePerNodeLimit: 1 # was 5: five parallel full-volume restores # snapshotHeavyTaskConcurrentLimit: 1 # was 5: snapshot purge/clone rewrites # backupConcurrentLimit: 2 # PINNED at Longhorn's default (threads per backup) # restoreConcurrentLimit: 2 # PINNED at Longhorn's default (threads per restore) # concurrentAutomaticEngineUpgradePerNodeLimit: 0 # PINNED: engine upgrades are operator-driven # nodeDrainPolicy: block-if-contains-last-replica # PINNED: was live only as Longhorn's default # # NOT AVAILABLE TO US, do not add: replicaRebuildingBandwidthLimit is v2-data-engine only, and # # no rebuild-concurrent-sync-limit Setting exists on 1.12.1 at all. # # storageReservedPercentageForDefaultDisk: "20" # reserve disk headroom (docs/04 guardrail) # storageMinimalAvailablePercentage: "25" # stop scheduling below 25% free # storageOverProvisioningPercentage: "100" # dev: no thin over-provisioning (1:1) # defaultDataLocality: disabled # keep replicas spread for durability # # orphanAutoDeletion — REMOVED 2026-09-13: the key does not exist in the 1.12 chart (renamed # # orphanResourceAutoDeletion, now a list) and was being silently dropped from the render. # # Deliberately NOT replaced; orphan cleanup stays manual. helmrelease.yaml carries the proof. # backupTarget: # TODO(WS-STORAGE, Phase 4): DR target (ADR-0003) # # metrics: # serviceMonitor: # enabled: true # scrape longhorn-manager (port `manager`, 9500); # # without it the whole longhorn_* family is absent # # from the TSDB and the four Longhorn alert rules # # in platform/monitoring/alerts.yaml are INERT