Skip to main content
Version: v3.8.0

Router

The Router image is a Go wrapper around Skupper Router. It supervises embedded skrouterd with config watch and AMQP hot reload. Routers form the messaging mesh between the Controller and Edgelet nodes.

Version pins

ComponentVersion
Wrapper releasev3.8.0
Embedded Skupper Router3.5.1
Default imageghcr.io/datasance/router:3.8.0
Edgelet workload labeliofog-router

Override the image in spec.images.router or spec.systemMicroservices.router on your ControlPlane CR. See Control Plane YAML.

Supported platforms: amd64, arm64, arm (32-bit), and riscv64.

Topology

Each Control Plane hosts an interior Router by default. Each Edgelet node hosts an edge Router that connects to the interior Router. You can change the topology with Agent routerConfig and upstreamRouter fields. See Architecture for examples.

Router deploys with TLS by default. The Controller tracks Router configuration and certificate volume mounts. For custom CAs, see Certificates for Router and NATS.

Runtime modes

Set SKUPPER_PLATFORM to choose how the wrapper loads configuration.

ModeSKUPPER_PLATFORMConfig source
PoT / Edgeletpot or iofog (alias)Edgelet LocalAPI v1 via ioFog Go SDK
KuberneteskubernetesFile at QDROUTERD_CONF (operator volume-mounts ConfigMap)

In PoT mode, the wrapper reads config from Edgelet LocalAPI v1 (GET /v1/microservices/config) and listens for update signals on the control websocket (/v1/microservices/control).

In Kubernetes mode, the wrapper does not call the Kubernetes API. The Operator mounts router config at QDROUTERD_CONF. File changes trigger the same AMQP hot-reload path as PoT mode.

Edgelet LocalAPI requirements

In PoT/iofog mode, mount Edgelet service-account material in the Router container:

  • Token: /var/run/secrets/edgelet.iofog.org/serviceaccount/token
  • CA: /var/run/secrets/edgelet.iofog.org/serviceaccount/ca.crt

Set EDGELET_MICROSERVICE_UID to the Edgelet microservice identity the SDK client uses.

Key environment variables

VariableDefaultDescription
SKUPPER_PLATFORMpotpot, iofog, or kubernetes
QDROUTERD_CONF/tmp/skrouterd.jsonRouter JSON config path
QDROUTERD_HOME/home/skrouterdSkupper home directory
SSL_PROFILE_PATH/etc/skupper-router-certsTLS certs per profile (ca.crt, tls.crt, tls.key)
EDGELET_MICROSERVICE_UID(required in pot mode)Edgelet microservice UID for SDK client
SSLtrueEnables HTTPS/WSS for LocalAPI in pot/iofog mode

Agent YAML example

Edge Router on an Edgelet node (interior Router runs on the Control Plane by default):

Edge Router on an Edgelet node
---
apiVersion: datasance.com/v3
kind: Agent
metadata:
name: edge-node-1
spec:
config:
upstreamRouter:
- default-router
routerConfig:
routerMode: edge
messagingPort: 5671

For Service-based TCP bridges between microservices, see Service YAML and Architecture.

DocumentDescription
Control Plane YAMLRouter replicas, images, ingress, TLS
Agent YAMLrouterConfig and upstreamRouter on Edgelet nodes
Certificates ManagerRouter TLS and site CA secrets

Source: Datasance/Router (mirror of eclipse-iofog/router).

Group 3See anything wrong with the document? Help us improve it!