Use kube::release::gcs::publish_latest_official logic in mark-stable-release.sh…

Use kube::release::gcs::publish_latest_official logic in mark-stable-release.sh and add quote fixups, fixes #14785; implement major- and minor-pinned version releases, fixes #14920
parent 7c5b8f6a
......@@ -20,31 +20,24 @@ set -o errexit
set -o nounset
set -o pipefail
if [[ -z "$1" ]]; then
echo "Usage: $0 <version>"
if [ "$#" -ne 1 ]; then
echo "Usage: ${0} <version>"
exit 1
fi
if ! gsutil ls gs://kubernetes-release/release/${1}/kubernetes.tar.gz; then
echo "Release files don't exist, aborting."
exit 2
fi
STABLE_FILE_LOCATION="kubernetes-release/release/stable.txt"
KUBE_RELEASE_VERSION="${1-}"
version_file=$(mktemp -t stable.XXXXXX)
KUBE_GCS_MAKE_PUBLIC='y'
KUBE_GCS_RELEASE_BUCKET='kubernetes-release'
KUBE_GCS_RELEASE_PREFIX="release/${KUBE_RELEASE_VERSION}"
KUBE_GCS_PUBLISH_VERSION="${KUBE_RELEASE_VERSION}"
echo $1 >> ${version_file}
echo "Uploading stable version $1 to google storage"
gsutil cp ${version_file} "gs://${STABLE_FILE_LOCATION}"
echo "Making it world readable"
gsutil acl ch -R -g all:R "gs://${STABLE_FILE_LOCATION}"
KUBE_ROOT="$(dirname "${BASH_SOURCE}")/.."
source "${KUBE_ROOT}/build/common.sh"
rm ${version_file}
value=$(curl -s https://storage.googleapis.com/${STABLE_FILE_LOCATION})
echo "Validating version file"
if [[ "${value}" != "${1}" ]]; then
echo "Error validating upload, :${value}: vs expected :${1}:"
if "${KUBE_ROOT}/cluster/kubectl.sh" 'version' | grep 'Client' | grep 'dirty'; then
echo "!!! Tag at invalid point, or something else is bad. Build is dirty. Don't push this build." >&2
exit 1
fi
kube::release::gcs::publish_official 'stable'
......@@ -36,21 +36,20 @@ function kube::release::semantic_version() {
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
LATEST=$(kube::release::semantic_version)
KUBE_GCS_NO_CACHING=n
KUBE_GCS_MAKE_PUBLIC=y
KUBE_GCS_UPLOAD_RELEASE=y
KUBE_GCS_DELETE_EXISTING=y
KUBE_GCS_RELEASE_BUCKET=kubernetes-release
KUBE_GCS_NO_CACHING='n'
KUBE_GCS_MAKE_PUBLIC='y'
KUBE_GCS_UPLOAD_RELEASE='y'
KUBE_GCS_DELETE_EXISTING='y'
KUBE_GCS_RELEASE_BUCKET='kubernetes-release'
KUBE_GCS_RELEASE_PREFIX="ci/${LATEST}"
KUBE_GCS_LATEST_FILE="ci/latest.txt"
KUBE_GCS_LATEST_CONTENTS=${LATEST}
KUBE_GCS_PUBLISH_VERSION="${LATEST}"
source "$KUBE_ROOT/build/common.sh"
MAX_ATTEMPTS=3
attempt=0
while [[ ${attempt} -lt ${MAX_ATTEMPTS} ]]; do
kube::release::gcs::release && kube::release::gcs::publish_latest && break || true
kube::release::gcs::release && kube::release::gcs::publish_ci && break || true
attempt=$((attempt + 1))
sleep 5
done
......
......@@ -20,29 +20,28 @@ set -o errexit
set -o nounset
set -o pipefail
KUBE_RELEASE_VERSION=${1-}
VERSION_REGEX="^v(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"
[[ ${KUBE_RELEASE_VERSION} =~ $VERSION_REGEX ]] || {
echo "!!! You must specify the version you are releasing in the form of '$VERSION_REGEX'" >&2
if [ "$#" -ne 1 ]; then
echo "Usage: ${0} <version>"
exit 1
}
fi
KUBE_RELEASE_VERSION="${1-}"
KUBE_GCS_NO_CACHING=n
KUBE_GCS_MAKE_PUBLIC=y
KUBE_GCS_UPLOAD_RELEASE=y
KUBE_GCS_RELEASE_BUCKET=kubernetes-release
KUBE_GCS_RELEASE_PREFIX=release/${KUBE_RELEASE_VERSION}
KUBE_GCS_LATEST_FILE="release/latest.txt"
KUBE_GCS_LATEST_CONTENTS=${KUBE_RELEASE_VERSION}
KUBE_GCS_NO_CACHING='n'
KUBE_GCS_MAKE_PUBLIC='y'
KUBE_GCS_UPLOAD_RELEASE='y'
KUBE_GCS_RELEASE_BUCKET='kubernetes-release'
KUBE_GCS_RELEASE_PREFIX="release/${KUBE_RELEASE_VERSION}"
KUBE_GCS_PUBLISH_VERSION="${KUBE_RELEASE_VERSION}"
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
source "$KUBE_ROOT/build/common.sh"
KUBE_ROOT="$(dirname "${BASH_SOURCE}")/.."
source "${KUBE_ROOT}/build/common.sh"
if ${KUBE_ROOT}/cluster/kubectl.sh version | grep Client | grep dirty; then
if "${KUBE_ROOT}/cluster/kubectl.sh" 'version' | grep 'Client' | grep 'dirty'; then
echo "!!! Tag at invalid point, or something else is bad. Build is dirty. Don't push this build." >&2
exit 1
fi
kube::release::parse_and_validate_release_version "${KUBE_RELEASE_VERSION}"
kube::release::gcs::release
kube::release::gcs::publish_latest_official
kube::release::gcs::publish_official 'latest'
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