Jeff Carr 4dd0f0eaba | ||
---|---|---|
resources | ||
.gitignore | ||
LICENSE | ||
Makefile | ||
README.md | ||
argv.go | ||
build | ||
control | ||
dump.go | ||
event.go | ||
http.go | ||
importDomain.go | ||
main.go | ||
poll.go | ||
post.go | ||
start.go | ||
structs.go | ||
validate.go | ||
watchdog.go |
README.md
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