This quickstart walks you through creating and deploying a slice with two VMs connected over a private VLAN using the Cloud Repositorio CLI. By the end, you will have two running virtual machines that can reach each other over an isolated L2 network segment on your cluster.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/markitobonito/cloud_repositorio/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you start, make sure the following are in place:
-
SSH key access to each worker node as
ubuntu. The default cluster uses[email protected],[email protected], and[email protected]. All three nodes must be reachable without a password prompt: -
Python 3 with the
PyYAMLpackage installed on the orchestrator machine: - QEMU/KVM installed and working on each worker node.
-
Open vSwitch (OVS) running on the network node (
10.0.10.3), with a bridge namedbr-int. -
Base VM images present at
/tmp/vm_images/on every worker:cirros-0.6.2-x86_64-disk.imgfocal-server-cloudimg-amd64.img
Start the manager
From the project root, run:On startup, the orchestrator backs up
database.yaml, then runs WorkerDiscovery against all three nodes. Discovery runs nproc, free -g, and df /tmp over SSH to populate each worker’s resource specs. Once discovery completes, the CLI drops into the login prompt.Log in
Enter your credentials at the login prompt. The
After a successful login you are taken to the main menu:
database.yaml file ships with two pre-configured accounts. The password for both is the SHA-256 hash of the string admin:| Username | Password | VM quota |
|---|---|---|
admin | admin | 10 VMs |
student | admin | 6 VMs |
Create a slice
Choose 2. Create Slice and enter a name for your slice:The orchestrator assigns the next available ID from
database.yaml (starting at 1000) and allocates a VLAN pool of 20 IDs for this slice. Make a note of the slice ID — you will use it in the next steps.Add VMs to the slice
Choose 3. Add VM to Slice for each VM you want to create. Add the first VM:Repeat the process to add a second VM:VMs are assigned to workers in round-robin order. Each VM gets a management interface (
eth0) and one data interface per additional interface you specified (eth1, eth2, etc.).Create a link between VMs
Choose 4. Create Link between VMs to connect A VLAN ID is drawn automatically from the slice’s pool. The orchestrator records the link and tags both interfaces with the assigned VLAN ID. No physical network changes happen yet — those are applied during deployment.
vm-a and vm-b over a private VLAN:Deploy the slice
Choose 6. Deploy Slice to bring the slice up:The orchestrator:
- Configures an OVS VLAN gateway and dnsmasq DHCP namespace on
10.0.10.3for each link. - Launches each VM over SSH on its assigned worker — creating TAP interfaces, tagging them with the correct VLAN, and starting
qemu-system-x86_64as a daemon. - Updates
database.yamlwith the running status and QEMU PID for each VM.
VNC access to each VM is available at
worker_ip:vnc_port immediately after deployment. For example, if vm-a was placed on 10.0.10.1 with VNC port 5901, connect with any VNC client to 10.0.10.1:5901. The base VNC port is 5900; each VM increments from there based on its VM ID.