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 |
namespace |
Namespace | jitsi |
metacontrollerNamespace |
Namespace of the metacontroller. Empty if not deployed. | metacontroller |
haproxy.name |
Haproxy statefulset name | jitsi/jicofo |
haproxy.image |
Docker image | haproxy:2.1 |
haproxy.ingressEnable |
Enable ingress | true |
haproxy.ingress.host |
Ingress host | jitsi.domain.org |
haproxy.ingress.tlsEnable |
Enable TLS for ingress | true |
jicofo.name |
Jicofo deployment name | jicofo |
jicofo.image |
Jicofo docker image | jitsi/jicofo |
jicofo.imagePullPolicy |
Jicofo image pull policy | Always |
jicofo.extraEnvs |
Jicofo extra environment variables | [] |
jvb.name |
JVB statefulset name | jitsi/jvb |
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.nodeportPrefix |
JVB Node port prefix | 30 |
jvb.extraEnvs |
JVB extra environment variables | [] |
prosody.name |
Prosody deployment name | jitsi/prosody |
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 | [] |
web.name |
Web deployment name | web |
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 first instance should be deployed with the metacontroller
- The second instance should be deployed with specific settings :
metacontrollerNamespace
should be kept empty to avoid deploying a second metacontrollerjvb.nodeportPrefix
should use a different value from30
to avoid ports conflicts