add matrix-synapse
This commit is contained in:
		
							
								
								
									
										33
									
								
								clusters/cl01tl/platform/matrix-synapse/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								clusters/cl01tl/platform/matrix-synapse/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| apiVersion: v2 | ||||
| name: matrix-synapse | ||||
| version: 1.0.0 | ||||
| sources: | ||||
|   - https://github.com/element-hq/synapse | ||||
|   - https://github.com/matrix-org/matrix-hookshot | ||||
|   - https://github.com/mautrix/discord | ||||
|   - https://github.com/mautrix/whatsapp | ||||
|   - https://gitlab.com/ananace/charts/-/tree/master/charts/matrix-synapse | ||||
|   - https://github.com/alexlebens/helm-charts/charts/postgres-cluster | ||||
| dependencies: | ||||
|   - name: matrix-synapse | ||||
|     version: 3.9.2 | ||||
|     repository: https://ananace.gitlab.io/charts | ||||
|   - name: matrix-hookshot | ||||
|     version: 0.1.1 | ||||
|     repository: http://alexlebens.github.io/helm-charts | ||||
|   - name: redis | ||||
|     version: 19.1.2 | ||||
|     repository: https://charts.bitnami.com/bitnami | ||||
|   - name: postgres-cluster | ||||
|     alias: postgres-16-cluster | ||||
|     version: 3.1.0 | ||||
|     repository: http://alexlebens.github.io/helm-charts | ||||
|   - name: app-template | ||||
|     alias: cloudflared-synapse | ||||
|     repository: https://bjw-s.github.io/helm-charts/ | ||||
|     version: 3.1.0 | ||||
|   - name: app-template | ||||
|     alias: cloudflared-hookshot | ||||
|     repository: https://bjw-s.github.io/helm-charts/ | ||||
|     version: 3.1.0 | ||||
| appVersion: v1.104.0 | ||||
| @@ -0,0 +1,151 @@ | ||||
| apiVersion: external-secrets.io/v1beta1 | ||||
| kind: ExternalSecret | ||||
| metadata: | ||||
|   name: matrix-synapse-config-secret | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: matrix-synapse-config-secret | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: web | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   secretStoreRef: | ||||
|     kind: ClusterSecretStore | ||||
|     name: vault | ||||
|   data: | ||||
|     - secretKey: oidc.yaml | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/matrix-synapse/config | ||||
|         metadataPolicy: None | ||||
|         property: oidc.yaml | ||||
|     - secretKey: config.yaml | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/matrix-synapse/config | ||||
|         metadataPolicy: None | ||||
|         property: config.yaml | ||||
|  | ||||
| --- | ||||
| apiVersion: external-secrets.io/v1beta1 | ||||
| kind: ExternalSecret | ||||
| metadata: | ||||
|   name: matrix-hookshot-config-secret | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: matrix-hookshot-config-secret | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: web | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   secretStoreRef: | ||||
|     kind: ClusterSecretStore | ||||
|     name: vault | ||||
|   data: | ||||
|     - secretKey: config.yml | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/matrix-synapse/hookshot | ||||
|         metadataPolicy: None | ||||
|         property: config | ||||
|     - secretKey: registration.yml | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/matrix-synapse/hookshot | ||||
|         metadataPolicy: None | ||||
|         property: registration | ||||
|     - secretKey: matrix-hookshot-registration.yaml | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/matrix-synapse/hookshot | ||||
|         metadataPolicy: None | ||||
|         property: registration | ||||
|     - secretKey: passkey.pem | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/matrix-synapse/hookshot | ||||
|         metadataPolicy: None | ||||
|         property: passkey | ||||
|  | ||||
| --- | ||||
| apiVersion: external-secrets.io/v1beta1 | ||||
| kind: ExternalSecret | ||||
| metadata: | ||||
|   name: matrix-synapse-redis-secret | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: matrix-synapse-redis-secret | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: web | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   secretStoreRef: | ||||
|     kind: ClusterSecretStore | ||||
|     name: vault | ||||
|   data: | ||||
|     - secretKey: password | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/matrix-synapse/redis | ||||
|         metadataPolicy: None | ||||
|         property: password | ||||
|  | ||||
| --- | ||||
| apiVersion: external-secrets.io/v1beta1 | ||||
| kind: ExternalSecret | ||||
| metadata: | ||||
|   name: matrix-synapse-cloudflared-synapse-secret | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: matrix-synapse-cloudflared-synapse-secret | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: web | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   secretStoreRef: | ||||
|     kind: ClusterSecretStore | ||||
|     name: vault | ||||
|   data: | ||||
|     - secretKey: cf-tunnel-token | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cloudflare/tunnels/matrix-synapse | ||||
|         metadataPolicy: None | ||||
|         property: token | ||||
|  | ||||
| --- | ||||
| apiVersion: external-secrets.io/v1beta1 | ||||
| kind: ExternalSecret | ||||
| metadata: | ||||
|   name: matrix-synapse-cloudflared-hookshot-secret | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: matrix-synapse-cloudflared-hookshot-secret | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: web | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   secretStoreRef: | ||||
|     kind: ClusterSecretStore | ||||
|     name: vault | ||||
|   data: | ||||
|     - secretKey: cf-tunnel-token | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cloudflare/tunnels/matrix-hookshot | ||||
|         metadataPolicy: None | ||||
|         property: token | ||||
| @@ -0,0 +1,21 @@ | ||||
| apiVersion: monitoring.coreos.com/v1 | ||||
| kind: ServiceMonitor | ||||
| metadata: | ||||
|   name: matrix-synapse | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: matrix-synapse | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: web | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   endpoints: | ||||
|     - port: metrics | ||||
|       interval: 15s | ||||
|       scrapeTimeout: 5s | ||||
|       path: /_synapse/metrics | ||||
|   selector: | ||||
|     matchLabels: | ||||
|       app.kubernetes.io/name: matrix-synapse | ||||
|       app.kubernetes.io/instance: {{ .Release.Name }} | ||||
							
								
								
									
										203
									
								
								clusters/cl01tl/platform/matrix-synapse/values.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										203
									
								
								clusters/cl01tl/platform/matrix-synapse/values.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,203 @@ | ||||
