Skip to main content
Install Routr Connect on a Kubernetes cluster with the 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 values.yaml file. At minimum, set edgeport.externalAddrs so the EdgePort advertises an address clients can reach.
values.yaml
See Choose key values for the settings you are most likely to change.
4

Install the release

Install the chart with the release name sipnet.
The output looks similar to this:
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.
Check the changelog before upgrading across major versions. When an EdgePort pod restarts, the clients connected to it register again.

Uninstall the release

Remove the release and its Kubernetes objects.
Helm keeps the persistent volume claims, so your database survives. To delete them as well, remove the PVCs for the release.
Deleting the PVCs deletes the PostgreSQL data. Back it up first.

Troubleshooting

  • Clients register but calls have no audio or replies are lost. edgeport.externalAddrs doesn’t match the address clients use.
  • No external IP for SIP. With the default NodePort service type, clients must use a node IP and the assigned node port. Use LoadBalancer on cloud providers.
  • rctl can’t connect. Check that the port-forward is still running and that you match the TLS mode: --insecure when apiserver.tlsOn is false.

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.