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 Dev Container is well suited if you use VS Code as your IDE.
- Using Multipass if you'd like to run the lab in a dedicated VM.
- 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.
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 (Read the Containerlab docs for MacOS for details why Docker Desktop will not work here)
- Kernel Modules - SRv6 and VRF modules must be available in the host kernel.
-
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.
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.
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.