--- apiVersion: apps/v1 kind: StatefulSet metadata: labels: app: syncthing name: syncthing spec: replicas: 1 selector: matchLabels: app: syncthing template: metadata: labels: app: syncthing spec: containers: - image: linuxserver/syncthing:latest name: syncthing ports: - containerPort: 8384 protocol: TCP volumeMounts: - mountPath: /config/ name: syncthing-config-volume - mountPath: /data/ name: syncthing-data-volume - mountPath: /nas/ name: syncthing-nas-volume - mountPath: /music/ name: syncthing-music-volume restartPolicy: Always volumes: - name: syncthing-config-volume persistentVolumeClaim: claimName: syncthing-config-pvc - name: syncthing-data-volume persistentVolumeClaim: claimName: syncthing-data-pvc - name: syncthing-nas-volume persistentVolumeClaim: claimName: syncthing-nas-pvc - name: syncthing-music-volume persistentVolumeClaim: claimName: syncthing-music-pvc --- apiVersion: v1 kind: Service metadata: labels: app: syncthing name: syncthing-svc spec: ports: - name: "8384" port: 8384 targetPort: 8384 nodePort: 31838 type: NodePort selector: app: syncthing --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: syncthing-http annotations: traefik.ingress.kubernetes.io/router.entrypoints: web spec: rules: - host: syncthing.reticulum.lan http: paths: - path: / pathType: Prefix backend: service: name: syncthing-svc port: number: 8384 - host: syncthing.xn--2dkua.xn--tckwe http: paths: - path: / pathType: Prefix backend: service: name: syncthing-svc port: number: 8384 - host: syncthing.argentumcation.com http: paths: - path: / pathType: Prefix backend: service: name: syncthing-svc port: number: 8384 --- apiVersion: v1 kind: PersistentVolume metadata: name: syncthing-config-pv spec: capacity: storage: 100Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: "" nfs: path: /mnt/raid/00_meta/05_service_config/syncthing/ server: 192.168.1.146 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: syncthing-config-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 100Gi volumeName: syncthing-config-pv storageClassName: "" --- apiVersion: v1 kind: PersistentVolume metadata: name: syncthing-data-pv spec: capacity: storage: 100Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: "" nfs: path: /mnt/raid/40_etc/43_syncthing/ server: 192.168.1.146 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: syncthing-data-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 100Gi volumeName: syncthing-data-pv storageClassName: "" --- apiVersion: v1 kind: PersistentVolume metadata: name: syncthing-nas-pv spec: capacity: storage: 100Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: "" nfs: path: /mnt/raid/ server: 192.168.1.146 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: syncthing-nas-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 100Gi volumeName: syncthing-nas-pv storageClassName: "" --- apiVersion: v1 kind: PersistentVolume metadata: name: syncthing-music-pv spec: capacity: storage: 100Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: "" nfs: path: /mnt/raid/30_media/33_music/ server: 192.168.1.146 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: syncthing-music-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 100Gi volumeName: syncthing-music-pv storageClassName: ""