Go to file
Joshua Boniface 5995353597 Implement VM metadata and use it
Implements the storing of three VM metadata attributes:
1. Node limits - allows specifying a list of hosts on which the VM must
run. This limit influences the migration behaviour of VMs.
2. Per-VM node selectors - allows each VM to have its migration
autoselection method specified, to automatically allow different methods
per VM based on the administrator's preferences.
3. VM autorestart - allows a VM to be automatically restarted from a
stopped state, presumably due to a failure to find a target node (either
due to limits or otherwise) during a flush/fence recovery, on the next
node unflush/ready state of its home hypervisor. Useful mostly in
conjunction with limits to ensure that VMs which were shut down due to
there being no valid migration targets are started back up when their
node becomes ready again.

Includes the full client interaction with these metadata options,
including printing, as well as defining a new function to modify this
metadata. For the CLI it is set/modified either on `vm define` or via the
`vm meta` command. For the API it is set/modified either on a POST to
the `/vm` endpoint (during VM definition) or on POST to the `/vm/<vm>`
endpoint. For the API this replaces the previous reserved word for VM
creation from scratch as this will no longer be implemented in-daemon
(see #22).

Closes #52
2019-10-12 01:17:39 -04:00
client-api Implement VM metadata and use it 2019-10-12 01:17:39 -04:00
client-cli Implement VM metadata and use it 2019-10-12 01:17:39 -04:00
client-common Implement VM metadata and use it 2019-10-12 01:17:39 -04:00
debian Bump version to 0.5 2019-08-08 20:56:27 -04:00
docs Implement VM metadata and use it 2019-10-12 01:17:39 -04:00
node-daemon Implement VM metadata and use it 2019-10-12 01:17:39 -04:00
.file-header Add file header template 2018-09-10 01:19:08 -04:00
.gitignore Ignore swap files 2018-06-18 21:26:36 -04:00
.gitlab-ci.yml Correct artifact location 2019-08-20 09:40:18 -04:00
LICENSE Remove licence blurb for python_dhcp_server 2018-10-14 16:29:39 -04:00
README.md Update README badges 2019-08-08 20:48:28 -04:00
build-and-deploy.sh Build with sudo too, if needed 2019-09-07 12:32:21 -04:00
build-deb.sh Bump version to 0.5 2019-08-08 20:56:27 -04:00
mkdocs.yml Revert "Add material theme to docs" 2019-07-10 15:23:26 -04:00
pvc_logo.svg A few more tweaks 2018-06-06 02:43:34 -04:00

README.md

PVC - The Parallel Virtual Cluster suite

Logo banner

License Release Pipeline Status Documentation Status

PVC is a suite of Python 3 tools to manage virtualized clusters. It provides a fully-functional private cloud based on four key principles:

  1. Be Free Software Forever (or Bust)
  2. Be Opinionated and Efficient and Pick The Best Software
  3. Be Scalable and Redundant but Not Hyperscale
  4. Be Simple To Use, Configure, and Maintain

It is designed to be an administrator-friendly but extremely powerful and rich modern private cloud system, but without the feature bloat and complexity of tools like OpenStack. With PVC, an administrator can provision, manage, and update a cluster of dozens or more hypervisors running thousands of VMs using a simple CLI tool, HTTP API, or [eventually] web interface. PVC is based entirely on Debian GNU/Linux and Free-and-Open-Source tools, providing the glue to bootstrap, provision and manage the cluster, then getting out of the administrators' way.

Your cloud, the best way; just add physical servers.

See the documentation here