Adding more logic on Control Plane to help with creating of VMs inside slices. Also introduced new families and VM configurations to help with experimentation.
- two new families added: 'burstable' and 'sharable'. Both get created in an isolated slice called like the family. Allowed sizes are -50 and -100 which mean 50% or 100% vCPU, respectively. Burstable instances can go up another 50% or 100%.
- iniital slice allocation and tracking at VmHost level, this will need to be changed later
- cleaned up some earlier hardcoded values on Data Plane side
- temporarily turned off CPU accounting on VmHost/Allocator to allow for overcommiting
With this, new instances can be created with:
Prog::Vm::Nexus.assemble(File.read("/home/maciek/.ssh/id_ed25519.pub"), Project.first.id, name: "r2d2", size: "burstable-50", location: "hetzner-fsn1", enable_ip4: true, boot_image: "ubuntu-jammy")