Matrix
Installation
Matrix UI : Element
Basic
The configuration keys you can change are the following :
hostname: The FQDN which will be configured to access the Element UI in a browser.sso:hostname: The IDP FQDN, this will serve to redirect users and should be accessible from the browser.
synapse:hostname: The synapse FQDN the Element UI should try to connect to. As the previous FQDN it should be accessible from the user browser.
tls: Determine whether teh Element UI should use TLS for its UI.
Advanced
The configuration keys you can change are the following :
configJson: the content will be made into theconfig.jsonthat Element is expecting.- using this configuration key will replace the default configuration file (eg: configurations keys
default_server_config,logout_redirect_url&sso_redirect_options, ...)
- using this configuration key will replace the default configuration file (eg: configurations keys
replicaCount: The number of pods you want runningpodAnnotations: Additional annotations to set on the pods.podLabels: Additional labels to set on the pods.ingress:className: Correspond to thespec.ingressClassNamefield in an ingress definition.annotations: Annotations which should be added to the ingress.hosts: This is an arrayhost: The FQDN which should be associated to the Element UIpaths: This is an arraypath: Correspond to thespec.rules.http.paths.pathfield in an ingress definition.pathType: Correspond to thespec.rules.http.paths.pathTypefield in an ingress definition.
tls: Correspond to thespec.tlsfield in an ingress definition.
resources:limits: Limits describes the maximum amount of compute resources allowed. The kindcpu&memoryare supported.requests: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. The kindcpu&memoryare supported.
Matrix Backend : Synapse
Basic
The configuration keys you can change are the following :
hostname: The FQDN which will be configured to access the Element UI in a browser.servername: A unique name that'll identify this specific synapse instancekeycloakCA: The keycloak CA certificate that will be used by synapse to validate its connection to Keycloak.- This is not necessary if your keycloak Certificate can be automatically validated (eg: let's encrypt certificate with internet access)
db: The PostgrSQL database in which synapse will store its informationname: The Database nameuser: A user with access to the Databasepassword: The user's passwordhost: Hostname (without port) of the PostgreSQL databaseport: port on which the PostgreSQL database is listening
sso: SSO configuration for the client idsynapsehostname: The IDP FQDN, this will serve to redirect users and should be accessible from the browser.clientSecret: The client secret associated to the client IDsynapse.
persistance:enabled: Whether the synapse medias (uploaded files) should be in a persistant volume or ephemeral.size: A valid Kubernetes PersistentVolume size for the volume.accessMode: A valid Kubernetes PersistentVolume accessMode for the volume.storageClass: A valid Kubernetes PersistentVolume storageClass for the volume.
Advanced
The configuration keys you can change are the following :
additionalHomeserverConfig: You should provide a here a valid synapse main configuration file. This will be appended to the basic configurations already used.logConfig: You should provide here a valid synapse log file.replicaCount: The number of pods you want runningpodAnnotations: Additional annotations to set on the pods.podLabels: Additional labels to set on the pods.ingress:className: Correspond to thespec.ingressClassNamefield in an ingress definition.annotations: Annotations which should be added to the ingress.hosts: This is an arrayhost: The FQDN which should be associated to the Element UIpaths: This is an arraypath: Correspond to thespec.rules.http.paths.pathfield in an ingress definition.pathType: Correspond to thespec.rules.http.paths.pathTypefield in an ingress definition.
tls: Correspond to thespec.tlsfield in an ingress definition.
resources:limits: Limits describes the maximum amount of compute resources allowed. The kindcpu&memoryare supported.requests: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. The kindcpu&memoryare supported.
Usage
The NOTES.txt from helm will provide the url to access the matrix UI.
To connect you can either use the SSO mechanism to automatically create an account in matrix during your first connection or use one of the two initials accounts (admin & bot) that are made available during installation.
To retrieve the default accounts credentials use the following commands by replacing the <servername> anchor with the matrix server name :
# Admin account
kubectl get secret synapse-<servername>-admin -n kosmos-collab -o jsonpath='{.data.username}' | base64 --decode ; echo
kubectl get secret synapse-<servername>-admin -n kosmos-collab -o jsonpath='{.data.password}' | base64 --decode ; echo
# Bot account
kubectl get secret synapse-<servername>-bot -n kosmos-collab -o jsonpath='{.data.username}' | base64 --decode ; echo
kubectl get secret synapse-<servername>-bot -n kosmos-collab -o jsonpath='{.data.password}' | base64 --decode ; echo
Note: you can also get the command with the server name already filled by getting the notes with the command helm get notes -n kosmos-collab synapse.