Synapse
- Canonical IS DevOps
Channel | Revision | Published | Runs on |
---|---|---|---|
latest/stable | 426 | 20 Sep 2024 | |
latest/edge | 495 | 28 Nov 2024 | |
2/edge | 518 | 20 Dec 2024 | |
1/stable | 303 | 30 Jul 2024 | |
1/edge | 345 | 31 Jul 2024 |
juju deploy synapse
Deploy Kubernetes operators easily with Juju, the Universal Operator Lifecycle Manager. Need a Kubernetes cluster? Install MicroK8s to create a full CNCF-certified Kubernetes system in under 60 seconds.
Platform:
Integrations
backup
Interface: s3 Supported charms: s3-integrator
In order to perform backups, Synapse has to be integrated with the s3-integrator charm using the endpoint backup. Backups will be stored, listed and recovered from the location indicated in the S3 compatible object storage provider configuration provided by the integration. The Synapse charm will back up the media files, signing keys and sqlite database file if applicable. If Synapse database integration is used, the Synapse charm will not back up the related database.
Example backup integrate command: juju integrate synapse:backup s3-integrator
db
Interface: pgsql Supported charms: postgresql-k8s, postgresql
Database integration is a required relation for the Synapse charm to supply structured data storage for Synapse.
Example db integrate command: juju integrate synapse postgresql-k8s:db
grafana-dashboard
Interface: grafana-dashboard Supported charms: grafana-k8s
Grafana-dashboard relation enables quick dashboard access already tailored to
fit the needs of operators to monitor the charm. The template for the Grafana
dashboard for Synapse charm can
be found at /src/grafana_dashboards/synapse.json
. It was extracted from
matrix/synapse repository. In Grafana UI, it can be
found as “Synapse Operator” under the General section of the dashboard browser
(/dashboards
). Modifications to the dashboard can be made but will not be
persisted upon restart/redeployment of the charm.
Grafana-Prometheus integrate command:
juju integrate grafana-k8s:grafana-source prometheus-k8s:grafana-source
Grafana-dashboard integrate command:
juju integrate synapse grafana-dashboard`
ingress
Interface: ingress Supported charms: nginx-ingress-integrator, traefik
Ingress manages external http/https access to services in a kubernetes cluster. Note that the kubernetes cluster must already have an nginx ingress controller already deployed. Documentation to enable ingress in MicroK8s can be found in Addon: Ingress.
Example ingress integrate command: juju integrate synapse nginx-ingress-integrator
metrics-endpoint
Interface: prometheus_scrape Supported charms: prometheus-k8s
Metrics-endpoint relation allows scraping the /metrics
endpoint provided by
Synapse. The metrics are exposed in the open metrics format and will only be scraped by Prometheus once the
relation becomes active. For more information about the metrics exposed, refer to “How to monitor Synapse metrics using Prometheus”.
Metrics-endpoint integrate command: juju integrate synapse prometheus-k8s
redis
Interface: redis Supported charms: redis-k8s
Integrating Synapse with Redis is required by horizontal scaling the charm. If the integration is not present, the charm will be blocked.
See more information in Scaling synapse via workers in documentation repository for Synapse.
Example redis integrate command: juju integrate synapse redis-k8s
saml
Interface: saml Supported charms: saml-integrator
Integrating Synapse with SAML Integrator provides SAML configuration details so users can be authenticated in via a SAML server.
Example saml integrate command: juju integrate synapse saml-integrator:saml
Note that public_baseurl
configuration set the public-facing base URL that
clients use to access this Homeserver. It’s used as entity_id
if set instead of
https://server_name.
See more information in Charm Architecture.
smtp
Interface: smtp Supported charms: smtp-integrator
Integrating Synapse with SMTP Integrator provides SMTP configuration details so a smtp server can be used in Synapse.
Example smtp integrate command: juju integrate synapse smtp-integrator:smtp
Note that the smtp-integrator provides two interfaces, smtp
and smtp-legacy
.
Only use the first one if the Juju version used supports secrets. The “From” email
is set with the Synapse configuration option notif_from
.
For the smtp-integrator, insecure configurations with transport_security=none
or not
authenticated connections with auth_type=none
are not supported.
See more information in Charm Architecture.