routr/routr-connect chart. The chart runs each component as its own workload and installs PostgreSQL and Redis as dependencies.
Prerequisites
- A Kubernetes cluster (v1.25.4 or later) with a persistent volume provisioner. Minikube or Docker Desktop work for local testing.
- Helm v3.11.1 or later and
kubectl. - The address SIP clients use to reach the cluster: a node IP, a load balancer IP, or a DNS name.
Install the chart
1
Add the Helm repository
Add the Routr chart repository and refresh your local cache.
2
Create a namespace
Use a dedicated namespace to keep upgrades and cleanup simple.
3
Write a values file
Create a See Choose key values for the settings you are most likely to change.
values.yaml file. At minimum, set edgeport.externalAddrs so the EdgePort advertises an address clients can reach.values.yaml
4
Install the release
Install the chart with the release name The output looks similar to this:
sipnet.5
Wait for the pods
List the pods and wait until they are all running. The first start takes a few minutes while PostgreSQL initializes and migrations run.
When every pod shows
Running, the release is ready. The migrations pod runs as a post-install hook and is removed when it succeeds.6
Reach the API Server
The API Server isn’t exposed outside the cluster. Forward its external port to your machine.In another terminal, create a Domain with rctl. Use
--insecure only because apiserver.tlsOn is false in this example.Choose key values
Pass values with-f values.yaml or --set key=value. These are the ones most deployments touch. For every parameter and its default, see Helm values.
The following example exposes UDP and TCP through cloud load balancers and uses an external database.
values.yaml
Every EdgePort replica can receive any request. When a request lands on an EdgePort that doesn’t hold the callee’s connection, Routr forwards it to the EdgePort that does. See EdgePort cooperation.
Upgrade the release
Refresh the repository and apply the new chart version with the same values file. The chart runs database migrations in a post-upgrade hook.Uninstall the release
Remove the release and its Kubernetes objects.Troubleshooting
- Clients register but calls have no audio or replies are lost.
edgeport.externalAddrsdoesn’t match the address clients use. - No external IP for SIP. With the default
NodePortservice type, clients must use a node IP and the assigned node port. UseLoadBalanceron cloud providers. rctlcan’t connect. Check that the port-forward is still running and that you match the TLS mode:--insecurewhenapiserver.tlsOnisfalse.
Next steps
Helm values
Every chart parameter and its default.
Deploy to Civo with Helm
A full walkthrough on a managed cluster.
Scale with Redis
Share registrations across Location Service replicas.
Deployment topologies
How the components fit together on Kubernetes.