Skip to main content

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.

In Cloud Repositorio, VMs are always created within a slice. Each VM gets a management interface (eth0) and optionally one or more data interfaces (eth1, eth2, …) that can be connected to other VMs via L2 links. You build the topology in design mode, then deploy the slice to bring the VMs online.

Adding a VM to a slice

Select 3. Add VM to Slice from the main menu. You will be prompted for the following inputs:
PromptDescription
Slice IDID of the slice returned when you created it
VM nameUnique name for the VM within the slice
Flavor choice1 for cirros, 2 for ubuntu
Number of data interfacesHow many data interfaces (eth1, eth2, …) to create
Enable internet accessy to attach eth0 to VLAN 400 (internet), n for an untagged management interface
Internally, DeploymentAPI.create_vm_with_qcow() performs the following work:
  1. Generates a unique MAC address for each interface using the formula:
    f"52:54:00:{(vm_id >> 8) & 0xFF:02x}:{vm_id & 0xFF:02x}:{i:02x}"
    
  2. Assigns the next VNC port by incrementing from 5900 (e.g., first VM gets 5901).
  3. Creates a QCOW2 backing image for the VM on the target worker node.
Example output:
VM added! ID: 1001, VNC: 5901, Flavor: cirros
VMs are in design status until the slice is deployed. QEMU processes are not started until you run 6. Deploy Slice.

VM flavors

Two flavors are available. Each VM gets its own QCOW2 file backed by the shared base image, so only blocks that the VM has actually written consume disk space on the worker (thin provisioning).
FlavorCoresRAMDiskBase image
cirros10.5 GB1 GB/tmp/vm_images/cirros-0.6.2-x86_64-disk.img
ubuntu10.5 GB2.2 GB/tmp/vm_images/focal-server-cloudimg-amd64.img
The backing file must exist on the worker before the VM is created. QCOWManager automatically copies the base image from the manager host to the worker via scp if it is not already present at ~/vm_images/ on the worker.

Network interfaces

eth0 — management interface eth0 is always created. Its configuration depends on whether internet access is enabled:
  • Internet enabled: attached to VLAN 400, subnet 10.60.7.0/24, gateway 10.60.7.1, DHCP active. The VM receives an IP in the 10.60.7.x range automatically.
  • Internet disabled: created with no VLAN tag. The interface is present but has no network connectivity until you configure it manually inside the VM.
eth1, eth2, … — data interfaces Data interfaces are created unconnected (no VLAN assigned). They must be linked to another VM’s interface using 4. Create Link between VMs before deployment to carry traffic. MAC address format MACs are derived deterministically from the VM ID. For a VM with id vm_id, interface index i:
52:54:00:XX:XX:00   (eth0)
52:54:00:XX:XX:01   (eth1)
52:54:00:XX:XX:N    (ethN)
where XX:XX encodes the upper and lower bytes of vm_id. Select 4. Create Link between VMs from the main menu. The CLI first prints all VMs in the slice and highlights which data interfaces are still unconnected. Walk through:
  1. Enter the Slice ID.
  2. The CLI displays available VMs and their interface connection status:
    Available VMs and interfaces:
      VM 1001: web
        - eth1 (unconnected)
      VM 1002: db
        - eth1 (unconnected)
    
  3. Enter First VM ID and First VM interface (e.g., eth1).
  4. Enter Second VM ID and Second VM interface.
A VLAN is drawn from the slice’s VLAN pool and assigned to both interfaces. The link is persisted in the database. Example output:
Link created! VLAN: 101
Links can only be created between data interfaces (eth1 and above). The management interface eth0 is reserved for orchestrator access and cannot be used as a link endpoint.

Accessing VMs

After the slice is deployed, connect to a VM over VNC using the worker IP and the VNC port reported at VM creation:
worker_ip:vnc_port
# example
10.0.10.1:5901
The VNC display number is vnc_port - 5900 (e.g., port 5901 = display :1). Use any VNC client that supports the host:port syntax.

Build docs developers (and LLMs) love