kube-router/hack/vagrant-common.sh

73 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env sh
# vim: noai:ts=2:sw=2:set expandtab
set -e
if [ -z "${HACK_DIR}" ]; then
echo "ERROR: HACK_DIR must be specified."
echo
echo "## Example"
echo "HACK_DIR=\"\$\(CDPATH=i\'\' cd -- \"\$\(dirname -- \"\$0\"\)\" \&\& pwd -P\)\""
echo "export HACK_DIR"
echo ". ${0}"
echo
exit 1
fi
REPO_DIR="$(dirname "${HACK_DIR}")"
HACK_TMP_DIR="${HACK_DIR}/_cache"
HACK_MANIFEST_DIRS="${REPO_DIR}/contrib/bootkube"
export HACK_MANIFEST_DIRS
[ -z "${DEV_IMG}" ] && DEV_IMG="cloudnativelabs/kube-router-git:latest"
[ -z "${BK_VERSION}" ] && BK_VERSION="v0.6.0_kube-router"
[ -z "${BK_CLONE_URL}" ] && BK_CLONE_URL="https://github.com/bzub/bootkube.git"
[ -z "${BK_CLONE_DIR}" ] && BK_CLONE_DIR="${HACK_TMP_DIR}/bootkube"
if [ -z "${HACK_MULTI_NODE}" ]; then
BK_HACK_DIR="${BK_CLONE_DIR}/hack/single-node"
else
BK_HACK_DIR="${BK_CLONE_DIR}/hack/multi-node"
fi
export BK_HACK_DIR
BK_SHORTCUT_DIR="/tmp/kr-vagrant-shortcut"
export BK_SHORTCUT_DIR
[ -z "${KR_IMAGE_TAG}" ] && KR_IMAGE_TAG="test.kube-router.io"
[ -z "${KR_MANIFEST}" ] && KR_MANIFEST="kube-router.yaml"
[ -z "${docker}" ] && docker="sudo docker"
KR_MANIFEST_PATH="${BK_CLONE_DIR}/hack/custom-manifests/${KR_MANIFEST}"
export KR_MANIFEST_PATH
# TODO: Dynamically determine this from Bootkube version/source
[ -z "${HYPERKUBE_IMG}" ] && HYPERKUBE_IMG="quay.io/coreos/hyperkube"
[ -z "${HYPERKUBE_IMG_TAG}" ] && HYPERKUBE_IMG_TAG="v1.7.1_coreos.0"
HYPERKUBE_IMG_URL="${HYPERKUBE_IMG}:${HYPERKUBE_IMG_TAG}"
export HYPERKUBE_IMG_URL
HACK_IMG_CACHE_DIR="${BK_CLONE_DIR}/hack/local-images"
export HACK_IMG_CACHE_DIR
HACK_ACI_CACHE_FILE="${HACK_IMG_CACHE_DIR}/hyperkube-${HYPERKUBE_IMG_TAG}.aci"
export HACK_ACI_CACHE_FILE
HACK_DOCKER_CACHE_FILE="${HACK_IMG_CACHE_DIR}/hyperkube-${HYPERKUBE_IMG_TAG}.docker"
export HACK_DOCKER_CACHE_FILE
# Export the kube-router container image
export_latest_image() {
mkdir -p "${HACK_IMG_CACHE_DIR}"
eval "${docker}" tag ${DEV_IMG} "${KR_IMAGE_TAG}"
eval "${docker}" save "${KR_IMAGE_TAG}" -o "${HACK_IMG_CACHE_DIR}/kube-router.docker"
}
# Re-pull the kube-router container image file within the VM
# Usage: update_image_in_vm() VM_NAME
update_image_in_vm() {
if [ -z "${1}" ]; then
echo "ERROR: VM name required."
echo "Usage: update_image_in_vm() VM_NAME"
return 1
fi
vagrant rsync "${i}"
vagrant ssh "${i}" -c "docker load -i /var/tmp/images/kube-router.docker"
}