This PR builds off of the foundations by @JeroenSoeters in #451. Instead of requiring the cloud-hypervisor binary running externally and using the client, this implementation uses the vmm crate for CH to manage aurae VirtualMachines. We also leave configuring TAP devices up to Cloud Hypervisor instead of creating them out of band.
Using Cloud Hypervisor's VMM like this has a few nice properties:
Auraed remains a free-standing executable.
Security, maintainability, and compatibly benefits provided by the rust-vmm ecosystem and CH community.
Requests are served directly with no additional marshalling/unmarshalling or connections required to serve an additional an API server (if we were to use CH's http API).
Minimal config for networking, CH takes care of TAP creation, routing, and teardown
The tests implemented should allow you to run virtual machines with an Auraed as PID 1 after running the below copying the kernel and disk image to proper paths under /var/lib/aurae:
sudo make /opt/aurae/cloud-hypervisor/cloud-hypervisor
sudo make build-guest-kernel
sudo make prepare-image
Also cleans up some old make targets and libvirt POC config within auraed/hack.
This PR builds off of the foundations by @JeroenSoeters in #451. Instead of requiring the cloud-hypervisor binary running externally and using the client, this implementation uses the
vmm
crate for CH to manage auraeVirtualMachines
. We also leave configuring TAP devices up to Cloud Hypervisor instead of creating them out of band.Using Cloud Hypervisor's VMM like this has a few nice properties:
rust-vmm
ecosystem and CH community.The tests implemented should allow you to run virtual machines with an Auraed as PID 1 after running the below copying the kernel and disk image to proper paths under
/var/lib/aurae
:Also cleans up some old make targets and libvirt POC config within
auraed/hack
.