50 lines
2.1 KiB
YAML
50 lines
2.1 KiB
YAML
apiVersion: argoproj.io/v1alpha1
|
|
kind: Application
|
|
metadata:
|
|
name: infra-longhorn
|
|
namespace: argocd
|
|
annotations:
|
|
argocd.argoproj.io/sync-wave: "-10" # nền cụm -> sync sớm nhất trong tầng infra
|
|
spec:
|
|
project: default
|
|
source:
|
|
repoURL: https://charts.longhorn.io
|
|
chart: longhorn
|
|
targetRevision: 1.11.3 # pin: Longhorn v1.11.3 (2026-07-01), dòng 1.11 đã chín
|
|
helm:
|
|
releaseName: longhorn
|
|
values: |
|
|
persistence:
|
|
# KHÔNG để longhorn làm default StorageClass — giữ local-path là default của cụm.
|
|
# Workload lakehouse xin tường minh storageClassName: longhorn (checkpoint, kafka PV).
|
|
defaultClass: false
|
|
# 2 bản sao — cụm chỉ có 2 node lưu trữ (2 worker; 3 control-plane bị taint
|
|
# nên longhorn-manager không lên). Hard anti-affinity mặc định cần mỗi replica
|
|
# 1 node khác nhau -> tối đa 2. Chống 1 worker VM chết. KHÔNG chống host Proxmox
|
|
# chết (1 fault domain) -> backup là phòng thủ thật.
|
|
# Thêm worker node thứ 3 sau này -> nâng lại 3 cho prod-parity.
|
|
defaultClassReplicaCount: 2
|
|
defaultSettings:
|
|
defaultDataPath: /var/lib/longhorn # cần đủ chỗ trên MỌI node (đã resize +50-100G)
|
|
preUpgradeChecker:
|
|
# Cài qua ArgoCD/GitOps: TẮT pre-upgrade hook job (chart khuyến nghị rõ trong values.yaml).
|
|
# Hook là helm pre-upgrade -> ArgoCD chạy ở PreSync, trước khi RBAC/CRD được tạo -> kẹt tới
|
|
# activeDeadlineSeconds 900s và chặn toàn bộ Sync. Manager vẫn tự check version lúc runtime.
|
|
jobEnabled: false
|
|
destination:
|
|
server: https://kubernetes.default.svc
|
|
namespace: longhorn-system
|
|
syncPolicy:
|
|
automated:
|
|
prune: true
|
|
selfHeal: true
|
|
syncOptions:
|
|
- CreateNamespace=true
|
|
- ServerSideApply=true # tránh lỗi "metadata.annotations: Too long" trên CRD Longhorn
|
|
retry:
|
|
limit: 5
|
|
backoff:
|
|
duration: 15s
|
|
factor: 2
|
|
maxDuration: 5m
|