Update etcd defrag and backup
Created by: matofeder
This PR updates etcd defragmentation and backup script as follows:
-
Script exits without any defragmentation/backup/trim action if:
- It is executed on non leader etcd member
- It is executed on etcd cluster with some unhealthy member
- It is executed on single member etcd cluster
-
Conditions above could be skipped and the script execution could be forced by the optional arguments:
--force-single
--force-unhealthy
--force-nonleader
-
Script then defragments the etcd cluster as follows:
- Defrag the non leader etcd members first
- Change the leadership to the randomly selected and defragmentation completed etcd member
- Defrag the local (ex-leader) etcd member
-
Script then backup & trim local (ex-leader) etcd member
Note:
This script executes etcdctl commands like etcdctl move-leader
or etcdctl endpoint status --cluster
which were introduced in etcdctl version 3.3.0. The previous etcdctl client was installed as an apt
package. The latest etcdctl version available in Ubuntu 20.04 repositories is v3.2.26, hence this PR also installs the desired version of etcdctl client. Etcdctl client is then used for etcd DB maintenance tasks.
Closes #384 (closed)