Aller au contenu principal

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 the config.json that 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, ...)
  • replicaCount : The number of pods you want running
  • podAnnotations : Additional annotations to set on the pods.
  • podLabels : Additional labels to set on the pods.
  • ingress :
    • className : Correspond to the spec.ingressClassName field in an ingress definition.
    • annotations : Annotations which should be added to the ingress.
    • hosts : This is an array
      • host : The FQDN which should be associated to the Element UI
      • paths : This is an array
        • path : Correspond to the spec.rules.http.paths.path field in an ingress definition.
        • pathType : Correspond to the spec.rules.http.paths.pathType field in an ingress definition.
    • tls : Correspond to the spec.tls field in an ingress definition.
  • resources :
    • limits : Limits describes the maximum amount of compute resources allowed. The kind cpu & memory are 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 kind cpu & memory are 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 instance
  • keycloakCA : 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 information
    • name : The Database name
    • user : A user with access to the Database
    • password : The user's password
    • host : Hostname (without port) of the PostgreSQL database
    • port : port on which the PostgreSQL database is listening
  • sso : SSO configuration for the client id synapse
    • hostname : The IDP FQDN, this will serve to redirect users and should be accessible from the browser.
    • clientSecret : The client secret associated to the client ID synapse.
  • 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 running
  • podAnnotations : Additional annotations to set on the pods.
  • podLabels : Additional labels to set on the pods.
  • ingress :
    • className : Correspond to the spec.ingressClassName field in an ingress definition.
    • annotations : Annotations which should be added to the ingress.
    • hosts : This is an array
      • host : The FQDN which should be associated to the Element UI
      • paths : This is an array
        • path : Correspond to the spec.rules.http.paths.path field in an ingress definition.
        • pathType : Correspond to the spec.rules.http.paths.pathType field in an ingress definition.
    • tls : Correspond to the spec.tls field in an ingress definition.
  • resources :
    • limits : Limits describes the maximum amount of compute resources allowed. The kind cpu & memory are 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 kind cpu & memory are 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.