From 0bf93c3227fd4cc5e7d990126a7dff5228047a68 Mon Sep 17 00:00:00 2001 From: David Landry Date: Fri, 24 May 2024 21:40:19 -0400 Subject: [PATCH] chore(syncthing): initial commit --- apps/syncthing/base/ingress.yaml | 31 +++++++++++ .../sync-config-persistentvolumeclaim.yaml | 10 ++++ .../base/sync-data-persistentvolumeclaim.yaml | 10 ++++ apps/syncthing/base/sync-deployment.yaml | 53 +++++++++++++++++++ apps/syncthing/base/sync-service.yaml | 21 ++++++++ 5 files changed, 125 insertions(+) create mode 100644 apps/syncthing/base/ingress.yaml create mode 100644 apps/syncthing/base/sync-config-persistentvolumeclaim.yaml create mode 100644 apps/syncthing/base/sync-data-persistentvolumeclaim.yaml create mode 100644 apps/syncthing/base/sync-deployment.yaml create mode 100644 apps/syncthing/base/sync-service.yaml diff --git a/apps/syncthing/base/ingress.yaml b/apps/syncthing/base/ingress.yaml new file mode 100644 index 0000000..ec708bf --- /dev/null +++ b/apps/syncthing/base/ingress.yaml @@ -0,0 +1,31 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: syncthing + labels: + app.kubernetes.io/name: syncthing + annotations: + cert-manager.io/cluster-issuer: letsencrypt-issuer + nginx.ingress.kubernetes.io/whitelist-source-range: 192.168.1.1/16 + + gethomepage.dev/enabled: "true" + gethomepage.dev/name: Syncthing + gethomepage.dev/group: Files + gethomepage.dev/href: https://sync.int.nc.landry.land + gethomepage.dev/description: Sync files between computers + gethomepage.dev/icon: syncthing +spec: + tls: + - hosts: + - "syncthing.int.nc.landry.land" + rules: + - host: "syncthing.int.nc.landry.land" + http: + paths: + - path: "/" + pathType: Prefix + backend: + service: + name: syncthing + port: + name: http diff --git a/apps/syncthing/base/sync-config-persistentvolumeclaim.yaml b/apps/syncthing/base/sync-config-persistentvolumeclaim.yaml new file mode 100644 index 0000000..1aada4a --- /dev/null +++ b/apps/syncthing/base/sync-config-persistentvolumeclaim.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: sync-config +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/apps/syncthing/base/sync-data-persistentvolumeclaim.yaml b/apps/syncthing/base/sync-data-persistentvolumeclaim.yaml new file mode 100644 index 0000000..9e5393a --- /dev/null +++ b/apps/syncthing/base/sync-data-persistentvolumeclaim.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: sync-data +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/apps/syncthing/base/sync-deployment.yaml b/apps/syncthing/base/sync-deployment.yaml new file mode 100644 index 0000000..cd51009 --- /dev/null +++ b/apps/syncthing/base/sync-deployment.yaml @@ -0,0 +1,53 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: syncthing +spec: + replicas: 1 + selector: + matchLabels: + app: syncthing + strategy: + type: Recreate + template: + metadata: + annotations: + labels: + app: syncthing + spec: + containers: + - env: + - name: PGID + value: "1000" + - name: PUID + value: "1000" + image: syncthing/syncthing + name: syncthing + ports: + - containerPort: 22000 + hostPort: 22000 + protocol: TCP + name: syncthing-tcp + - containerPort: 22000 + hostPort: 22000 + protocol: UDP + name: syncthing-quic + - containerPort: 21027 + hostPort: 21027 + protocol: UDP + name: syncthing-discovery + - containerPort: 8384 + name: http + volumeMounts: + - mountPath: /var/syncthing/config + name: sync-config + - mountPath: /var/syncthing/Sync + name: sync-data + restartPolicy: Always + volumes: + - name: sync-config + persistentVolumeClaim: + claimName: sync-config + - name: sync-data + persistentVolumeClaim: + claimName: sync-data diff --git a/apps/syncthing/base/sync-service.yaml b/apps/syncthing/base/sync-service.yaml new file mode 100644 index 0000000..5c0c215 --- /dev/null +++ b/apps/syncthing/base/sync-service.yaml @@ -0,0 +1,21 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + labels: + name: syncthing +spec: + ports: + - name: "22000" + port: 22000 + targetPort: 22000 + - name: 22000-udp + port: 22000 + protocol: UDP + targetPort: 22000 + - name: "21027" + port: 21027 + protocol: UDP + targetPort: 21027 + selector: + app: syncthing