diff --git a/README.md b/README.md index f6a776f..d437d29 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,49 @@ -## clustvirt - Libvirt cluster manager +# clustvirt - Libvirt cluster manager -Clustered virtualization has gotten to complicated. We have a great system for it built into -the Linux kernel, with shared software stacks between whatever base distro you want to use. +Clustered virtualization has gotten to complicated. We have a great system for +it built into the Linux kernel, with shared software stacks between whatever +base distro you want to use. -Every other option has buy in, and buzzwords. I want something truly simple that can manage virtual -machines on multiple hosts, integrating with existing tools, running from one/all of the hosts, a raspberry pi, -or as a guest machine on the cluster itself. +Every other option has buy in, and buzzwords. I want something truly simple that +can manage virtual machines on multiple hosts, integrating with existing tools, +running from one/all of the hosts, a raspberry pi, or as a guest machine on the +cluster itself. -The mission: Talk to libvirt hosts, coordinate them, manage them, and let people take their clusters back. +The mission: Talk to libvirt hosts, coordinate them, manage them, and let people +take their clusters back. Overall goals: + - HA Cluster resource manager (simpler then existing options, just for libvirt) - Share secrets - Share VM configs - know what VM is running on what cluster host - trigger migrations of hosts - - most simple quorum algorithm possible, ability to run 2 hosts reliably, up to ?? hosts without worry + - most simple quorum algorithm possible, ability to run 2 hosts reliably, + up to ?? hosts without worry + - Simplest quorum: If the controller can't reach it, it's down. - Shared Network management - Shared storage managment - Does not include clustered storage configuration - Can use different clustered storage systems (just not configure them directly) - Reliable backup and snapshotting - The tools exist for this, just needs to be exposed -- Install on any libvirt system, as long as the basic requirements are met as far as compatibility is concerned - - Should be able to have hosts on RedHat, Rocky, Arch, Ubuntu, Debian, whatever without worry -- Cloud-init configuration help to create useful and reusable cloud-init files, that don't need to be used - by the system only. It's a standard, use it. +- Install on any libvirt system, as long as the basic requirements are met as + far as compatibility is concerned + - Should be able to have hosts on RedHat, Rocky, Arch, Ubuntu, Debian, + whatever without worry +- Cloud-init configuration help to create useful and reusable cloud-init files, + that don't need to be used by the system only. It's a standard, use it. + +## Existing tools and libraries to use -### Existing tools and libraries to use - [https://pkg.go.dev/libvirt.org/go/libvirt] Go Bindings for libvirt - - Not sure if it can be used without libvirt existing on the system it's running on. Worth a try. + - Not sure if it can be used without libvirt existing on the system it's + running on. Worth a try. +## Roadmap -### Roadmap -1. Create simple daemon that can run on 1 or more hosts that will keep track of things +- Create simple daemon that can run on 1 or more hosts that will keep track of things - Libvirt daemon - Host Capabilities - Migration Capabilities @@ -42,5 +52,5 @@ Overall goals: - Volume management - Guest management - Connection management (to other libvirt hosts) -2. Create a simple WebUI with HTMX to monitor that stuff -3. Add the ability to manage that stuff once we can monitor it, through the WebUI. +- Create a simple WebUI with HTMX to monitor that stuff +- Add the ability to manage that stuff once we can monitor it, through the WebUI.