Files
storage/longhorn/helm-values.yaml
2026-01-05 00:39:12 +09:00

135 lines
3.3 KiB
YAML

# Longhorn Helm Values
# Chart: https://github.com/longhorn/longhorn
# Pre-upgrade checker - disable for ArgoCD/GitOps (per Longhorn docs)
preUpgradeChecker:
jobEnabled: false
upgradeVersionCheck: false
# Persistence settings
persistence:
defaultClass: true # Set Longhorn as default StorageClass
defaultClassReplicaCount: 2 # Number of replicas for high availability
reclaimPolicy: Retain # Keep PV data when PVC is deleted
# Default settings
defaultSettings:
# Storage
defaultReplicaCount: 2 # Default number of replicas for volumes
defaultDataPath: /mnt/longhorn-storage # Data storage path on nodes (NEW: dedicated 50GB disks)
# Backup settings
backupTarget: "" # S3/NFS backup target (configure later if needed)
backupTargetCredentialSecret: ""
# Performance
guaranteedInstanceManagerCPU: 5 # 5% CPU for instance managers
createDefaultDiskLabeledNodes: true # Auto-discover storage on labeled nodes
# Node scheduling
replicaSoftAntiAffinity: true # Prefer to spread replicas across nodes
replicaAutoBalance: best-effort # Auto-balance replicas
storageOverProvisioningPercentage: 200 # Allow 200% overprovisioning
storageMinimalAvailablePercentage: 10 # Keep 10% storage available
# Snapshot and backup
snapshotDataIntegrity: fast-check # Fast integrity check for snapshots
snapshotDataIntegrityImmediateCheckAfterSnapshotCreation: false
# Auto cleanup
orphanAutoDeletion: true # Auto delete orphaned resources
# Longhorn Manager (control plane)
longhornManager:
priorityClass: ~
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoExecute"
nodeSelector: {}
# Longhorn Driver (CSI driver)
longhornDriver:
priorityClass: ~
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoExecute"
nodeSelector: {}
# Longhorn UI
longhornUI:
replicas: 1
priorityClass: ~
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoExecute"
nodeSelector: {}
# CSI components
csi:
attacherReplicaCount: 1
provisionerReplicaCount: 1
resizerReplicaCount: 1
snapshotterReplicaCount: 1
# Ingress for Longhorn UI
ingress:
enabled: false # We'll create a separate Ingress resource
# Service configuration
service:
ui:
type: ClusterIP
nodePort: null
# Monitoring
metrics:
serviceMonitor:
enabled: true
additionalLabels:
release: prometheus
enablePSP: false # Pod Security Policy (deprecated in K8s 1.25+)
# Resources - NO CPU LIMITS per user request
resources:
longhornManager:
requests:
cpu: 100m
memory: 256Mi
limits:
# cpu: not set to prevent throttling
memory: 512Mi
longhornDriver:
requests:
cpu: 50m
memory: 128Mi
limits:
# cpu: not set to prevent throttling
memory: 256Mi
longhornUI:
requests:
cpu: 50m
memory: 64Mi
limits:
# cpu: not set to prevent throttling
memory: 128Mi
# Default StorageClass parameters
defaultStorageClass:
enabled: true
name: longhorn
defaultClass: true
reclaimPolicy: Retain
allowVolumeExpansion: true
parameters:
numberOfReplicas: "2"
staleReplicaTimeout: "2880" # 48 hours
fromBackup: ""
fsType: "ext4"
dataLocality: "disabled" # Allow scheduling on any node