Skip to the content.

Multiple Sites per Host

A single Linux host can run multiple independent Skupper sites, each in its own namespace. Each site gets its own skrouterd process, systemd service, and configuration.

Creating Multiple Sites

skupper site create site-east -p linux -n east
skupper site create site-west -p linux -n west
skupper site create site-edge -p linux -n edge

What Gets Created

Each namespace produces an independent systemd service:

skupper-east.service
  └── skrouterd -c ~/.local/share/skupper/namespaces/east/runtime/router/skrouterd.json

skupper-west.service
  └── skrouterd -c ~/.local/share/skupper/namespaces/west/runtime/router/skrouterd.json

skupper-edge.service
  └── skrouterd -c ~/.local/share/skupper/namespaces/edge/runtime/router/skrouterd.json

Filesystem Namespace Structure

~/.local/share/skupper/namespaces/
├── east/
│   ├── input/resources/     ← Site, Connector, Listener YAMLs
│   ├── input/certs/         ← TLS certificates
│   ├── runtime/router/
│   │   └── skrouterd.json   ← Router config (unique)
│   └── internal/
│       └── platform.yaml
├── west/
│   └── ... (same structure)
└── edge/
    └── ... (same structure)

This is the non-K8s equivalent of Kubernetes namespaces:

Kubernetes Non-K8s Filesystem
Namespace ~/.local/share/skupper/namespaces/<name>/
CRD resources YAML files in input/resources/
Secrets (TLS) Directories in input/certs/
Multiple namespaces Multiple directories; use skupper -n <name>

Each Site Is Fully Independent

Resource Per-Namespace?
skrouterd process ✅
systemd service ✅ skupper-<ns>.service
skrouterd.json config ✅
TLS certificates ✅
Site identity ✅
Listeners (ports) ✅ — must use different ports
Links ✅
YAML resources ✅

Port Conflict Considerations

All skrouterd processes share the same host network. Ports must be unique across all sites:

Managing Multiple Sites

# CLI uses -n flag
skupper site status -n east
skupper connector status -n west
skupper system reload -n edge

# Systemctl
systemctl --user status skupper-east
systemctl --user status skupper-west
journalctl --user -u skupper-edge

Use Cases

Use Case Example
Multiple networks Same host in production and staging Skupper networks
Testing Simulate multi-site topology on a single machine
Multi-tenant Different applications with separate networks
Development Replicate distributed setup locally