Files
nixos/manifests/helm/longhorn.yaml
T

180 lines
4.3 KiB
YAML
Raw Normal View History

2025-07-03 01:36:59 -05:00
apiVersion: v1
kind: Namespace
metadata:
name: longhorn-system
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: longhorn
namespace: longhorn-system
spec:
interval: "24h"
url: "https://charts.longhorn.io"
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: longhorn
namespace: longhorn-system
spec:
interval: 10m
2026-04-17 15:43:57 -05:00
dependsOn:
2026-04-19 01:04:41 -05:00
- name: tailscale
2026-04-17 15:43:57 -05:00
namespace: tailscale
- name: kyverno
2026-04-19 01:04:41 -05:00
namespace: kyverno-system
2025-07-03 01:36:59 -05:00
chart:
spec:
chart: longhorn
2026-08-03 20:46:20 -05:00
version: "1.11.3"
2025-07-03 01:36:59 -05:00
sourceRef:
kind: HelmRepository
name: longhorn
interval: "1h"
values:
defaultSettings:
createDefaultDiskLabeledNodes: true
2025-12-29 00:41:55 -06:00
replicaSoftAntiAffinity: true
replicaAutoBalance: "best-effort"
2025-09-09 23:27:48 -05:00
persistence:
# This should go back to 3 when I have more cluster
2025-12-29 00:41:55 -06:00
defaultClassReplicaCount: 3
2025-07-03 01:36:59 -05:00
---
apiVersion: v1
kind: ConfigMap
metadata:
name: longhorn-custom-path
namespace: longhorn-system
data:
2025-11-02 23:45:16 -06:00
# yamllint disable-line rule:line-length
2025-07-03 01:36:59 -05:00
PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin
---
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: add-host-path-to-longhorn
annotations:
policies.kyverno.io/title: Add Environment Variables from ConfigMap
policies.kyverno.io/subject: Pod
policies.kyverno.io/category: Other
policies.kyverno.io/description: >-
Longhorn invokes executables on the host system, and needs
to be aware of the host systems PATH. This modifies all
deployments such that the PATH is explicitly set to support
NixOS based systems.
spec:
rules:
- name: add-env-vars
match:
resources:
kinds:
- Pod
namespaces:
- longhorn-system
mutate:
patchStrategicMerge:
spec:
initContainers:
- (name): "*"
envFrom:
- configMapRef:
name: longhorn-custom-path
containers:
- (name): "*"
envFrom:
- configMapRef:
name: longhorn-custom-path
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
namespace: longhorn-system
name: basic-auth
spec:
basicAuth:
realm: Traefik
secret: longhorn-ui
---
apiVersion: networking.k8s.io/v1
kind: Ingress
2025-08-15 22:39:00 -05:00
metadata:
name: longhorn-ingress-tailscale
namespace: longhorn-system
spec:
ingressClassName: tailscale
defaultBackend:
service:
name: longhorn-frontend
port:
number: 80
tls:
- hosts:
- longhorn
---
apiVersion: networking.k8s.io/v1
kind: Ingress
2025-07-03 01:36:59 -05:00
metadata:
name: longhorn-ingress
namespace: longhorn-system
annotations:
ingressClassName: traefik
2025-11-02 23:45:16 -06:00
# yamllint disable-line rule:line-length
2025-07-03 01:36:59 -05:00
traefik.ingress.kubernetes.io/router.middlewares: longhorn-system-basic-auth@kubernetescrd
# Set body size to 10G to allow uploading large things
traefik.ingress.kubernetes.io/buffering: |
maxrequestbodybytes: 10000000000
memrequestbodybytes: 20000000000
spec:
ingressClassName: traefik
rules:
2025-11-02 23:45:16 -06:00
- &host
host: longhorn.cluster
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: longhorn-frontend
port:
number: 80
- <<: *host
host: longhorn.kubernetes
2026-08-03 20:46:20 -05:00
- <<: *host
host: longhorn.k3s.nebula.thehellings.com
- <<: *host
host: longhorn.k3s.thehellings.lan
2025-07-07 21:48:47 -05:00
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: longhorn-default
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
parameters:
backupTargetName: default
numberOfReplicas: "2"
staleReplicaTimeout: "2880"
fromBackup: ""
fsType: ext4
diskSelector: "hdd,large"
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
2025-12-29 00:41:55 -06:00
name: longhorn-3
2025-07-07 21:48:47 -05:00
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
parameters:
backupTargetName: default
2025-12-29 00:41:55 -06:00
numberOfReplicas: "3"
2025-07-07 21:48:47 -05:00
staleReplicaTimeout: "2880"
fromBackup: ""
fsType: ext4
2025-12-29 00:41:55 -06:00
diskSelector: "hdd,large"