virtigo: a control panel for your virtual machine cluster This is an attempt to make something that should: * Maintain the master list of virtual machines that should be running at all times * Work with a cluster of dom0 hypervisiors via libvirt and/or qemu * Understand the cluster and autostart droplets that have failed * Initiate and Handle all droplet events: start, stop, clone, migrate, etc * Verify consistancy on the hypervisors * Initiate and handle live migrations between hypervisors * Talk to the hypervisors using only the virtigo daemon via protobuf * Work in GUI mode (GTK/QT/etc) but ALSO the console (ncurses) * GPL'd with the intent for use with homelab and personal hobbyists Notes & Goals: * Be super easy to use. * Automatically map access to serial and graphical consoles * Only temporarily generate libvirt XML files for virsh create * This is intended for managing Virtual Machines, not for containers * This often uses the DO nomenclature 'droplets' instead of 'virtual machines' or 'domU' * Every droplet is considered hostile * When possible, use protobuf * Let security be handled externally at the socket layer with other tools * Put network, cpu, etc stats in external tools * Automatic live migration to decommission nodes * Implement iptable rules via the virtigo daemon Inspired by: * kvm * virt-manager * golang * the simplicity of the DO droplet control panel