ALPHA QUALITY NOTE This Kubernetes configuration is basically un-tested. DO NOT USE IT IN PRODUCTION.
- Helm3 - We use helm3 to install NATS/etcd/redis in your namespace
- A public IP and valid subdomain to use for
nginx-ingress
; it must be a valid resolving subdomain with a publicly accessible IP for the TLS to provision. nginx-ingress
with TLS is required; there are many possible ways to set this up, depending on your Kubernetes provider. If you use a different ingress or don't support automatic TLS, you must ensure the Web service has TLS configured; the video chat will always fail to connect over HTTP.
Getting a LoadBalancer
with a public IP and setting up TLS are well-documented roadblocks for many new Kubernetes users. Rather than testing on a local machine on a home network behind a router, it might be easier to provision a kubernetes cluster with proper LoadBalancer
support.
- (recommended) Read every file in this directory before deploying. They are short and crucial. Understand them.
kubectl create namespace ion
-- You can use another namespace but you'll need to update parts of thegrafana_charts
in step 5- Update
ingress.yaml
andcert-manager.yaml
to add your domain and email address; you might want to update theingress.class
if you are usingtraefik
for ingress (likek3s
does by default). - Install NATS/etcd/redis and cert-manager by running
bash deps.sh
; you can comment outcert-manager
if it's already installed. - Install the ion stack (SFU/ISLB/BIZ/AVP nodes and the WEB service) by running
bash apply.sh
- [optional] Add the
grafana
charts fromdocs/grafana_charts/
; you can install a portable grafana in the current namespace just by runninghelm install grafana bitnami/grafana
- Only 1 SFU is currently supported (pending ISLB Relay Feature)
- SFU is currently configured as a Deployment(scale=1); this will be changed to a DaemonSet (1 pod per node) once Relay is supported
- It should be upgraded to a Helm chart ASAP; I have never done this, I am learning
- Tested locally on k3s, but you must have local SSL certs working