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