virtigo/README.md

1.5 KiB

virtigo: a control panel for your virtual machine cluster

There is no greater thrill for a linux sys admin than running your own cloud.

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