From e18b93fc1032623873cf8a7f46f7a9ab6a2c66c6 Mon Sep 17 00:00:00 2001 From: Marcus Noble Date: Sat, 7 Sep 2024 07:08:49 +0100 Subject: [PATCH] Added sliding sync to matrix Signed-off-by: Marcus Noble --- manifests/matrix_chart/matrix_chart.yaml | 9 ++ manifests/matrix_chart/sliding-sync.yaml | 114 +++++++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 manifests/matrix_chart/sliding-sync.yaml diff --git a/manifests/matrix_chart/matrix_chart.yaml b/manifests/matrix_chart/matrix_chart.yaml index 7cce3b2..614a68a 100644 --- a/manifests/matrix_chart/matrix_chart.yaml +++ b/manifests/matrix_chart/matrix_chart.yaml @@ -124,6 +124,15 @@ data: { "m.server": "matrix.cluster.fun:443" } + client: |- + { + "m.homeserver": { + "base_url": "https://matrix.cluster.fun" + }, + "org.matrix.msc3575.proxy": { + "url": "https://syncv3.matrix.cluster.fun" + } + } --- diff --git a/manifests/matrix_chart/sliding-sync.yaml b/manifests/matrix_chart/sliding-sync.yaml new file mode 100644 index 0000000..3b3cfc5 --- /dev/null +++ b/manifests/matrix_chart/sliding-sync.yaml @@ -0,0 +1,114 @@ +apiVersion: v1 +kind: Secret +metadata: + name: matrix-sliding-sync + namespace: chat + annotations: + kube-1password: 7kvyfcszfaavj2d7uvl4troagm + kube-1password/vault: Kubernetes + kube-1password/secret-text-parse: "true" + labels: + app.kubernetes.io/name: "matrix" + component: sliding-sync +type: Opaque +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: sliding-sync + namespace: chat + labels: + app.kubernetes.io/name: "matrix" + component: sliding-sync +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: sliding-sync + template: + metadata: + labels: + app.kubernetes.io/name: sliding-sync + spec: + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + fsGroup: 1000 + containers: + - name: "sliding-sync" + image: "ghcr.io/matrix-org/sliding-sync:v0.99.19" + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 8008 + protocol: TCP + env: + - name: SYNCV3_SERVER + value: https://matrix.cluster.fun + - name: SYNCV3_BINDADDR + value: "8008" + - name: SYNCV3_PROM + value: ":9090" + - name: SYNCV3_SECRET + valueFrom: + secretKeyRef: + name: matrix-sliding-sync + key: SYNCV3_SECRET + - name: SYNCV3_DB + valueFrom: + secretKeyRef: + name: matrix-sliding-sync + key: SYNCV3_DB + - name: SYNCV3_DB + value: user=$(whoami) dbname=syncv3 sslmode=disable host=host.docker.internal password='DATABASE_PASSWORD_HERE'" +--- +apiVersion: v1 +kind: Service +metadata: + name: sliding-sync + namespace: chat + labels: + app.kubernetes.io/name: "matrix" + component: sliding-sync + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9000" +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: http + name: web + selector: + app.kubernetes.io/name: sliding-sync +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: sliding-sync + namespace: chat + labels: + app.kubernetes.io/name: "matrix" + component: sliding-sync + annotations: + cert-manager.io/cluster-issuer: letsencrypt + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + nginx.ingress.kubernetes.io/proxy-body-size: "0" +spec: + ingressClassName: nginx + tls: + - hosts: + - syncv3.matrix.cluster.fun + secretName: riot-ingress + rules: + - host: syncv3.matrix.cluster.fun + http: + paths: + - path: / + pathType: ImplementationSpecific + backend: + service: + name: sliding-sync + port: + number: 80 +---