It is based on cloud-hypervisor wich is a virtual machine manager (type-2 hypervisor).
Virshle manages the resources like vms, disks, and networks.
The aim is to keep stuffs simple, so virshle only manages files.
-
The disk (containing the OS) is a simple
qcow2files with efi support generated with nixos-generators. -
Each vm is a running instance of cloud-hypervisor linked to its own resources (disks, networks).
For the sake of speed resources are registered into a database,
which one is not crucial for virshle functionning.
The database acts like an index and can be generated from virshle managed files in
/var/lib/virshle/
No need to sort Vms by id in rust code, because they are already sorted by id in the database.
Structs returned by the API are sorted by id.
nix flake update --flake ./templates/test/virshle virshle
nixos-rebuild build \
--flake "./templates/tests/virshle#default" \
--log-format multiline-with-logs \
--show-tracenix flake update --flake ./modules/tests/openvswitch virshle
nixos-rebuild build \
--flake "./modules/tests/openvswitch#default" \
--log-format multiline-with-logs \
--show-trace