ecm-distro-tools/bin/bootstrap_hash

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