Skip to content

datum-cloud/galactic-lab

Galactic Lab

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:

  1. Using Dev Container is well suited if you use VS Code as your IDE.
  2. Using Multipass if you'd like to run the lab in a dedicated VM.
  3. 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.
  4. 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.

Approach 1: Dev Container

This approach uses VS Code's Dev Container feature to provide a fully configured development environment with all dependencies pre-installed.

Prerequisites

Steps

  1. Open the galactic-lab folder in VS Code

  2. 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
  3. You're ready! Proceed to the Building the Custom Kind Node section below.

Approach 2: Multipass VM

This approach creates an isolated Ubuntu VM using Multipass.

Prerequisites

Steps

  1. 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
  2. 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
  3. You're ready! Proceed to the Building the Custom Kind Node section below.

Building the Custom Kind Node

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:galactic

Next Steps

With your environment set up and the custom Kind node built, you're ready to deploy a basic lab topology or a geographic lab topology.

About

A testing and demonstration environment for Galactic VPC

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published