mirror of https://github.com/k3s-io/k3s
Unify bazel and makefile modes of build for kubemark
parent
df1826c9d7
commit
e1bdc784a0
|
@ -26,19 +26,19 @@ function run-cmd-with-retries {
|
|||
if [[ "${ret_val:-0}" -ne "0" ]]; then
|
||||
if [[ $(echo "${result}" | grep -c "already exists") -gt 0 ]]; then
|
||||
if [[ "${attempt}" == 1 ]]; then
|
||||
echo -e "${color_red}Failed to $1 $2 $3 as the resource hasn't been deleted from a previous run.${color_norm}" >& 2
|
||||
echo -e "${color_red}Failed to $1 $2 ${3:-} as the resource hasn't been deleted from a previous run.${color_norm}" >& 2
|
||||
exit 1
|
||||
fi
|
||||
echo -e "${color_yellow}Succeeded to $1 $2 $3 in the previous attempt, but status response wasn't received.${color_norm}"
|
||||
echo -e "${color_yellow}Succeeded to $1 $2 ${3:-} in the previous attempt, but status response wasn't received.${color_norm}"
|
||||
return 0
|
||||
fi
|
||||
echo -e "${color_yellow}Attempt $attempt failed to $1 $2 $3. Retrying.${color_norm}" >& 2
|
||||
echo -e "${color_yellow}Attempt $attempt failed to $1 $2 ${3:-}. Retrying.${color_norm}" >& 2
|
||||
sleep $(($attempt * 5))
|
||||
else
|
||||
echo -e "${color_green}Succeeded to $1 $2 $3.${color_norm}"
|
||||
echo -e "${color_green}Succeeded to $1 $2 ${3:-}.${color_norm}"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
echo -e "${color_red}Failed to $1 $2 $3.${color_norm}" >& 2
|
||||
echo -e "${color_red}Failed to $1 $2 ${3:-}.${color_norm}" >& 2
|
||||
exit 1
|
||||
}
|
||||
|
|
|
@ -188,64 +188,34 @@ function start-master-components {
|
|||
echo "The master has started and is now live."
|
||||
}
|
||||
|
||||
# Finds the right kubemark binary for 'linux/amd64' platform and uses it to
|
||||
# create a docker image for hollow-node and upload it to the appropriate
|
||||
# docker container registry for the cloud provider.
|
||||
# Create a docker image for hollow-node and upload it to the appropriate docker registry.
|
||||
function create-and-upload-hollow-node-image {
|
||||
MAKE_DIR="${KUBE_ROOT}/cluster/images/kubemark"
|
||||
KUBEMARK_BIN="$(kube::util::find-binary-for-platform kubemark linux/amd64)"
|
||||
if [[ -z "${KUBEMARK_BIN}" ]]; then
|
||||
echo 'Cannot find cmd/kubemark binary'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Configuring registry authentication"
|
||||
mkdir -p "${HOME}/.docker"
|
||||
gcloud beta auth configure-docker -q
|
||||
|
||||
echo "Copying kubemark binary to ${MAKE_DIR}"
|
||||
cp "${KUBEMARK_BIN}" "${MAKE_DIR}"
|
||||
CURR_DIR=`pwd`
|
||||
cd "${MAKE_DIR}"
|
||||
RETRIES=3
|
||||
KUBEMARK_IMAGE_REGISTRY="${KUBEMARK_IMAGE_REGISTRY:-${CONTAINER_REGISTRY}/${PROJECT}}"
|
||||
for attempt in $(seq 1 ${RETRIES}); do
|
||||
if ! REGISTRY="${KUBEMARK_IMAGE_REGISTRY}" IMAGE_TAG="${KUBEMARK_IMAGE_TAG}" make "${KUBEMARK_IMAGE_MAKE_TARGET}"; then
|
||||
if [[ $((attempt)) -eq "${RETRIES}" ]]; then
|
||||
echo "${color_red}Make failed. Exiting.${color_norm}"
|
||||
exit 1
|
||||
fi
|
||||
echo -e "${color_yellow}Make attempt $(($attempt)) failed. Retrying.${color_norm}" >& 2
|
||||
sleep $(($attempt * 5))
|
||||
else
|
||||
break
|
||||
if [[ "${KUBEMARK_BAZEL_BUILD:-}" =~ ^[yY]$ ]]; then
|
||||
# Build+push the image through bazel.
|
||||
build_cmd=("bazel" "run" "//cluster/images/kubemark:push" "--define" "REGISTRY=${KUBEMARK_IMAGE_REGISTRY}" "--define" "IMAGE_TAG=${KUBEMARK_IMAGE_TAG}")
|
||||
run-cmd-with-retries "${build_cmd[@]}"
|
||||
else
|
||||
# Build+push the image through makefile.
|
||||
build_cmd=("make" "${KUBEMARK_IMAGE_MAKE_TARGET}")
|
||||
MAKE_DIR="${KUBE_ROOT}/cluster/images/kubemark"
|
||||
KUBEMARK_BIN="$(kube::util::find-binary-for-platform kubemark linux/amd64)"
|
||||
if [[ -z "${KUBEMARK_BIN}" ]]; then
|
||||
echo 'Cannot find cmd/kubemark binary'
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
rm kubemark
|
||||
cd $CURR_DIR
|
||||
echo "Created and uploaded the kubemark hollow-node image to docker registry."
|
||||
}
|
||||
|
||||
# Use bazel rule to create a docker image for hollow-node and upload
|
||||
# it to the appropriate docker container registry for the cloud provider.
|
||||
function create-and-upload-hollow-node-image-bazel {
|
||||
echo "Configuring registry authentication"
|
||||
mkdir -p "${HOME}/.docker"
|
||||
gcloud beta auth configure-docker -q
|
||||
|
||||
RETRIES=3
|
||||
for attempt in $(seq 1 ${RETRIES}); do
|
||||
if ! bazel run //cluster/images/kubemark:push --define REGISTRY="${KUBEMARK_IMAGE_REGISTRY}" --define IMAGE_TAG="${KUBEMARK_IMAGE_TAG}"; then
|
||||
if [[ $((attempt)) -eq "${RETRIES}" ]]; then
|
||||
echo "${color_red}Image push failed. Exiting.${color_norm}"
|
||||
exit 1
|
||||
fi
|
||||
echo -e "${color_yellow}Make attempt $(($attempt)) failed. Retrying.${color_norm}" >& 2
|
||||
sleep $(($attempt * 5))
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
echo "Copying kubemark binary to ${MAKE_DIR}"
|
||||
cp "${KUBEMARK_BIN}" "${MAKE_DIR}"
|
||||
CURR_DIR=`pwd`
|
||||
cd "${MAKE_DIR}"
|
||||
REGISTRY=${KUBEMARK_IMAGE_REGISTRY} IMAGE_TAG=${KUBEMARK_IMAGE_TAG} run-cmd-with-retries "${build_cmd[@]}"
|
||||
rm kubemark
|
||||
cd $CURR_DIR
|
||||
fi
|
||||
echo "Created and uploaded the kubemark hollow-node image to docker registry."
|
||||
}
|
||||
|
||||
|
@ -500,11 +470,7 @@ start-master-components
|
|||
# Setup for hollow-nodes.
|
||||
echo ""
|
||||
echo -e "${color_yellow}STARTING SETUP FOR HOLLOW-NODES${color_norm}"
|
||||
if [[ "${KUBEMARK_BAZEL_BUILD:-}" =~ ^[yY]$ ]]; then
|
||||
create-and-upload-hollow-node-image-bazel
|
||||
else
|
||||
create-and-upload-hollow-node-image
|
||||
fi
|
||||
create-and-upload-hollow-node-image
|
||||
create-kube-hollow-node-resources
|
||||
wait-for-hollow-nodes-to-run-or-timeout
|
||||
|
||||
|
|
Loading…
Reference in New Issue