# Longhorn Helm values — use with Talos user volume + kubelet mounts (see talos/talconfig.yaml). # 1) PSA: `kubectl apply -k clusters/noble/bootstrap/longhorn` (privileged namespace) before or after Helm. # 2) Talos: bind `/var/lib/longhorn` → `/var/mnt/longhorn` in kubelet extraMounts — chart hostPath is fixed to /var/lib/longhorn. # Example (run from home-server repo root so -f path resolves): # kubectl apply -k clusters/noble/bootstrap/longhorn # helm repo add longhorn https://charts.longhorn.io && helm repo update # helm upgrade --install longhorn longhorn/longhorn -n longhorn-system --create-namespace \ # -f clusters/noble/bootstrap/longhorn/values.yaml # "helm upgrade --install" needs two arguments: RELEASE_NAME and CHART (e.g. longhorn longhorn/longhorn). # # If you already installed Longhorn without this file: fix Default Settings in the UI or edit each # node's disk path to /var/mnt/longhorn; wrong path → "wrong format" (root fs / overlay). defaultSettings: defaultDataPath: /var/mnt/longhorn # Default 30% reserved often makes small data disks look "full" to the scheduler. storageReservedPercentageForDefaultDisk: "10" # Longhorn UI — same *.apps.noble.lab.pcenicni.dev pattern as Grafana / Headlamp (Traefik LB → cert-manager TLS). ingress: enabled: true ingressClassName: traefik host: longhorn.apps.noble.lab.pcenicni.dev path: / pathType: Prefix tls: true tlsSecret: longhorn-apps-noble-tls secureBackends: false annotations: cert-manager.io/cluster-issuer: letsencrypt-prod # Pre-upgrade Job: keep enabled for normal Helm upgrades (disable only if GitOps sync fights the Job). preUpgradeChecker: jobEnabled: true