control your cluster of virtual machines
Go to file
Jeff Carr e149b3218d last version restarted virtigod to libvirt hang
it would appear at this point there is some sort of
	bug that hangs libvirtd. stracing it isn't obvious
	to me due to my lack of experience with really working
	with strace much. When virtigod hangs, 'virsh list'
	also hangs from the command line. If I kill virtigod,
	everything starts working again and I get lots of output
	from libvirtd --listen but I haven't investigated any
	of the errors yet or looked further. I probably will
	just work around this problem rather than solving it
	in this case since my need here is to get to working
	on riscv uboot development where my usefullness is
	better. hopefully. Or, maybe it's what I'm more interested
	in. maybe this bug doesn't exist on riscv. haha to you
	reading this, virtualization with riscv doesn't really
	even exist much yet. The chips are still too new!

Signed-off-by: Jeff Carr <jcarr@wit.com>
2024-10-13 03:04:46 -05:00
resources the beginning of something 2024-10-12 00:17:26 -05:00
.gitignore initial something. doesn't do anything yet. 2024-10-11 13:55:13 -05:00
LICENSE initial something. doesn't do anything yet. 2024-10-11 13:55:13 -05:00
Makefile last version restarted virtigod to libvirt hang 2024-10-13 03:04:46 -05:00
README watchdog for each hypervisor 2024-10-12 11:21:45 -05:00
argv.go attempt to generate an event. next up: protobuf 2024-10-13 02:23:30 -05:00
configfiles.go last version restarted virtigod to libvirt hang 2024-10-13 03:04:46 -05:00
event.go attempt to generate an event. next up: protobuf 2024-10-13 02:23:30 -05:00
http.go last version restarted virtigod to libvirt hang 2024-10-13 03:04:46 -05:00
main.go last version restarted virtigod to libvirt hang 2024-10-13 03:04:46 -05:00
poll.go last version restarted virtigod to libvirt hang 2024-10-13 03:04:46 -05:00
structs.go last version restarted virtigod to libvirt hang 2024-10-13 03:04:46 -05:00
watchdog.go polling duration times work 2024-10-12 11:54:01 -05:00

README

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
* 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