A testing and demonstration environment for Galactic VPC, a multi-cloud networking solution. This lab demonstrates multi-region Kubernetes cluster connectivity using SRv6 (Segment Routing over IPv6) packet routing.
There are different approaches to use this lab:
- Using Multipass if you'd like to run the lab in a dedicated VM.
- Using Dev Container is well suited if you use VS Code as your IDE.
- Using "Your own choice of Hypervisor" if you already have a way to run a Ubuntu/Debian VM.
In this case simply follow from step 2 in the Multipass instructions. - If you are running Ubuntu/Debian Linux on your workstation - we discourage running directly inside of it without a VM or Containers for isolation.
Netlab/Containerlab heavily modify the network configuration of the system, which may break your network connectivity. There be dragons.
No matter which approach you choose, Galactic relies on the SRv6 and VRF modules in the Linux kernel. This means the system where you install Galactic must have those modules available.
This approach creates an isolated Ubuntu VM using Multipass.
-
Launch and enter the Multipass VM
Create a new Ubuntu VM with the required resources and mount the project directory:
multipass launch -c 4 -d 50G -m 8G -n galactic-lab --mount .:/galactic-lab multipass shell galactic-lab sudo -s
-
Install Netlab and dependencies
cd /galactic-lab export PIP_OPTIONS="--break-system-packages" sudo apt update && sudo apt install -y python3-pip python3 -m pip install $PIP_OPTIONS git+https://github.com/datum-cloud/netlab@galactic netlab install -y ubuntu ansible containerlab
-
You're ready! Proceed to the Building the Custom Kind Node section below.
This approach uses VS Code's Dev Container feature to provide a fully configured development environment with all dependencies pre-installed.
- Visual Studio Code
- Dev Containers extension
- Orbstack
- Ensure you are using Orbstack:
docker context use orbstack - Read the Containerlab docs for MacOS for details why Docker Desktop will not work here
- Ensure you are using Orbstack:
-
Open the galactic-lab folder in VS Code
-
Reopen in Container
- Press
Cmd/Ctrl+Shift+P - Type and select:
Dev Containers: Reopen in Container - Wait for the container to build (first time only, ~5-10 minutes)
- Press
Cmd/Ctrl+Shift+P - Type and select:
Terminal: Create New Terminal
- Press
-
You're ready! Proceed to the Building the Custom Kind Node section below.
Both approaches above prepare your host environment. Now you need to build the custom Kubernetes-in-Docker (Kind) node image with Galactic components pre-installed.
cd kindest-node-galactic
docker build . -t kindest/node:galacticWith your environment set up and the custom Kind node built, you're ready to deploy a basic lab topology or a geographic lab topology.