Worker nodes are SSH-accessible machines running QEMU/KVM and Open vSwitch where virtual machines are actually launched. The orchestrator maintains a registry of worker specs collected at startup and uses a round-robin index to spread VMs evenly across all available workers. The compute and network roles can overlap: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.
10.0.10.3 runs VMs and also acts as the dedicated network node for VLAN gateway and DHCP operations.
Worker discovery
At startup,WorkerDiscovery.discover_all() iterates the workers_list from database.yaml and SSHs to each node to collect hardware specs:
| Metric | Command | Field |
|---|---|---|
| CPU cores | nproc | max_cores |
| RAM (GB) | free -g | max_ram_gb |
| Disk space | df /tmp | max_disk_gb |
workers registry and will not receive VMs during that session. The default worker list from database.yaml:
Worker specs schema
After discovery, each worker is stored under theworkers key in database.yaml:
used_* fields start at 0 after each discovery run.
Round-robin scheduling
OrchestratorAPI.get_next_worker() selects the target worker for each new VM using a simple round-robin index:
self.workers is loaded from workers_list in the database at initialization. With three workers and sequential VM additions, the assignment pattern is 10.0.10.1 → 10.0.10.2 → 10.0.10.3 → 10.0.10.1 → …. The index is not persisted between sessions, so it resets to 0 on each restart.
Network node
Worker10.0.10.3 serves a dual role: it accepts QEMU VMs from the round-robin scheduler just like the other workers, and it is also the network node targeted by VLANManager for all OVS gateway and DHCP namespace operations. This means:
- All
gw_vlan{id}OVS ports are created on10.0.10.3. - All
ns-dhcp-vlan{id}network namespaces anddnsmasqprocesses run on10.0.10.3. - IP forwarding and
MASQUERADErules for VLAN 400 internet access are applied on10.0.10.3.
VLANManager:
Resource accounting is approximate. The system tracks
used_cores, used_ram_gb, and used_disk_gb per worker in database.yaml, but these counters are populated by WorkerDiscovery at startup (set to 0) and incremented as VMs are added. They are not decremented when a VM or slice is deleted. After several create/delete cycles the counters will diverge from actual usage. Restart the manager to reset them via a fresh discovery run.