P.S. PRs with fixes or improves are welcome ;-)
A Jitsi Meet Chart for Kubernetes with 2 replicas of HAproxy in peering. All Jitsi shard are in backend via server-template
in configuration.
This chart will install and configure: HAProxy statefulset, Jicofo deployment, JVB statefulset (scalable), web interface, prosody XMPP server.
The Jitsi Kubernetes namespace has the following architecture:
The setup shown above contains only a single shard (for visual clarity). Subsequent shards would be attached to the web service. A more detailed explanation of the system architecture with multiple shards can be found in architecture/architecture.md.
To download and to install the Jitsi Meet Chart, make sure that you have the Helm CLI (v2+) installed and clone this repository on your machine.
To install the chart, in your terminal, go to the jitsi-helm
repository and run the following command:
helm install -n jitsi ./ --wait
If you want to use your own custom watermark, first create configmap from your png file:
kubectl create configmap -n <namespace> watermark --from-file=watermark.png
It assumes that you have a Nginx Ingress controller and you use CertManager along with ACME issuer type for managing the HTTPS certificates.
Because --wait
flag, the status will be given once Jisti Meet is ready.
To update the chart, in your terminal, go to the jitsi-helm
repository and run the following command:
helm upgrade jitsi ./ --wait
To delete the chart, in your terminal, go to the jitsi-helm
repository and run the following command:
helm delete --purge jitsi
The following table lists the configurable parameters of the Jitsi Meet chart and their default values.
Parameter | Description | Default |
---|---|---|
shardCount |
Number of shards | 2 |
haproxy.image |
Docker image | haproxy:2.1 |
ingress.enabled |
Enable ingress | true |
ingress.hosts |
List of hosts in this ingress | empty |
ingress.class |
Which ingressClassName to use | empty |
ingress.tls.enabled |
Enable TLS for ingress | true |
ingress.tls.secretName |
Name of the secret storing the TLS certificate and key | jitsi-tls |
ingress.extraPaths |
Extra paths to add to the ingress | [] |
jicofo.image |
Jicofo docker image | jitsi/jicofo |
jicofo.imagePullPolicy |
Jicofo image pull policy | Always |
jicofo.extraEnvs |
Jicofo extra environment variables | [] |
jvb.image |
JVB docker image | jitsi/jvb |
jvb.image.imagePullPolicy |
JVB image pull policy | Always |
jvb.replicas |
JVB replica count | 1 |
jvb.monitoringEnable |
JVB exporter container | true |
jvb.hostPort |
JVB hostPort | empty |
jvb.nodeportPrefix |
JVB Node port prefix | 30 |
jvb.extraEnvs |
JVB extra environment variables | [] |
prosody.image |
Prosody docker image | jitsi/prosody |
prosody.image.imagePullPolicy |
Prosody image pull policy | Always |
prosody.extraEnvs |
Extra env var for prosody deployment | [] |
prosody.extraVolumes |
Additionnal volumes to the prosody deployment | [] |
prosody.extraVolumeMounts |
Additional volume mounts to the prosody deployment | [] |
prosody.globalModules |
Additional global modules to enable on prosody | [] |
prosody.globalConfig |
Additional global config parameters on prosody | [] |
uvs.enable |
Whether the Matrix User Verification Service should be enabled | false |
web.image |
Web docker image | jitsi/web |
web.image.imagePullPolicy |
Web image pull policy | Always |
web.extraEnvs |
Extra env var for web deployment | [] |
web.extraVolumes |
Additionnal volumes to the web deployment | [] |
web.extraVolumeMounts |
Additional volume mounts to the web deployment | [] |
watermark |
Watermark logo | true |
- The second instance should be deployed with specific settings :
jvb.nodeportPrefix
should use a different value from30
to avoid ports conflicts orjvb.hostPort
that's distinct from other installations