83 lines
2.3 KiB
Bash
Executable File
83 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
#
|
|
# This file will be fetched as: curl -L https://git.io/getLatestKubebuilder | sh -
|
|
# so it should be pure bourne shell, not bash (and not reference other scripts)
|
|
#
|
|
# The script fetches the latest kubebuilder release candidate and untars it.
|
|
# It lets users to do curl -L https://git.io//getLatestKubebuilder | KUBEBUILDER_VERSION=1.0.5 sh -
|
|
# for instance to change the version fetched.
|
|
|
|
# Check if the program is installed, otherwise exit
|
|
function command_exists () {
|
|
if ! [[ -x "$(command -v $1)" ]]; then
|
|
echo "Error: $1 program is not installed." >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Determine OS
|
|
OS="$(uname)"
|
|
case $OS in
|
|
Darwin)
|
|
OSEXT="darwin"
|
|
;;
|
|
Linux)
|
|
OSEXT="linux"
|
|
;;
|
|
*)
|
|
echo "Only OSX and Linux OS are supported !"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
HW=$(uname -m)
|
|
case $HW in
|
|
x86_64)
|
|
ARCH=amd64 ;;
|
|
aarch64)
|
|
ARCH=arm64 ;;
|
|
*)
|
|
echo "Only x86_64/arm64 machines are supported !"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# Check if curl, tar commands/programs exist
|
|
command_exists curl
|
|
command_exists tar
|
|
|
|
KUBEBUILDER_VERSION=v2.3.1
|
|
KUBEBUILDER_VERSION=${KUBEBUILDER_VERSION#"v"}
|
|
KUBEBUILDER_VERSION_NAME="kubebuilder_${KUBEBUILDER_VERSION}"
|
|
KUBEBUILDER_DIR=/usr/local/kubebuilder
|
|
|
|
# Check if folder containing kubebuilder executable exists and is not empty
|
|
if [[ -d "$KUBEBUILDER_DIR" ]]; then
|
|
if [[ "$(ls -A ${KUBEBUILDER_DIR})" ]]; then
|
|
echo "\n/usr/local/kubebuilder folder is not empty. Please delete or backup it before to install ${KUBEBUILDER_VERSION_NAME}"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
TMP_DIR=$(mktemp -d)
|
|
pushd $TMP_DIR
|
|
|
|
# Downloading Kubebuilder compressed file using curl program
|
|
URL="https://github.com/kubernetes-sigs/kubebuilder/releases/download/v${KUBEBUILDER_VERSION}/${KUBEBUILDER_VERSION_NAME}_${OSEXT}_${ARCH}.tar.gz"
|
|
echo "Downloading ${KUBEBUILDER_VERSION_NAME}\nfrom $URL\n"
|
|
curl -L "$URL"| tar xz -C ${TMP_DIR}
|
|
|
|
echo "Downloaded executable files"
|
|
ls "${KUBEBUILDER_VERSION_NAME}_${OSEXT}_${ARCH}/bin"
|
|
|
|
echo "Moving files to $KUBEBUILDER_DIR folder\n"
|
|
mv ${KUBEBUILDER_VERSION_NAME}_${OSEXT}_${ARCH} kubebuilder && sudo mv -f kubebuilder /usr/local/
|
|
|
|
echo "Add kubebuilder to your path; e.g copy paste in your shell and/or edit your ~/.profile file"
|
|
echo "export PATH=\$PATH:/usr/local/kubebuilder/bin"
|
|
popd
|
|
rm -rf ${TMP_DIR}
|
|
|
|
export PATH=$PATH:/usr/local/kubebuilder/bin
|