ungleich-k8s/apps/dev/matrix
2021-12-28 13:38:59 +00:00
..
element-web [k8s] update matrix resource for Task#10078 2021-12-28 14:37:05 +01:00
element-web-nginx [k8s] update matrix resource for Task#10078 2021-12-28 14:37:05 +01:00
element-web-nginx-proxy [k8s] update matrix resource for Task#10078 2021-12-28 14:37:05 +01:00
synapse [k8s] update matrix resource for Task#10078 2021-12-28 14:37:05 +01:00
synapse-nginx [k8s] update matrix resource for Task#10078 2021-12-28 14:37:05 +01:00
templates [k8s] update matrix resource for Task#10078 2021-12-28 14:37:05 +01:00
.helmignore [k8s] update matrix resource for Task#10078 2021-12-28 14:37:05 +01:00
Chart.yaml [k8s] update matrix resource for Task#10078 2021-12-28 14:37:05 +01:00
README.md [k8s] update matrix resource for Task#10078 2021-12-28 14:37:05 +01:00
values.yaml [k8s] update matrix for Task#10078 2021-12-28 13:38:59 +00:00

Usage and Components

Note: as of 2021-12-25 this chart is available internally as apps/prod/matrix.

Sample usage

Setting up matrix for ...

  • the matrix domain "fn.nf"
  • the homeserver matrix.fnnf.svc.p10.k8s.ooo
  • element web on m.fn.nf

Using automatic DNS from the p10.k8s.ooo cluster:

helm upgrade --install --create-namespace --namespace fnnf \
    --set homeServerFQDN=fn.nf,elementWebFQDN=m.fn.nf,letsencryptStaging=no,clusterDomain=p10.k8s.ooo matrix matrix/

Setting up matrix.fn.nf in DNS

matrix CNAME matrix-element-web.fnnf.svc.p10.k8s.ooo.

Creating the two json files

  • /.well-known/matrix/server and
  • /.well-known/matrix/client on the fn.nf web server using the samples:
% curl -Ls https://m.fn.nf/.well-known/matrix/server > server
% curl -Ls https://m.fn.nf/.well-known/matrix/client > client

And finally creating a user:

kubectl -n fnnf exec -ti matrix-matrix-synapse-864c4bfb4-4h4cn -c synapse -- register_new_matrix_user http://localhost:8008 -c /config/homeserver.yaml -u admin -p ...  -a

Element-Web

  • Includes config.json that is being populated by values.yaml
  • Includes nginx on port localhost:8080 (http)
  • Includes nginx proxy on port 80+443 (http redirect, https)

The service is reachable as {{ .Release.Name }}-element-web.

Synapse

  • homeserver.yaml is created from a ConfigMap in /config-ro
  • homeserver.yaml is edited using sed to add the postgres password and stored in /config/homeserver.yaml
  • Logging configured to stdout

The service is reachable as {{ .Release.Name }}.

Postgres

Tuned with --no-locale --encoding=UTF8 using POSTGRES_INITDB_ARGS (required by synapse).

The service is reachable as {{ .Release.Name }}-postgres.

See

Missing

  • SMTP settings / secrets (ungleich mail + sops?)

admin user

docker exec -it synapse register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml --help

Resource configuration