| matrix-synapse: | ||||
|   serverName: alexlebens.dev | ||||
|   publicServerName: matrix.alexlebens.dev | ||||
|   argoCD: true | ||||
|   signingkey: | ||||
|     job: | ||||
|       enabled: true | ||||
|   config: | ||||
|     reportStats: false | ||||
|     enableRegistration: true | ||||
|     trustedKeyServers: [] | ||||
|   extraConfig: | ||||
|     enable_metrics: true | ||||
|     enable_registration_without_verification: false | ||||
|     password_config: | ||||
|       enabled: false | ||||
|     sso: | ||||
|       client_whitelist: | ||||
|         - https://chat.alexlebens.dev/ | ||||
|       update_profile_information: true | ||||
|   synapse: | ||||
|     strategy: | ||||
|       type: Recreate | ||||
|     extraVolumes: | ||||
|       - name: matrix-synapse-config-secret | ||||
|         secret: | ||||
|           secretName: matrix-synapse-config-secret | ||||
|       - name: matrix-hookshot-config-secret | ||||
|         secret: | ||||
|           secretName: matrix-hookshot-config-secret | ||||
|     extraVolumeMounts: | ||||
|       - name: matrix-synapse-config-secret | ||||
|         mountPath: /synapse/config/conf.d/oidc.yaml | ||||
|         subPath: oidc.yaml | ||||
|         readOnly: true | ||||
|       - name: matrix-synapse-config-secret | ||||
|         mountPath: /synapse/config/conf.d/config.yaml | ||||
|         subPath: config.yaml | ||||
|         readOnly: true | ||||
|       - name: matrix-hookshot-config-secret | ||||
|         mountPath: /synapse/config/conf.d/matrix-hookshot-registration.yaml | ||||
|         subPath: matrix-hookshot-registration.yaml | ||||
|         readOnly: true | ||||
|     resources: | ||||
|       requests: | ||||
|         cpu: 100m | ||||
|         memory: 128Mi | ||||
|   workers: | ||||
|     default: | ||||
|       replicaCount: 0 | ||||
|     generic_worker: | ||||
|       enabled: false | ||||
|     pusher: | ||||
|       enabled: false | ||||
|     appservice: | ||||
|       enabled: false | ||||
|     federation_sender: | ||||
|       enabled: false | ||||
|     media_repository: | ||||
|       enabled: false | ||||
|     user_dir: | ||||
|       enabled: false | ||||
|   wellknown: | ||||
|     enabled: true | ||||
|     server: | ||||
|       m.server: matrix.alexlebens.dev:443 | ||||
|     client: | ||||
|       m.homeserver: | ||||
|         base_url: https://matrix.alexlebens.dev | ||||
|   postgresql: | ||||
|     enabled: false | ||||
|   externalPostgresql: | ||||
|     host: matrix-synapse-postgresql-16-cluster-rw | ||||
|     port: 5432 | ||||
|     username: app | ||||
|     database: app | ||||
|     existingSecret: matrix-synapse-postgresql-16-cluster-app | ||||
|     existingSecretPasswordKey: password | ||||
|   redis: | ||||
|     enabled: false | ||||
|   externalRedis: | ||||
|     host: matrix-synapse-redis-headless | ||||
|     port: 6379 | ||||
|     existingSecret: matrix-synapse-redis-secret | ||||
|     existingSecretPasswordKey: password | ||||
|   persistence: | ||||
|     enabled: true | ||||
|     storageClass: ceph-block | ||||
|     accessMode: ReadWriteOnce | ||||
|     size: 10Gi | ||||
|   volumePermissions: | ||||
|     enabled: true | ||||
|     uid: 666 | ||||
|     gid: 666 | ||||
|   ingress: | ||||
|     enabled: false | ||||
| matrix-hookshot: | ||||
|   deployment: | ||||
|     resources: | ||||
|       requests: | ||||
|         cpu: 100m | ||||
|         memory: 128Mi | ||||
|   ingress: | ||||
|     webhook: | ||||
|       enabled: false | ||||
|     appservice: | ||||
|       enabled: false | ||||
|   metrics: | ||||
|     enabled: true | ||||
|     serviceMonitor: | ||||
|       enabled: true | ||||
|   hookshot: | ||||
|     existingSecret: matrix-hookshot-config-secret | ||||
|     existingRegistrationSecret: matrix-hookshot-config-secret | ||||
|     existingPasskeySecret: matrix-hookshot-config-secret | ||||
| redis: | ||||
|   architecture: standalone | ||||
|   auth: | ||||
|     enabled: true | ||||
|     existingSecret: matrix-synapse-redis-secret | ||||
|     existingSecretPasswordKey: password | ||||
|   master: | ||||
|     persistence: | ||||
|       enabled: false | ||||
|   replica: | ||||
|     persistence: | ||||
|       enabled: false | ||||
| postgres-16-cluster: | ||||
|   mode: standalone | ||||
|   cluster: | ||||
|     walStorage: | ||||
|       storageClass: local-path | ||||
|     storage: | ||||
|       storageClass: local-path | ||||
|     monitoring: | ||||
|       enabled: true | ||||
|       prometheusRule: | ||||
|         enabled: false | ||||
|   backup: | ||||
|     enabled: true | ||||
|     endpointURL: https://s3.us-east-2.amazonaws.com | ||||
|     destinationPath: s3://cl01tl-postgresql-backups/matrix-synapse | ||||
|     endpointCredentials: matrix-synapse-postgresql-16-cluster-backup-secret | ||||
|     backupIndex: 1 | ||||
|     retentionPolicy: 14d | ||||
| cloudflared-synapse: | ||||
|   global: | ||||
|     nameOverride: cloudflared-synapse | ||||
|   controllers: | ||||
|     main: | ||||
|       type: deployment | ||||
|       strategy: Recreate | ||||
|       containers: | ||||
|         main: | ||||
|           image: | ||||
|             repository: cloudflare/cloudflared | ||||
|             tag: "2024.5.0" | ||||
|             pullPolicy: IfNotPresent | ||||
|           args: | ||||
|             - tunnel | ||||
|             - --no-autoupdate | ||||
|             - run | ||||
|             - --token | ||||
|             - $(CF_MANAGED_TUNNEL_TOKEN) | ||||
|           env: | ||||
|             - name: CF_MANAGED_TUNNEL_TOKEN | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: matrix-synapse-cloudflared-synapse-secret | ||||
|                   key: cf-tunnel-token | ||||
|           resources: | ||||
|             requests: | ||||
|               cpu: 100m | ||||
|               memory: 128Mi | ||||
| cloudflared-hookshot: | ||||
|   global: | ||||
|     nameOverride: cloudflared-hookshot | ||||
|   controllers: | ||||
|     main: | ||||
|       type: deployment | ||||
|       strategy: Recreate | ||||
|       containers: | ||||
|         main: | ||||
|           image: | ||||
|             repository: cloudflare/cloudflared | ||||
|             tag: "2024.5.0" | ||||
|             pullPolicy: IfNotPresent | ||||
|           args: | ||||
|             - tunnel | ||||
|             - --no-autoupdate | ||||
|             - run | ||||
|             - --token | ||||
|             - $(CF_MANAGED_TUNNEL_TOKEN) | ||||
|           env: | ||||
|             - name: CF_MANAGED_TUNNEL_TOKEN | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: matrix-hookshot-cloudflared-secret | ||||
|                   key: cf-tunnel-token | ||||
|           resources: | ||||
|             requests: | ||||
|               cpu: 100m | ||||
|               memory: 128Mi | ||||
		Reference in New Issue
	
	Block a user