2026-08-22 18:25:38 +01:00
|
|
|
# Longhorn — this repo's pre-installed storage layer. Same pattern as
|
|
|
|
|
# apps/metallb.yaml: an Application pointing at a Helm chart
|
|
|
|
|
# (apps/longhorn/) that pulls in the official upstream chart. Once this
|
|
|
|
|
# syncs, any app in this cluster can request persistent storage (a
|
|
|
|
|
# PersistentVolumeClaim) and actually get real, replicated storage backed
|
2026-09-03 01:54:37 +01:00
|
|
|
# by the dedicated disk each worker prepared with
|
2026-08-22 18:25:38 +01:00
|
|
|
# talos/patch-longhorn.yaml — see docs/06-longhorn.md.
|
|
|
|
|
#
|
|
|
|
|
# Longhorn needs privileged Pods (it manages block devices directly) and
|
|
|
|
|
# the `open-iscsi`/`util-linux-tools` Talos system extensions baked into
|
|
|
|
|
# your node image — both covered in docs/01-prerequisites.md and
|
|
|
|
|
# docs/02-talos-bootstrap.md. Skipping either means Longhorn's Pods will
|
|
|
|
|
# sit unhealthy no matter how correctly this Application syncs.
|
|
|
|
|
apiVersion: argoproj.io/v1alpha1
|
|
|
|
|
kind: Application
|
|
|
|
|
metadata:
|
|
|
|
|
name: longhorn
|
|
|
|
|
namespace: argocd
|
|
|
|
|
spec:
|
|
|
|
|
project: default
|
|
|
|
|
|
|
|
|
|
source:
|
2026-09-03 01:54:37 +01:00
|
|
|
repoURL: https://tea.ahmza.com/ahmza/k8s-starter-pack.git
|
2026-08-22 18:25:38 +01:00
|
|
|
targetRevision: main
|
|
|
|
|
path: apps/longhorn
|
|
|
|
|
|
|
|
|
|
destination:
|
|
|
|
|
server: https://kubernetes.default.svc
|
|
|
|
|
namespace: longhorn-system
|
|
|
|
|
|
|
|
|
|
syncPolicy:
|
|
|
|
|
automated:
|
|
|
|
|
prune: true
|
|
|
|
|
selfHeal: true
|
2026-09-03 03:09:39 +01:00
|
|
|
# Longhorn's manager Pods need hostPath volumes and privileged mode to
|
|
|
|
|
# manage block devices directly on each node. Kubernetes' baseline Pod
|
|
|
|
|
# Security profile rejects both, so this namespace is explicitly opted
|
|
|
|
|
# into the privileged profile—scoped only to longhorn-system.
|
|
|
|
|
managedNamespaceMetadata:
|
|
|
|
|
labels:
|
|
|
|
|
pod-security.kubernetes.io/enforce: privileged
|
|
|
|
|
pod-security.kubernetes.io/audit: privileged
|
|
|
|
|
pod-security.kubernetes.io/warn: privileged
|
2026-08-22 18:25:38 +01:00
|
|
|
syncOptions:
|
|
|
|
|
- CreateNamespace=true
|