Unverified Commit 657951c3 authored by Kubernetes Prow Robot's avatar Kubernetes Prow Robot Committed by GitHub

Merge pull request #74889 from akutz/feature/get-kube-binaries-client-choice

Allow choice of os/arch when downloading client
parents 22621ca4 020dc470
...@@ -29,6 +29,21 @@ ...@@ -29,6 +29,21 @@
# * ppc64le # * ppc64le
# * s390x # * s390x
# #
# Set KUBERNETES_CLIENT_OS to choose the client OS to download:
# * current OS [default]
# * linux
# * darwin
# * windows
#
# Set KUBERNETES_CLIENT_ARCH to choose the client architecture to download:
# * current architecture [default]
# * amd64
# * arm
# * arm64
# * ppc64le
# * s390x
# * windows
#
# Set KUBERNETES_SKIP_CONFIRM to skip the installation confirmation prompt. # Set KUBERNETES_SKIP_CONFIRM to skip the installation confirmation prompt.
# Set KUBERNETES_RELEASE_URL to choose where to download binaries from. # Set KUBERNETES_RELEASE_URL to choose where to download binaries from.
# (Defaults to https://storage.googleapis.com/kubernetes-release/release). # (Defaults to https://storage.googleapis.com/kubernetes-release/release).
...@@ -59,48 +74,57 @@ function detect_kube_release() { ...@@ -59,48 +74,57 @@ function detect_kube_release() {
} }
function detect_client_info() { function detect_client_info() {
local kernel machine if [ -n "${KUBERNETES_CLIENT_OS-}" ]; then
kernel="$(uname -s)" CLIENT_PLATFORM="${KUBERNETES_CLIENT_OS}"
case "${kernel}" in else
Darwin) local kernel
CLIENT_PLATFORM="darwin" kernel="$(uname -s)"
;; case "${kernel}" in
Linux) Darwin)
CLIENT_PLATFORM="linux" CLIENT_PLATFORM="darwin"
;; ;;
*) Linux)
echo "Unknown, unsupported platform: ${kernel}." >&2 CLIENT_PLATFORM="linux"
echo "Supported platforms: Linux, Darwin." >&2 ;;
echo "Bailing out." >&2 *)
exit 2 echo "Unknown, unsupported platform: ${kernel}." >&2
esac echo "Supported platforms: Linux, Darwin." >&2
echo "Bailing out." >&2
# TODO: migrate the kube::util::host_platform function out of hack/lib and exit 2
# use it here. esac
machine="$(uname -m)" fi
case "${machine}" in
x86_64*|i?86_64*|amd64*) if [ -n "${KUBERNETES_CLIENT_ARCH-}" ]; then
CLIENT_ARCH="amd64" CLIENT_ARCH="${KUBERNETES_CLIENT_ARCH}"
;; else
aarch64*|arm64*) # TODO: migrate the kube::util::host_platform function out of hack/lib and
CLIENT_ARCH="arm64" # use it here.
;; local machine
arm*) machine="$(uname -m)"
CLIENT_ARCH="arm" case "${machine}" in
;; x86_64*|i?86_64*|amd64*)
i?86*) CLIENT_ARCH="amd64"
CLIENT_ARCH="386" ;;
;; aarch64*|arm64*)
s390x*) CLIENT_ARCH="arm64"
CLIENT_ARCH="s390x" ;;
;; arm*)
*) CLIENT_ARCH="arm"
echo "Unknown, unsupported architecture (${machine})." >&2 ;;
echo "Supported architectures x86_64, i686, arm, arm64, s390x." >&2 i?86*)
echo "Bailing out." >&2 CLIENT_ARCH="386"
exit 3 ;;
;; s390x*)
esac CLIENT_ARCH="s390x"
;;
*)
echo "Unknown, unsupported architecture (${machine})." >&2
echo "Supported architectures x86_64, i686, arm, arm64, s390x." >&2
echo "Bailing out." >&2
exit 3
;;
esac
fi
} }
function md5sum_file() { function md5sum_file() {
...@@ -171,7 +195,11 @@ CLIENT_TAR="kubernetes-client-${CLIENT_PLATFORM}-${CLIENT_ARCH}.tar.gz" ...@@ -171,7 +195,11 @@ CLIENT_TAR="kubernetes-client-${CLIENT_PLATFORM}-${CLIENT_ARCH}.tar.gz"
echo "Kubernetes release: ${KUBE_VERSION}" echo "Kubernetes release: ${KUBE_VERSION}"
echo "Server: ${SERVER_PLATFORM}/${SERVER_ARCH} (to override, set KUBERNETES_SERVER_ARCH)" echo "Server: ${SERVER_PLATFORM}/${SERVER_ARCH} (to override, set KUBERNETES_SERVER_ARCH)"
echo "Client: ${CLIENT_PLATFORM}/${CLIENT_ARCH} (autodetected)" printf "Client: %s/%s" "${CLIENT_PLATFORM}" "${CLIENT_ARCH}"
if [ -z "${KUBERNETES_CLIENT_OS-}" ] && [ -z "${KUBERNETES_CLIENT_ARCH-}" ]; then
printf " (autodetected)"
fi
echo " (to override, set KUBERNETES_CLIENT_OS and/or KUBERNETES_CLIENT_ARCH)"
echo echo
echo "Will download ${SERVER_TAR} from ${DOWNLOAD_URL_PREFIX}" echo "Will download ${SERVER_TAR} from ${DOWNLOAD_URL_PREFIX}"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment