Added matrix
This commit is contained in:
20
k8s/apps/matrix/app.yaml
Normal file
20
k8s/apps/matrix/app.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: matrix
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: apps
|
||||||
|
destination:
|
||||||
|
namespace: matrix
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
source:
|
||||||
|
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: k8s/apps/matrix
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
selfHeal: true
|
||||||
|
prune: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
82
k8s/apps/matrix/external-secrets.yaml
Normal file
82
k8s/apps/matrix/external-secrets.yaml
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
---
|
||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: matrix-postgres-creds
|
||||||
|
spec:
|
||||||
|
target:
|
||||||
|
name: matrix-postgres-creds
|
||||||
|
deletionPolicy: Delete
|
||||||
|
template:
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
synapse_db_password: |-
|
||||||
|
{{ .synapse_db_password }}
|
||||||
|
mas_db_password: |-
|
||||||
|
{{ .mas_db_password }}
|
||||||
|
data:
|
||||||
|
- secretKey: synapse_db_password
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
key: CHANGE_ME
|
||||||
|
property: CHANGE_ME
|
||||||
|
- secretKey: mas_db_password
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
key: CHANGE_ME
|
||||||
|
property: CHANGE_ME
|
||||||
|
---
|
||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: matrix-oidc-config
|
||||||
|
spec:
|
||||||
|
target:
|
||||||
|
name: matrix-oidc-config
|
||||||
|
deletionPolicy: Delete
|
||||||
|
template:
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
mas-oidc.yaml: |
|
||||||
|
upstream_oauth2:
|
||||||
|
providers:
|
||||||
|
- id: authentik
|
||||||
|
human_name: Authentik
|
||||||
|
issuer: https://idm.hexor.cy/application/o/matrix/
|
||||||
|
client_id: {{ .oauth_client_id }}
|
||||||
|
client_secret: {{ .oauth_client_secret }}
|
||||||
|
scope: "openid profile email"
|
||||||
|
claims_imports:
|
||||||
|
localpart:
|
||||||
|
action: require
|
||||||
|
template: "{{ `{{ user.preferred_username }}` }}"
|
||||||
|
displayname:
|
||||||
|
action: suggest
|
||||||
|
template: "{{ `{{ user.name }}` }}"
|
||||||
|
email:
|
||||||
|
action: suggest
|
||||||
|
template: "{{ `{{ user.email }}` }}"
|
||||||
|
set_email_verification: always
|
||||||
|
data:
|
||||||
|
- secretKey: oauth_client_id
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
key: CHANGE_ME
|
||||||
|
property: CHANGE_ME
|
||||||
|
- secretKey: oauth_client_secret
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
key: CHANGE_ME
|
||||||
|
property: CHANGE_ME
|
||||||
15
k8s/apps/matrix/kustomization.yaml
Normal file
15
k8s/apps/matrix/kustomization.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- app.yaml
|
||||||
|
- external-secrets.yaml
|
||||||
|
|
||||||
|
helmCharts:
|
||||||
|
- name: matrix-stack
|
||||||
|
repo: oci://ghcr.io/element-hq/ess-helm
|
||||||
|
version: 26.2.3
|
||||||
|
releaseName: matrix-stack
|
||||||
|
namespace: matrix
|
||||||
|
valuesFile: matrix-stack-values.yaml
|
||||||
|
includeCRDs: true
|
||||||
85
k8s/apps/matrix/matrix-stack-values.yaml
Normal file
85
k8s/apps/matrix/matrix-stack-values.yaml
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
## Matrix server name - appears in @user:matrix.hexor.cy
|
||||||
|
serverName: matrix.hexor.cy
|
||||||
|
|
||||||
|
## Use letsencrypt cluster issuer for all ingresses
|
||||||
|
certManager:
|
||||||
|
clusterIssuer: letsencrypt
|
||||||
|
|
||||||
|
## Global ingress settings
|
||||||
|
ingress:
|
||||||
|
className: traefik
|
||||||
|
annotations:
|
||||||
|
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
|
||||||
|
|
||||||
|
## Disable built-in PostgreSQL - using external database
|
||||||
|
postgres:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
## Disable components we don't need yet
|
||||||
|
matrixRTC:
|
||||||
|
enabled: false
|
||||||
|
hookshot:
|
||||||
|
enabled: false
|
||||||
|
haproxy:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
## Synapse homeserver
|
||||||
|
synapse:
|
||||||
|
enabled: true
|
||||||
|
postgres:
|
||||||
|
host: psql.psql.svc
|
||||||
|
port: 5432
|
||||||
|
user: synapse
|
||||||
|
database: synapse
|
||||||
|
sslMode: prefer
|
||||||
|
password:
|
||||||
|
secret: matrix-postgres-creds
|
||||||
|
secretKey: synapse_db_password
|
||||||
|
media:
|
||||||
|
storage:
|
||||||
|
size: 20Gi
|
||||||
|
maxUploadSize: 100M
|
||||||
|
# nodeSelector:
|
||||||
|
# kubernetes.io/hostname: nas.homenet
|
||||||
|
|
||||||
|
## Matrix Authentication Service
|
||||||
|
matrixAuthenticationService:
|
||||||
|
enabled: true
|
||||||
|
postgres:
|
||||||
|
host: psql.psql.svc
|
||||||
|
port: 5432
|
||||||
|
user: mas
|
||||||
|
database: mas
|
||||||
|
sslMode: prefer
|
||||||
|
password:
|
||||||
|
secret: matrix-postgres-creds
|
||||||
|
secretKey: mas_db_password
|
||||||
|
## Authentik OIDC upstream provider
|
||||||
|
additional:
|
||||||
|
0-oidc:
|
||||||
|
configSecret: matrix-oidc-config
|
||||||
|
configSecretKey: mas-oidc.yaml
|
||||||
|
# nodeSelector:
|
||||||
|
# kubernetes.io/hostname: nas.homenet
|
||||||
|
|
||||||
|
## Element Web client
|
||||||
|
elementWeb:
|
||||||
|
enabled: true
|
||||||
|
ingress:
|
||||||
|
host: chat.hexor.cy
|
||||||
|
# nodeSelector:
|
||||||
|
# kubernetes.io/hostname: nas.homenet
|
||||||
|
|
||||||
|
## Element Admin panel
|
||||||
|
elementAdmin:
|
||||||
|
enabled: true
|
||||||
|
ingress:
|
||||||
|
host: matrix-admin.hexor.cy
|
||||||
|
# nodeSelector:
|
||||||
|
# kubernetes.io/hostname: nas.homenet
|
||||||
|
|
||||||
|
## Well-known delegation on the base domain
|
||||||
|
wellKnownDelegation:
|
||||||
|
enabled: true
|
||||||
|
ingress:
|
||||||
|
host: matrix.hexor.cy
|
||||||
Reference in New Issue
Block a user