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
Joshua Boniface
f6b40911f8
Revert "Add base CLI for deploy section"
...
This reverts commit ed43c70f61
.
2019-10-10 14:09:40 -04:00
Joshua Boniface
1c44a1a26e
Revert "Add base CLI for deploy image section"
...
This reverts commit f918058e6e
.
2019-10-10 14:09:33 -04:00
Joshua Boniface
76e6b42389
Add clone_volume backend command
2019-10-10 14:09:07 -04:00
Joshua Boniface
b0175eafcb
Fix bug in output
2019-09-27 11:25:36 -04:00
Joshua Boniface
63cf90b23d
Add Python header to ceph.py
2019-09-26 14:07:52 -04:00
Joshua Boniface
f918058e6e
Add base CLI for deploy image section
2019-09-09 10:57:36 -04:00
Joshua Boniface
3942f21f11
Build with sudo too, if needed
2019-09-07 12:32:21 -04:00
Joshua Boniface
0c9d6db14f
Gracefully handle log following output
...
If the Zookeeper node goes away (e.g. VM is deleted), return a
reasonable error message instead of a stack trace.
2019-09-07 12:30:31 -04:00
Joshua Boniface
983daceaed
Fix shutdown abort during restart
...
Restart state, being different from shutdown, would trigger an abort of
the shutdown. Fix this by including restart in the valid states to
continue.
2019-09-07 12:08:31 -04:00
Joshua Boniface
ed43c70f61
Add base CLI for deploy section
2019-08-25 21:18:33 -04:00
Joshua Boniface
5158cec0ec
Implement configurable replcfg (documentation)
...
Implements administrator-selectable replication configurations for new
pools in PVC clusters, overriding the default of copies=3,mincopies=2.
2019-08-23 22:14:28 -04:00
Joshua Boniface
7c4d18691a
Implement configurable replcfg (node-side)
...
Implements administrator-selectable replication configurations for new
pools in PVC clusters, overriding the default of copies=3,mincopies=2.
2019-08-23 21:58:54 -04:00
Joshua Boniface
3b7c1adf71
Implement configurable replcfg (client-side)
...
Implements administrator-selectable replication configurations for new
pools in PVC clusters, overriding the default of copies=3,mincopies=2.
2019-08-23 14:12:15 -04:00
Joshua Boniface
0bacae21d7
Correct artifact location
2019-08-20 09:40:18 -04:00
Joshua Boniface
9bee1ac94c
Correct typo
2019-08-20 09:37:36 -04:00
Joshua Boniface
268fbd10e7
Fix call to build-deb.sh
2019-08-20 09:36:38 -04:00
Joshua Boniface
d938bcd44c
Use in-repo build-deb script in CI
2019-08-20 09:24:47 -04:00
Joshua Boniface
5876f4589b
Add little easter egg to the init command
...
Because who doesn't like David Wilcox?
2019-08-20 09:19:56 -04:00
Joshua Boniface
53ab6969a4
Update CI to 0.5
2019-08-13 11:31:15 -04:00
Joshua Boniface
267a3d16e5
Bump version to 0.5
2019-08-08 20:56:27 -04:00
Joshua Boniface
795ca0777c
Update README badges
2019-08-08 20:48:28 -04:00
Joshua Boniface
48764f2e70
Correct spelling in all documentation
2019-08-08 20:36:25 -04:00
Joshua Boniface
427ef9454a
Use dash in flush-locks command
2019-08-07 17:50:25 -04:00
Joshua Boniface
2880a761c0
Move Ceph command pipe to new location
...
Matching the new /cmd/domain pipe, move Ceph pipe to /cmd/ceph.
2019-08-07 14:47:27 -04:00
Joshua Boniface
ea2426fa73
Implement additional functions
...
1. VM state
2. VM node
3. Lock flush
2019-08-07 14:46:20 -04:00
Joshua Boniface
b7546e3711
Fix bugs in command pipeline for VMs
2019-08-07 14:13:01 -04:00
Joshua Boniface
0ff2d7d537
Use shlex for command splitting
...
This will preserve quoted strings, required for the rbd lock commands.
2019-08-07 14:02:57 -04:00
Joshua Boniface
a2a630f6a0
Add pipeline for VM lock flush cmd
2019-08-07 13:49:33 -04:00
Joshua Boniface
d63d9637a5
Add flush_locks command to CLI client
2019-08-07 13:42:01 -04:00
Joshua Boniface
43756fc62b
Implement lock flush function for clients
...
Uses a similar command pathway as the Ceph commands do, but in a
different location (pending move of the Ceph commands to a similar
location).
2019-08-07 13:38:49 -04:00
Joshua Boniface
496216321e
Move lock flushing to VMInstance
...
Prepares for reuse of this function via client commands.
2019-08-07 13:36:56 -04:00
Joshua Boniface
fac02f8520
Add hosts element to Ansible doc
2019-08-07 12:50:03 -04:00
Joshua Boniface
0446b2db02
Catch exceptions if Patroni is not up
2019-08-07 11:46:58 -04:00
Joshua Boniface
7e77752ce5
Add limit to Patroni switchover attempts
2019-08-07 11:46:42 -04:00
Joshua Boniface
33a963c2af
Improve fence output on failure and increase delay
2019-08-07 11:35:49 -04:00
Joshua Boniface
e92a57606d
Use better forceful arping command
...
Send ARP responses with the source IP in it to force update even if the
old primary did not cleanly terminate (during fencing for instance).
2019-08-07 11:29:38 -04:00
Joshua Boniface
ef3b6b3723
Arping 3 times instead of 2
...
During fence 2 is not always enough for the network to recognize the
change in primary coordinator.
2019-08-07 11:15:36 -04:00
Joshua Boniface
b8d336423e
Add basic testing procedures to manual
2019-08-07 11:07:05 -04:00
Joshua Boniface
3b27a88128
Allow abort of shutdown state
...
Adds some logic to allow an active shutdown state to be aborted by
changing the VM to another state. Useful mostly if a VM is doing funky
things and not responding to the shutdown, but the administrator either
doesn't want to wait for the timer to expire (forcing an immediate
termination) or wishes to abort the shutdown attempt.
Fixes #49
2019-08-07 10:58:18 -04:00
Joshua Boniface
e2ae58b62c
Add the missing newline to the string compare
2019-08-04 17:00:33 -04:00
Joshua Boniface
d0d5ab4425
Fix bug if the switchover target is the same
2019-08-04 16:51:11 -04:00
Joshua Boniface
a329376d33
Lock primary_node key during primary switchover
...
Also implements a looping to switch over the Patroni leader to ensure
this always follows the primary and clean up the code around here a bit.
2019-08-04 16:42:06 -04:00
Joshua Boniface
710d2cf9c2
Fix record duplication bug and general cleanup
...
Fixes #47
2019-08-01 13:11:45 -04:00
Joshua Boniface
8bdec03cf1
Properly support debug logging via config
2019-08-01 11:22:27 -04:00
Joshua Boniface
c6e58796ba
Clean up redundant return section
2019-07-31 23:57:31 -04:00
Joshua Boniface
6a712ffe7a
Don't crash if VM has invalid disks
...
Useful if storage=False and removing a VM.
2019-07-31 23:05:00 -04:00