This commit is contained in:
azykov@mail.ru
2026-08-11 10:17:59 +03:00
parent d4c543ade6
commit bbb72da11d
8 changed files with 152 additions and 1 deletions
@@ -0,0 +1,73 @@
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: syncthing
namespace: syncthing
spec:
interval: 10m
chartRef:
kind: OCIRepository
name: syncthing
driftDetection:
mode: enabled
values:
controllers:
app:
containers:
app:
image:
repository: syncthing/syncthing
tag: "2.1.3"
env:
TZ: Europe/Moscow
probes:
liveness:
enabled: true
readiness:
enabled: true
service:
app:
controller: app
ports:
http:
port: 8384
ingress:
app:
className: traefik
# the GUI has no auth of its own out of the box, so it's gated
# behind Authelia the same way fava/zigbee2mqtt are.
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
traefik.ingress.kubernetes.io/router.middlewares: auth-authelia@kubernetescrd
hosts:
- host: sync.aggtaa.com
paths:
- path: /
pathType: Prefix
service:
identifier: app
port: http
tls:
- secretName: syncthing-tls
hosts:
- sync.aggtaa.com
persistence:
data:
type: persistentVolumeClaim
accessMode: ReadWriteOnce
size: 1Gi
storageClass: longhorn
retain: true
globalMounts:
- path: /var/syncthing
# same nfs-ganesha export webdav and markdown-vault-mcp use
# (10.0.64.5:/exports); mounted at the same container path (/data)
# as webdav so the layout matches (/data/shared/documents/...).
shared:
type: persistentVolumeClaim
existingClaim: syncthing-shared
globalMounts:
- path: /data
@@ -0,0 +1,10 @@
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: syncthing
namespace: syncthing
spec:
interval: 10m
url: oci://ghcr.io/bjw-s-labs/helm/app-template
ref:
tag: "5.0.1"
@@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- helmrepository.yaml
- pv-pvc-shared.yaml
- helmrelease.yaml
@@ -0,0 +1,35 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: syncthing-shared-nfs
spec:
capacity:
storage: 30Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: ""
mountOptions:
- nfsvers=4.1
nfs:
server: 10.0.64.5
path: /exports
claimRef:
namespace: syncthing
name: syncthing-shared
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: syncthing-shared
namespace: syncthing
annotations:
helm.sh/resource-policy: keep
spec:
accessModes:
- ReadWriteMany
storageClassName: ""
volumeName: syncthing-shared-nfs
resources:
requests:
storage: 30Gi
+4
View File
@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: syncthing
+1
View File
@@ -13,3 +13,4 @@ resources:
- webdav.yaml
- fava.yaml
- infcloud.yaml
- syncthing.yaml
+21
View File
@@ -0,0 +1,21 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: syncthing
namespace: flux-system
spec:
interval: 10m
sourceRef:
kind: GitRepository
name: flux-system
path: ./clusters/base/apps/syncthing
prune: true
wait: true
dependsOn:
- name: namespaces
- name: infra
retryInterval: 5s
decryption:
provider: sops
secretRef:
name: sops-age
@@ -14,3 +14,4 @@ resources:
- ../../base/namespaces/webdav.yaml
- ../../base/namespaces/finance.yaml
- ../../base/namespaces/nfs.yaml
- ../../base/namespaces/syncthing.yaml