66 lines
1.2 KiB
Bash
Executable File
66 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
. libstd-ecm.sh
|
|
|
|
usage() {
|
|
echo "usage: $0 [pdh]
|
|
-p project: k3s or rke2
|
|
-d data-dir
|
|
-h show help
|
|
|
|
examples:
|
|
$0
|
|
$0 -d /path/to/data-dir"
|
|
}
|
|
|
|
while getopts 'p:d:h' c; do
|
|
case $c in
|
|
p)
|
|
PROJECT=$OPTARG
|
|
;;
|
|
d)
|
|
DATA_DIR=$OPTARG
|
|
;;
|
|
h)
|
|
usage
|
|
exit 0
|
|
;;
|
|
*)
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ "${PROJECT}" != "k3s" ] && [ "${PROJECT}" != "rke2" ]; then
|
|
echo "error: invalid project"
|
|
exit 1
|
|
fi
|
|
|
|
BASE_DIR="/var/lib/rancher"
|
|
|
|
if [ -z "${DATA_DIR}" ]; then
|
|
DATA_DIR="${BASE_DIR}/${PROJECT}"
|
|
|
|
if [ ! -d "${DATA_DIR}" ]; then
|
|
echo "error: does not exist: ${DATA_DIR}"
|
|
exit 1
|
|
fi
|
|
else
|
|
DATA_DIR=${DATA_DIR}/${PROJECT}
|
|
fi
|
|
|
|
has_etcdctl
|
|
|
|
ETCDCTL_API=3 etcdctl \
|
|
--cert "${DATA_DIR}/server/tls/etcd/server-client.crt" \
|
|
--key "${DATA_DIR}/server/tls/etcd/server-client.key" \
|
|
--endpoints https://127.0.0.1:2379 \
|
|
--cacert "${DATA_DIR}/server/tls/etcd/server-ca.crt" get \
|
|
--prefix / \
|
|
--keys-only | awk -F '/' '/\/bootstrap/ {print $3}'
|
|
|
|
exit 0
|