Skip to main content
In this tutorial, you install Routr Connect on a local Kubernetes cluster with Helm, open a tunnel to the API Server, and create your first resource with rctl.

What you’ll build

A Routr Connect release named sipnet in a sipnet namespace, with each Routr service in its own pod, plus the PostgreSQL and Redis instances the chart installs for you. You manage it from your machine with rctl.

Prerequisites

  • A local Kubernetes cluster, such as Minikube or the one built into Docker Desktop, with a storage provisioner for persistent volumes.
  • kubectl configured for that cluster.
  • Helm v3.
  • Node.js and npm, to install rctl.
  • The IP address your SIP clients will use to reach the cluster (for a local cluster, usually your machine’s IP, for example 192.168.1.3).

Steps

1

Add the Helm repository

Add the Routr chart repository and refresh your local cache:
2

Create a namespace

Create a namespace for the release. A dedicated namespace makes upgrades and cleanup easier.
3

Write a values file

Create a file named values.yaml. It sets the address the EdgePort advertises in SIP messages and turns off TLS on the API Server so you can connect with --insecure in this tutorial.
values.yaml
Use tlsOn: false only on a local cluster. The chart enables TLS on the API Server by default. See Secure the server before you expose Routr to a network you don’t control.
4

Install the chart

Install Routr Connect with your values file:
Helm prints a summary similar to this:
Wait a few minutes for the images to download and the pods to start. Check their status:
You see one pod per Routr service (apiserver, connect, dispatcher, edgeport, location, registry, requester) plus postgresql and redis. The chart runs two EdgePort replicas by default.
All pods show the status Running.
5

Open a tunnel to the API Server

The API Server isn’t exposed outside the cluster. Forward its external port, 51908, to your machine. Keep this command running in its own terminal.
The service name follows the pattern <release>-routr-apiserver.
6

Connect with rctl

In a new terminal, install the command-line tool:
rctl connects to localhost:51908 by default, which is where the tunnel listens. Create a Domain:
Answer the prompts:
List your Domains to confirm the API Server stored it in PostgreSQL:
rctl reaches Routr running in Kubernetes, and your Domain appears in the list.
From here, the steps to add Credentials and Agents are the same as in the Docker quickstart. To register softphones, your clients must reach the EdgePort service. By default, the chart exposes it as a NodePort service over UDP. See Deploy on Kubernetes for service types, transports, and external addresses.

Clean up

Remove the release and the namespace when you’re done:

Next steps

Deploy on Kubernetes

Configure transports, services, and external addresses for a real cluster.

Helm values

See every value the chart accepts.

Deployment topologies

Learn how each component scales.

Manage resources with rctl

Create Agents, Peers, Trunks, and Numbers.