Files
storage/longhorn/helm-values.yaml
Mayne0213 6a13a52924 REFACTOR(storage): integrate ingress in values
- longhorn: move ingress to helm-values, nodes to manifests
- velero: move ingress to velero-ui inline values
2026-01-06 01:56:50 +09:00

150 lines
3.8 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)
# Taint toleration for data plane components (instance-manager, etc.)
taintToleration: "node-role.kubernetes.io/master:NoExecute"
# Node selector for system managed components (instance-manager, engine-image, etc.)
systemManagedComponentsNodeSelector: "longhorn:enabled"
# 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: "enabled" # worker-1 제외
# Longhorn Driver (CSI driver)
longhornDriver:
priorityClass: ~
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoExecute"
nodeSelector:
longhorn: "enabled" # worker-1 제외
# 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: true
ingressClassName: traefik
host: longhorn0213.kro.kr
tls: true
tlsSecret: longhorn-tls
path: /
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
# 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