control your cluster of virtual machines
Go to file
Jeff Carr 4dd0f0eaba improvements due to autogenpb 2024-12-04 02:25:19 -06:00
resources compiles again 2024-10-31 13:37:00 -05:00
.gitignore git ignore files/ directory 2024-11-04 06:12:58 -06:00
LICENSE initial something. doesn't do anything yet. 2024-10-11 13:55:13 -05:00
Makefile fix build 2024-11-16 00:08:34 -06:00
README.md so it shows up on pkg.go.dev 2024-11-07 07:32:41 -06:00
argv.go notes 2024-11-03 01:38:09 -05:00
build build notes 2024-11-02 23:46:53 -05:00
control make a simple .deb package 2024-10-30 20:31:14 -05:00
dump.go improvements due to autogenpb 2024-12-04 02:25:19 -06:00
event.go dump more code to virtigoxml 2024-10-31 06:43:14 -05:00
http.go create and start work again 2024-11-16 05:21:44 -06:00
importDomain.go everything is working again 2024-11-01 12:48:31 -05:00
main.go improvements due to autogenpb 2024-12-04 02:25:19 -06:00
poll.go improvements due to autogenpb 2024-12-04 02:25:19 -06:00
post.go import worked 2024-11-01 08:30:55 -05:00
start.go create and start work again 2024-11-16 05:21:44 -06:00
structs.go rename Cluster 2024-11-07 05:04:50 -06:00
validate.go improvements due to autogenpb 2024-12-04 02:25:19 -06:00
watchdog.go compiles again 2024-10-31 13:37:00 -05:00

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