mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 04:06:03 +00:00
Translate a published version like 'release/stable' to version number
This commit is contained in:
parent
aa8a03ef07
commit
0ea13c6495
@ -63,7 +63,31 @@ set -o errexit
|
|||||||
set -o nounset
|
set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
KUBERNETES_RELEASE_URL="${KUBERNETES_RELEASE_URL:-https://storage.googleapis.com/kubernetes-release/release}"
|
# If KUBERNETES_RELEASE_URL is overridden but KUBERNETES_CI_RELEASE_URL is not then set KUBERNETES_CI_RELEASE_URL to KUBERNETES_RELEASE_URL.
|
||||||
|
KUBERNETES_CI_RELEASE_URL="${KUBERNETES_CI_RELEASE_URL:-${KUBERNETES_RELEASE_URL:-https://dl.k8s.io/ci}}"
|
||||||
|
KUBERNETES_RELEASE_URL="${KUBERNETES_RELEASE_URL:-https://dl.k8s.io}"
|
||||||
|
|
||||||
|
KUBE_RELEASE_VERSION_REGEX="^v(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(-(beta|alpha)\\.(0|[1-9][0-9]*))?$"
|
||||||
|
KUBE_CI_VERSION_REGEX="^v(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)-(beta|alpha)\\.(0|[1-9][0-9]*)(\\.(0|[1-9][0-9]*)\\+[-0-9a-z]*)?$"
|
||||||
|
|
||||||
|
# Sets KUBE_VERSION variable if an explicit version number was provided (e.g. "v1.0.6",
|
||||||
|
# "v1.2.0-alpha.1.881+376438b69c7612") or resolves the "published" version
|
||||||
|
# <path>/<version> (e.g. "release/stable",' "ci/latest-1") by reading from GCS.
|
||||||
|
#
|
||||||
|
# See the docs on getting builds for more information about version
|
||||||
|
# publication.
|
||||||
|
#
|
||||||
|
# Args:
|
||||||
|
# $1 version string from command line
|
||||||
|
# Vars set:
|
||||||
|
# KUBE_VERSION
|
||||||
|
function set_binary_version() {
|
||||||
|
if [[ "${1}" =~ "/" ]]; then
|
||||||
|
KUBE_VERSION=$(curl -fL "https://dl.k8s.io/${1}.txt")
|
||||||
|
else
|
||||||
|
KUBE_VERSION=${1}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Use the script from inside the Kubernetes tarball to fetch the client and
|
# Use the script from inside the Kubernetes tarball to fetch the client and
|
||||||
# server binaries (if not included in kubernetes.tar.gz).
|
# server binaries (if not included in kubernetes.tar.gz).
|
||||||
@ -110,18 +134,6 @@ if [[ -d "./kubernetes" ]]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
function get_latest_version_number {
|
|
||||||
local -r latest_url="https://storage.googleapis.com/kubernetes-release/release/stable.txt"
|
|
||||||
if [[ $(which wget) ]]; then
|
|
||||||
wget -qO- "${latest_url}"
|
|
||||||
elif [[ $(which curl) ]]; then
|
|
||||||
curl -sSfL --retry 3 --keepalive-time 2 "${latest_url}"
|
|
||||||
else
|
|
||||||
echo "Couldn't find curl or wget. Bailing out." >&2
|
|
||||||
exit 4
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# TODO: remove client checks once kubernetes.tar.gz no longer includes client
|
# TODO: remove client checks once kubernetes.tar.gz no longer includes client
|
||||||
# binaries by default.
|
# binaries by default.
|
||||||
kernel=$(uname -s)
|
kernel=$(uname -s)
|
||||||
@ -162,21 +174,33 @@ case "${machine}" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
file=kubernetes.tar.gz
|
file=kubernetes.tar.gz
|
||||||
release=${KUBERNETES_RELEASE:-$(get_latest_version_number)}
|
release=${KUBERNETES_RELEASE:-"release/stable"}
|
||||||
release_url="${KUBERNETES_RELEASE_URL}/${release}/${file}"
|
|
||||||
|
# Validate Kubernetes release version.
|
||||||
|
# Translate a published version <bucket>/<version> (e.g. "release/stable") to version number.
|
||||||
|
set_binary_version "${release}"
|
||||||
|
if [[ ${KUBE_VERSION} =~ ${KUBE_RELEASE_VERSION_REGEX} ]]; then
|
||||||
|
release_url="${KUBERNETES_RELEASE_URL}/${KUBE_VERSION}/${file}"
|
||||||
|
elif [[ ${KUBE_VERSION} =~ ${KUBE_CI_VERSION_REGEX} ]]; then
|
||||||
|
release_url="${KUBERNETES_CI_RELEASE_URL}/${KUBE_VERSION}/${file}"
|
||||||
|
else
|
||||||
|
echo "Version doesn't match regexp" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
need_download=true
|
need_download=true
|
||||||
if [[ -r "${PWD}/${file}" ]]; then
|
if [[ -r "${PWD}/${file}" ]]; then
|
||||||
downloaded_version=$(tar -xzOf "${PWD}/${file}" kubernetes/version 2>/dev/null || true)
|
downloaded_version=$(tar -xzOf "${PWD}/${file}" kubernetes/version 2>/dev/null || true)
|
||||||
echo "Found preexisting ${file}, release ${downloaded_version}"
|
echo "Found preexisting ${file}, release ${downloaded_version}"
|
||||||
if [[ "${downloaded_version}" == "${release}" ]]; then
|
if [[ "${downloaded_version}" == "${KUBE_VERSION}" ]]; then
|
||||||
echo "Using preexisting kubernetes.tar.gz"
|
echo "Using preexisting kubernetes.tar.gz"
|
||||||
need_download=false
|
need_download=false
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if "${need_download}"; then
|
if "${need_download}"; then
|
||||||
echo "Downloading kubernetes release ${release}"
|
echo "Downloading kubernetes release ${KUBE_VERSION}"
|
||||||
echo " from ${release_url}"
|
echo " from ${release_url}"
|
||||||
echo " to ${PWD}/${file}"
|
echo " to ${PWD}/${file}"
|
||||||
fi
|
fi
|
||||||
@ -212,7 +236,7 @@ if "${need_download}"; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Unpacking kubernetes release ${release}"
|
echo "Unpacking kubernetes release ${KUBE_VERSION}"
|
||||||
rm -rf "${PWD}/kubernetes"
|
rm -rf "${PWD}/kubernetes"
|
||||||
tar -xzf ${file}
|
tar -xzf ${file}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user