control your cluster of virtual machines
Go to file
Jeff Carr f42091a2ce network is maybe correct as virtio. pci needed?
Signed-off-by: Jeff Carr <jcarr@wit.com>
2024-10-26 02:31:52 -05:00
resources network is maybe correct as virtio. pci needed? 2024-10-26 02:31:52 -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 network is maybe correct as virtio. pci needed? 2024-10-26 02:31:52 -05:00
README clean up logging of initial scan of droplets 2024-10-17 15:29:47 -05:00
addDroplet.go --xml-ignore-disk=true works 2024-10-25 20:09:41 -05:00
argv.go generate XML by droplet hostname 2024-10-25 22:07:28 -05:00
change.go finds disks and puts dirs in the protobuf cluster 2024-10-26 01:02:09 -05:00
config.go start date works on events 2024-10-25 17:01:30 -05:00
event.go switched to pb.DropletState enum 2024-10-23 19:15:51 -05:00
http.go switched to pb.DropletState enum 2024-10-23 19:15:51 -05:00
libvirtxml.go network is maybe correct as virtio. pci needed? 2024-10-26 02:31:52 -05:00
main.go finds disks and puts dirs in the protobuf cluster 2024-10-26 01:02:09 -05:00
network.xml network is maybe correct as virtio. pci needed? 2024-10-26 02:31:52 -05:00
poll.go switched to pb.DropletState enum 2024-10-23 19:15:51 -05:00
start.go network is maybe correct as virtio. pci needed? 2024-10-26 02:31:52 -05:00
structs.go finds disks and puts dirs in the protobuf cluster 2024-10-26 01:02:09 -05:00
validate.go finds disks and puts dirs in the protobuf cluster 2024-10-26 01:02:09 -05:00
watchdog.go global hypervisor poll delay 2024-10-22 19:57:49 -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
* 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