forked from rook/rook
This fixs that the `git describe` is run with the `-C REPO_PATH` flag to correctly get the latest tag of the k8s-vagrant-multi-node repo and not the Rook repository. Signed-off-by: Alexander Trost <galexrt@googlemail.com>
121 lines
3.8 KiB
Bash
Executable File
121 lines
3.8 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
scriptdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
REPO_DIR="${REPO_DIR:-${scriptdir}/../../.cache/k8s-vagrant-multi-node/}"
|
|
# shellcheck disable=SC1090
|
|
source "${scriptdir}/../../build/common.sh"
|
|
|
|
function init() {
|
|
if [ ! -d "${REPO_DIR}" ]; then
|
|
echo "k8s-vagrant-multi-node not found in rook cache dir. Cloning.."
|
|
mkdir -p "${REPO_DIR}"
|
|
git clone https://github.com/galexrt/k8s-vagrant-multi-node.git "${REPO_DIR}"
|
|
# checkout latest tag of the repo initially after clone
|
|
git -C "${REPO_DIR}" checkout "$(git -C "${REPO_DIR}" describe --tags `git rev-list --tags --max-count=1`)"
|
|
else
|
|
git -C "${REPO_DIR}" pull || { echo "git pull failed with exit code $?. continuing as the repo is already there ..."; }
|
|
fi
|
|
}
|
|
|
|
# Deletes pods with 'rook-' prefix. Namespace is expected as the first argument
|
|
function delete_rook_pods() {
|
|
for P in $(kubectl get pods -n "$1" | awk "/$2/ {print \$1}"); do
|
|
kubectl delete pod "$P" -n "$1"
|
|
done
|
|
}
|
|
|
|
# current kubectl context == minikube, returns boolean
|
|
function check_context() {
|
|
if [ "$(kubectl config view 2>/dev/null | awk '/current-context/ {print $NF}')" = "minikube" ]; then
|
|
return 0
|
|
fi
|
|
|
|
return 1
|
|
}
|
|
|
|
function copy_image_to_cluster() {
|
|
local build_image=$1
|
|
local final_image=$2
|
|
make load-image IMG="${build_image}" TAG="${final_image}"
|
|
}
|
|
|
|
function copy_images() {
|
|
if [[ "$1" == "" || "$1" == "ceph" ]]; then
|
|
echo "copying ceph images"
|
|
copy_image_to_cluster "${BUILD_REGISTRY}/ceph-amd64" rook/ceph:master
|
|
copy_image_to_cluster ceph/ceph:v13 ceph/ceph:v13
|
|
fi
|
|
|
|
if [[ "$1" == "" || "$1" == "cockroachdb" ]]; then
|
|
echo "copying cockroachdb image"
|
|
copy_image_to_cluster "${BUILD_REGISTRY}/cockroachdb-amd64" rook/cockroachdb:master
|
|
fi
|
|
|
|
if [[ "$1" == "" || "$1" == "cassandra" ]]; then
|
|
echo "copying cassandra image"
|
|
copy_image_to_cluster "${BUILD_REGISTRY}/cassandra-amd64" rook/cassandra:master
|
|
fi
|
|
|
|
if [[ "$1" == "" || "$1" == "minio" ]]; then
|
|
echo "copying minio image"
|
|
copy_image_to_cluster "${BUILD_REGISTRY}/minio-amd64" rook/minio:master
|
|
fi
|
|
|
|
if [[ "$1" == "" || "$1" == "nfs" ]]; then
|
|
echo "copying nfs image"
|
|
copy_image_to_cluster "${BUILD_REGISTRY}/nfs-amd64" rook/nfs:master
|
|
fi
|
|
}
|
|
|
|
init
|
|
|
|
cd "${REPO_DIR}" || { echo "failed to access k8s-vagrant-multi-node dir ${REPO_DIR}. exiting."; exit 1; }
|
|
|
|
case "${1:-}" in
|
|
status)
|
|
make status
|
|
;;
|
|
up)
|
|
make up
|
|
copy_images "${2}"
|
|
;;
|
|
update)
|
|
copy_images "${2}"
|
|
;;
|
|
restart)
|
|
if check_context; then
|
|
[ "$2" ] && regex=$2 || regex="^rook-"
|
|
echo "Restarting Rook pods matching the regex \"$regex\" in the following namespaces.."
|
|
for ns in $(kubectl get ns -o name | grep '^rook-'); do
|
|
echo "-> $ns"
|
|
delete_rook_pods "$ns" $regex
|
|
done
|
|
else
|
|
echo "To prevent accidental data loss acting only on 'minikube' context. No action is taken."
|
|
fi
|
|
;;
|
|
helm)
|
|
echo " copying rook image for helm"
|
|
helm_tag="$(cat _output/version)"
|
|
copy_image_to_cluster "${BUILD_REGISTRY}/ceph-amd64" "rook/ceph:${helm_tag}"
|
|
copy_image_to_cluster "${BUILD_REGISTRY}/minio-amd64" "rook/minio:${helm_tag}"
|
|
;;
|
|
clean)
|
|
make clean
|
|
;;
|
|
shell)
|
|
"${SHELL}"
|
|
;;
|
|
*)
|
|
echo "usage:" >&2
|
|
echo " $0 status" >&2
|
|
echo " $0 up [ceph | cockroachdb | cassandra | minio | nfs]" >&2
|
|
echo " $0 update" >&2
|
|
echo " $0 restart" >&2
|
|
echo " $0 helm" >&2
|
|
echo " $0 clean" >&2
|
|
echo " $0 shell - Open a '${SHELL}' shell in the cloned k8s-vagrant-multi-node project." >&2
|
|
echo " $0 help" >&2
|
|
;;
|
|
esac
|