apiVersion: v1 kind: ConfigMap metadata: name: synapse-config-tmpl namespace: matrix data: homeserver.yaml: | server_name: "starling.mynest.love" public_baseurl: "https://starling.mynest.love" media_store_path: "/data/media_store" uploads_path: "/data/uploads" serve_server_wellknown: true serve_client_wellknown: true extra_well_known_client_content: "org.matrix.msc4143.rtc_foci": - type: livekit livekit_service_url: "https://matrix-rtc.mynest.love" matrix_rtc: transports: - type: livekit livekit_service_url: "https://matrix-rtc.mynest.love" listeners: - port: 8008 tls: false type: http x_forwarded: true resources: - names: [client, federation] compress: false database: name: psycopg2 args: user: "${POSTGRES_USER}" password: "${POSTGRES_PASSWORD}" database: "synapse" host: "postgres-svc" cp_min: 5 cp_max: 10 experimental_features: msc4140_enabled: true msc4143_enabled: true msc4222_enabled: true matrix_authentication_service: enabled: true endpoint: "http://mas-svc:8080" issuer: "https://mas.mynest.love/" secret: "${MAS_SYNAPSE_CLIENT_SECRET}" macaroon_secret_key: "${SYNAPSE_MACAROON_KEY}" form_secret: "${SYNAPSE_REGISTRATION_SECRET}" registration_shared_secret: "${SYNAPSE_REGISTRATION_SECRET}" enable_registration: false report_stats: false --- apiVersion: apps/v1 kind: Deployment metadata: name: synapse namespace: matrix annotations: keel.sh/policy: "all" keel.sh/match-tag: "true" keel.sh/schedule: "0 3 * * *" spec: replicas: 1 selector: matchLabels: app: synapse template: metadata: labels: app: synapse spec: initContainers: - name: generate-config image: alpine:latest command: ["/bin/sh", "-c", "apk add gettext && envsubst < /tmpl/homeserver.yaml > /data/homeserver.yaml && chown -R 991:991 /data"] envFrom: - secretRef: name: matrix-secrets volumeMounts: - name: config-tmpl mountPath: /tmpl/homeserver.yaml subPath: homeserver.yaml - name: synapse-data mountPath: /data containers: - name: synapse image: matrixdotorg/synapse:latest ports: - containerPort: 8008 env: - name: SYNAPSE_CONFIG_PATH value: "/data/homeserver.yaml" volumeMounts: - name: synapse-data mountPath: /data volumes: - name: synapse-data persistentVolumeClaim: claimName: synapse-data - name: config-tmpl configMap: name: synapse-config-tmpl