# Longhorn Helm Values — Single Source of Truth # Used by both bootstrap.sh (Helm install) and ArgoCD (adoption) # Chart: https://github.com/longhorn/charts # # NOTE: Namespace requires PodSecurity=privileged labels (Longhorn needs host access). # bootstrap.sh applies namespace.yaml automatically. For manual install: # kubectl apply -f k8s/bootstrap/phase1-storage/namespace.yaml defaultSettings: # 3-node HA configuration replicaReplenishmentWaitInterval: 600 # 10min before auto-repair replicaSoftAntiAffinity: false # REQUIRED for true HA replicaAutoBalance: best-effort storageMinimalAvailablePercentage: 10 # Performance tuning defaultDataPath: /var/lib/longhorn defaultDataLocality: best-effort backupTarget: "" # TODO: Add MinIO backup target later # Monitoring guaranteedEngineManagerCPU: 12 # mCPU guaranteedReplicaManagerCPU: 12 persistence: defaultClass: true # Make 'longhorn' the default StorageClass defaultClassReplicaCount: 3 defaultFsType: ext4 reclaimPolicy: Delete # CSI plugin must tolerate control-plane taints csi: iscsiadmPath: /usr/sbin/iscsiadm kubeletRootDir: /var/lib/kubelet attacherReplicaCount: 3 provisionerReplicaCount: 3 resizerReplicaCount: 3 snapshotterReplicaCount: 3 # Longhorn manager on all nodes longhornManager: tolerations: - key: node-role.kubernetes.io/control-plane operator: Exists effect: NoSchedule # Driver deployer tolerations longhornDriver: tolerations: - key: node-role.kubernetes.io/control-plane operator: Exists effect: NoSchedule # UI for debugging longhornUI: replicas: 1 # Monitoring (Prometheus ServiceMonitor) # Disabled during bootstrap (Prometheus CRDs not installed yet) # Re-enable via ArgoCD after Prometheus stack is deployed metrics: serviceMonitor: enabled: false