From 58daad489d69e7f5da71f7e3569858a7821178b6 Mon Sep 17 00:00:00 2001 From: Marcus Noble Date: Fri, 19 Aug 2022 12:08:32 +0100 Subject: [PATCH] Added whatsapp bridge to matrix Signed-off-by: Marcus Noble --- manifests/matrix_chart/matrix_chart.yaml | 12 +- manifests/matrix_chart/whatsapp_bridge.yaml | 143 ++++++++++++++++++++ 2 files changed, 152 insertions(+), 3 deletions(-) create mode 100644 manifests/matrix_chart/whatsapp_bridge.yaml diff --git a/manifests/matrix_chart/matrix_chart.yaml b/manifests/matrix_chart/matrix_chart.yaml index 25d2b18..bc63ec5 100644 --- a/manifests/matrix_chart/matrix_chart.yaml +++ b/manifests/matrix_chart/matrix_chart.yaml @@ -150,7 +150,7 @@ data: "branding": {}, "integrations_ui_url": "https://scalar.vector.im/", "integrations_rest_url": "https://scalar.vector.im/api", - "integrations_widgets_urls": ["https://scalar.vector.im/_matrix/integrations/v1","https://scalar.vector.im/api","https://scalar-staging.vector.im/_matrix/integrations/v1","https://scalar-staging.vector.im/api","https://scalar-staging.riot.im/scalar/api"], + "integrations_widgets_urls": ["https://scalar.vector.im/_matrix/integrations/v1","https://scalar.vector.im/api","https://scalar-staging.vector.im/_matrix/integrations/v1","https://scalar-staging.vector.im/api","https://scalar-staging.riot.im/scalar/api"], "showLabsSettings": true, "features": { "feature_pinning": "labs", @@ -470,7 +470,7 @@ spec: mountPath: /data/matrix.cluster.fun.log.config subPath: matrix.cluster.fun.log.config - name: signing-key - mountPath: /data/keys + mountPath: /data/keys containers: - name: "synapse" image: "matrixdotorg/synapse:v1.43.0" @@ -491,6 +491,9 @@ spec: - name: synapse-config-homeserver mountPath: /data/homeserver.yaml subPath: homeserver.yaml + - name: mautrix-whatsapp-registration + mountPath: /data/mautrix-whatsapp-registration.yaml + subPath: registration.yaml - name: synapse-config-logging mountPath: /data/matrix.cluster.fun.log.config subPath: matrix.cluster.fun.log.config @@ -534,6 +537,9 @@ spec: - name: synapse-config-homeserver secret: secretName: matrix-synapse-config + - name: mautrix-whatsapp-registration + secret: + secretName: mautrix-whatsapp-registration - name: signing-key persistentVolumeClaim: claimName: chat-matrix-signing-key @@ -544,4 +550,4 @@ spec: emptyDir: {} - name: tmp emptyDir: {} ---- \ No newline at end of file +--- diff --git a/manifests/matrix_chart/whatsapp_bridge.yaml b/manifests/matrix_chart/whatsapp_bridge.yaml new file mode 100644 index 0000000..076b272 --- /dev/null +++ b/manifests/matrix_chart/whatsapp_bridge.yaml @@ -0,0 +1,143 @@ +apiVersion: v1 +kind: Secret +metadata: + name: mautrix-whatsapp-registration + namespace: chat + annotations: + kube-1password: x6lzkpyov4dem5jtk2kimyrnvy + kube-1password/vault: Kubernetes + kube-1password/secret-text-key: registration.yaml + labels: + app.kubernetes.io/name: "mautrix-whatsapp" + component: registration +type: Opaque + +--- + +apiVersion: v1 +kind: Secret +metadata: + name: mautrix-whatsapp-config + namespace: chat + annotations: + kube-1password: ji3e2el66bu56bml3kq3ghyojq + kube-1password/vault: Kubernetes + kube-1password/secret-text-key: config.yaml + labels: + app.kubernetes.io/name: "mautrix-whatsapp" + component: config +type: Opaque + +--- + +apiVersion: v1 +kind: Service +metadata: + name: mautrix-whatsapp + namespace: chat + labels: + app.kubernetes.io/name: mautrix-whatsapp + annotations: + prometheus.io/scrape: "true" + prometheus.io/path: "/metrics" + prometheus.io/port: "9000" +spec: + type: ClusterIP + ports: + - port: 29318 + targetPort: http + protocol: TCP + name: http + selector: + app.kubernetes.io/name: mautrix-whatsapp + +--- + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mautrix-whatsapp + labels: + app.kubernetes.io/name: mautrix-whatsapp +spec: + revisionHistoryLimit: 3 + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app.kubernetes.io/name: mautrix-whatsapp + template: + metadata: + labels: + app.kubernetes.io/name: mautrix-whatsapp + spec: + serviceAccountName: default + automountServiceAccountToken: true + dnsPolicy: ClusterFirst + enableServiceLinks: true + initContainers: + - name: config-copy + image: bash:latest + imagePullPolicy: IfNotPresent + args: + - -c + - | + cp /secrets/* /data/ + volumeMounts: + - name: mautrix-whatsapp-config + mountPath: /secrets/config.yaml + subPath: config.yaml + - name: mautrix-whatsapp-registration + mountPath: /secrets/registration.yaml + subPath: registration.yaml + - name: data + mountPath: /data + containers: + - name: mautrix-whatsapp + image: "dock.mau.dev/mautrix/whatsapp:v0.6.1" + imagePullPolicy: IfNotPresent + env: + - name: "TZ" + value: "UTC" + ports: + - name: http + containerPort: 29318 + protocol: TCP + - name: metrics + containerPort: 9000 + protocol: TCP + volumeMounts: + - name: data + mountPath: /data + livenessProbe: + tcpSocket: + port: 29318 + initialDelaySeconds: 0 + failureThreshold: 3 + timeoutSeconds: 1 + periodSeconds: 10 + readinessProbe: + tcpSocket: + port: 29318 + initialDelaySeconds: 0 + failureThreshold: 3 + timeoutSeconds: 1 + periodSeconds: 10 + startupProbe: + tcpSocket: + port: 29318 + initialDelaySeconds: 0 + failureThreshold: 30 + timeoutSeconds: 1 + periodSeconds: 5 + volumes: + - name: data + emptyDir: {} + - name: mautrix-whatsapp-config + secret: + secretName: mautrix-whatsapp-config + - name: mautrix-whatsapp-registration + secret: + secretName: mautrix-whatsapp-registration +---