Commit Graph

2596 Commits

Author SHA1 Message Date
Joshua Boniface 1377c15948 Fix text in postinst 2019-12-09 13:33:47 -05:00
Joshua Boniface 867634cea7 Fix missing argument 2019-12-09 11:31:56 -05:00
Joshua Boniface 6c4eb7fc7b Use distutils to convert text to bools 2019-12-09 11:12:12 -05:00
Joshua Boniface 2027809bfd Add service unit for provisioner worker 2019-12-09 10:43:53 -05:00
Joshua Boniface 57e8fba602 Add provisioner to Debian packages 2019-12-09 10:40:27 -05:00
Joshua Boniface 19a75ea92e Verify if VM name exists before starting 2019-12-09 10:33:44 -05:00
Joshua Boniface d4dc3ac649 Enforce VM uniqueness when defining
Closes #56
2019-12-09 09:56:59 -05:00
Joshua Boniface 1924154dce Improve help text 2019-12-08 23:59:17 -05:00
Joshua Boniface 1fb560e996 Add DNS nameservers to networks 2019-12-08 23:55:45 -05:00
Joshua Boniface 9cb5561e77 Move default NS record to upstream_domain 2019-12-08 23:05:32 -05:00
Joshua Boniface 2dd6247d7b Further work on provisioner 2019-12-08 23:05:17 -05:00
Joshua Boniface 3471f4e57a Remove obsolete pvc-nsX and add pvc-ns name
Should point towards the floating IP.
2019-12-08 20:20:20 -05:00
Joshua Boniface f442ac6ad9 Force grub-install in partition 2019-12-07 19:41:53 -05:00
Joshua Boniface 84654dd50d Rename existing script and add dummy script 2019-12-07 02:19:41 -05:00
Joshua Boniface e045eafbc1 Get to installation completion 2019-12-07 02:16:13 -05:00
Joshua Boniface cff6a49660 Add some further steps to provisioning 2019-12-06 00:48:00 -05:00
Joshua Boniface c6986aa5b8 Add Celery queueing for VM creation function
Also define this function and provide the planned workflow.
2019-12-06 00:48:00 -05:00
Joshua Boniface 4a7c6db9b2 Initial provisioner configuration
Features all the components of creating various templates and scripts
for the provisioner, as well as VM profiles combining these.
2019-12-06 00:48:00 -05:00
Joshua Boniface 356c12db2e Add ceph df output to pool data
Allows additional information visible in the `ceph df` command,
including pool free space and used percentage.
2019-12-06 00:47:27 -05:00
Joshua Boniface 531578fd28 Use consistent tense for VM states
Replace "failed" with "fail" and "disabled" with "disable" for
consistency with the remaining states.
2019-10-23 23:57:59 -04:00
Joshua Boniface 6a4c75deb8 Clean up unnecessary zookeeper connection handling 2019-10-23 23:50:46 -04:00
Joshua Boniface 9736a3c653 Implement disabled state in cluster status
References #53
2019-10-23 23:49:19 -04:00
Joshua Boniface 32b4ed66e8 Add VM disable command
Closes #53
2019-10-23 23:44:47 -04:00
Joshua Boniface 715640955f Better handle missing OSD stat keys 2019-10-22 13:59:28 -04:00
Joshua Boniface 040ca33683 Clean up handling of OSD dump command 2019-10-22 12:51:29 -04:00
Joshua Boniface 190623bdd9 Use empty string for node limit 2019-10-22 12:32:14 -04:00
Joshua Boniface f0e0a38a20 Fix bug in config element retrieval 2019-10-22 12:30:23 -04:00
Joshua Boniface d5a120f490 Add colour to the health status output 2019-10-22 12:24:47 -04:00
Joshua Boniface e7129f0158 Correct invalid variable name 2019-10-22 12:18:51 -04:00
Joshua Boniface 4bff533571 Add cluster status command 2019-10-22 11:23:12 -04:00
Joshua Boniface 237a37015d Set upstream IP in key if changed 2019-10-21 16:50:41 -04:00
Joshua Boniface 10ae260b92 Properly handle empty node limit 2019-10-17 13:34:11 -04:00
Joshua Boniface 53dc343ea2 Avoid migration to invalid target_nodes 2019-10-17 12:16:21 -04:00
Joshua Boniface 8690d40927 Fix syntax error 2019-10-17 12:11:46 -04:00
Joshua Boniface fb29ce1167 Improve autoselection setup 2019-10-17 10:31:19 -04:00
Joshua Boniface 45ef7f2a30 Use better layout in entrypoint 2019-10-13 12:15:54 -04:00
Joshua Boniface ad5f232c03 Update header names 2019-10-13 12:11:23 -04:00
Joshua Boniface 03447d3374 Update copyright string year to include 2019 2019-10-13 12:09:51 -04:00
Joshua Boniface a9e9198970 Rename API library file 2019-10-13 12:07:57 -04:00
Joshua Boniface 116013695f Fix bugs with bad strings 2019-10-12 18:43:29 -04:00
Joshua Boniface 01c8986381 Update help messages in meta command 2019-10-12 02:08:52 -04:00
Joshua Boniface 75d95bbef7 Fix minor bugs 2019-10-12 02:03:23 -04:00
Joshua Boniface 18fc49fc6c Use node instead of hypervisor consistently 2019-10-12 01:59:08 -04:00
Joshua Boniface 0763bd2d51 Fix minor bugs 2019-10-12 01:55:37 -04:00
Joshua Boniface e5393082b6 Use build-in selector and respect limits in client
Use the new built-in selector option, as well as respecting node limits,
when performing migrate or move actions on a VM via the clients.
2019-10-12 01:45:44 -04:00
Joshua Boniface 8dc0c8f0ac Fix minor bugs 2019-10-12 01:36:50 -04:00
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
Joshua Boniface 94501f400f Remove vm add command
This is likely not going to be used with the planned implementation of
the automatic provisioning daemon, which will be either an API client or
direct Python binding client.
2019-10-11 23:52:20 -04:00
Joshua Boniface aaf9f5e43b Add clone volume to API 2019-10-10 14:37:35 -04:00
Joshua Boniface 6c9b49d7cd Add clone volume command to CLI 2019-10-10 14:11:13 -04:00