Helm chart deploys Matrix Synapse, a Matrix homeserver implementation, on a Kubernetes cluster.
|
Some checks failed
/workspace is not writable, use checkout directory instead |
||
|---|---|---|
| .forgejo | ||
| chart | ||
| lint.sh | ||
| README.md | ||
| renovate.json | ||
Matrix Synapse Helm Chart
This Helm chart deploys Matrix Synapse, a Matrix homeserver implementation, on a Kubernetes cluster.
Features
- Scalable worker deployment for high-load installations
- Configurable database backend (PostgreSQL)
- Redis support for caching
- Prometheus metrics
- Support for media repository
- Support for signing key management
- Support for topology spread constraints to ensure even pod distribution
Configuration
Topology Spread Constraints
The chart now supports topology spread constraints for both the main Synapse pod and worker pods. This ensures that pods are evenly distributed across your Kubernetes cluster's nodes, which improves resilience and helps prevent pod evictions from the descheduler.
Main Synapse Pod
synapse:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app.kubernetes.io/component: synapse
Worker Pods
workers:
default:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app.kubernetes.io/component: worker-name
For specific workers, you can override the default configuration:
workers:
federation_reader:
enabled: true
replicaCount: 3
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app.kubernetes.io/component: federation-reader
Example Values
Please see the values.yaml file for a complete list of available configuration options.