From a379e52c5728f65ccf3b06df090718244b85d618 Mon Sep 17 00:00:00 2001 From: Isaac Hollander McCreery Date: Fri, 16 Oct 2015 11:28:00 -0700 Subject: [PATCH 1/2] Factor find-release-tars into cluster/common --- cluster/aws/util.sh | 25 ------------------------- cluster/azure/util.sh | 26 -------------------------- cluster/common.sh | 26 ++++++++++++++++++++++++++ cluster/gce/util.sh | 25 ------------------------- cluster/libvirt-coreos/util.sh | 11 ----------- cluster/rackspace/util.sh | 15 +-------------- cluster/vsphere/util.sh | 25 ------------------------- 7 files changed, 27 insertions(+), 126 deletions(-) diff --git a/cluster/aws/util.sh b/cluster/aws/util.sh index 0a42999c3fd7..08aa462cc0bc 100644 --- a/cluster/aws/util.sh +++ b/cluster/aws/util.sh @@ -471,31 +471,6 @@ function ensure-temp-dir { fi } -# Verify and find the various tar files that we are going to use on the server. -# -# Vars set: -# SERVER_BINARY_TAR -# SALT_TAR -function find-release-tars { - SERVER_BINARY_TAR="${KUBE_ROOT}/server/kubernetes-server-linux-amd64.tar.gz" - if [[ ! -f "$SERVER_BINARY_TAR" ]]; then - SERVER_BINARY_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-server-linux-amd64.tar.gz" - fi - if [[ ! -f "$SERVER_BINARY_TAR" ]]; then - echo "!!! Cannot find kubernetes-server-linux-amd64.tar.gz" - exit 1 - fi - - SALT_TAR="${KUBE_ROOT}/server/kubernetes-salt.tar.gz" - if [[ ! -f "$SALT_TAR" ]]; then - SALT_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-salt.tar.gz" - fi - if [[ ! -f "$SALT_TAR" ]]; then - echo "!!! Cannot find kubernetes-salt.tar.gz" - exit 1 - fi -} - # Take the local tar files and upload them to S3. They will then be # downloaded by the master as part of the start up script for the master. # diff --git a/cluster/azure/util.sh b/cluster/azure/util.sh index 23fe542c20ba..1a75d6be8b29 100644 --- a/cluster/azure/util.sh +++ b/cluster/azure/util.sh @@ -94,32 +94,6 @@ function ensure-temp-dir { fi } -# Verify and find the various tar files that we are going to use on the server. -# -# Vars set: -# SERVER_BINARY_TAR -# SALT_TAR -function find-release-tars { - SERVER_BINARY_TAR="${KUBE_ROOT}/server/kubernetes-server-linux-amd64.tar.gz" - if [[ ! -f "$SERVER_BINARY_TAR" ]]; then - SERVER_BINARY_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-server-linux-amd64.tar.gz" - fi - if [[ ! -f "$SERVER_BINARY_TAR" ]]; then - echo "!!! Cannot find kubernetes-server-linux-amd64.tar.gz" - exit 1 - fi - - SALT_TAR="${KUBE_ROOT}/server/kubernetes-salt.tar.gz" - if [[ ! -f "$SALT_TAR" ]]; then - SALT_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-salt.tar.gz" - fi - if [[ ! -f "$SALT_TAR" ]]; then - echo "!!! Cannot find kubernetes-salt.tar.gz" - exit 1 - fi -} - - # Take the local tar files and upload them to Azure Storage. They will then be # downloaded by the master as part of the start up script for the master. # diff --git a/cluster/common.sh b/cluster/common.sh index 1d55439088ad..f16b23a2be75 100755 --- a/cluster/common.sh +++ b/cluster/common.sh @@ -304,3 +304,29 @@ function tars_from_version() { fi } +# Verify and find the various tar files that we are going to use on the server. +# +# Assumed vars: +# KUBE_ROOT +# Vars set: +# SERVER_BINARY_TAR +# SALT_TAR +function find-release-tars() { + SERVER_BINARY_TAR="${KUBE_ROOT}/server/kubernetes-server-linux-amd64.tar.gz" + if [[ ! -f "$SERVER_BINARY_TAR" ]]; then + SERVER_BINARY_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-server-linux-amd64.tar.gz" + fi + if [[ ! -f "$SERVER_BINARY_TAR" ]]; then + echo "!!! Cannot find kubernetes-server-linux-amd64.tar.gz" >&2 + exit 1 + fi + + SALT_TAR="${KUBE_ROOT}/server/kubernetes-salt.tar.gz" + if [[ ! -f "$SALT_TAR" ]]; then + SALT_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-salt.tar.gz" + fi + if [[ ! -f "$SALT_TAR" ]]; then + echo "!!! Cannot find kubernetes-salt.tar.gz" >&2 + exit 1 + fi +} diff --git a/cluster/gce/util.sh b/cluster/gce/util.sh index 23c0f1791ff1..987167892021 100755 --- a/cluster/gce/util.sh +++ b/cluster/gce/util.sh @@ -115,31 +115,6 @@ function ensure-temp-dir { fi } -# Verify and find the various tar files that we are going to use on the server. -# -# Vars set: -# SERVER_BINARY_TAR -# SALT_TAR -function find-release-tars { - SERVER_BINARY_TAR="${KUBE_ROOT}/server/kubernetes-server-linux-amd64.tar.gz" - if [[ ! -f "$SERVER_BINARY_TAR" ]]; then - SERVER_BINARY_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-server-linux-amd64.tar.gz" - fi - if [[ ! -f "$SERVER_BINARY_TAR" ]]; then - echo "!!! Cannot find kubernetes-server-linux-amd64.tar.gz" >&2 - exit 1 - fi - - SALT_TAR="${KUBE_ROOT}/server/kubernetes-salt.tar.gz" - if [[ ! -f "$SALT_TAR" ]]; then - SALT_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-salt.tar.gz" - fi - if [[ ! -f "$SALT_TAR" ]]; then - echo "!!! Cannot find kubernetes-salt.tar.gz" >&2 - exit 1 - fi -} - # Use the gcloud defaults to find the project. If it is already set in the # environment then go with that. # diff --git a/cluster/libvirt-coreos/util.sh b/cluster/libvirt-coreos/util.sh index fc567584e573..d9fee14902bd 100644 --- a/cluster/libvirt-coreos/util.sh +++ b/cluster/libvirt-coreos/util.sh @@ -250,17 +250,6 @@ function kube-down { destroy-network } -function find-release-tars { - SERVER_BINARY_TAR="${KUBE_ROOT}/server/kubernetes-server-linux-amd64.tar.gz" - if [[ ! -f "$SERVER_BINARY_TAR" ]]; then - SERVER_BINARY_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-server-linux-amd64.tar.gz" - fi - if [[ ! -f "$SERVER_BINARY_TAR" ]]; then - echo "!!! Cannot find kubernetes-server-linux-amd64.tar.gz" - exit 1 - fi -} - # The kubernetes binaries are pushed to a host directory which is exposed to the VM function upload-server-tars { tar -x -C "$POOL_PATH/kubernetes" -f "$SERVER_BINARY_TAR" kubernetes diff --git a/cluster/rackspace/util.sh b/cluster/rackspace/util.sh index b249fcbf6953..53f37b696fd3 100755 --- a/cluster/rackspace/util.sh +++ b/cluster/rackspace/util.sh @@ -66,19 +66,6 @@ rax-ssh-key() { fi } -find-release-tars() { - SERVER_BINARY_TAR="${KUBE_ROOT}/server/kubernetes-server-linux-amd64.tar.gz" - RELEASE_DIR="${KUBE_ROOT}/server/" - if [[ ! -f "$SERVER_BINARY_TAR" ]]; then - SERVER_BINARY_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-server-linux-amd64.tar.gz" - RELEASE_DIR="${KUBE_ROOT}/_output/release-tars/" - fi - if [[ ! -f "$SERVER_BINARY_TAR" ]]; then - echo "!!! Cannot find kubernetes-server-linux-amd64.tar.gz" - exit 1 - fi -} - rackspace-set-vars() { CLOUDFILES_CONTAINER="kubernetes-releases-${OS_USERNAME}" @@ -114,7 +101,7 @@ ensure_dev_container() { copy_dev_tarballs() { echo "cluster/rackspace/util.sh: Uploading to Cloud Files" - ${SWIFTLY_CMD} put -i ${RELEASE_DIR}/kubernetes-server-linux-amd64.tar.gz \ + ${SWIFTLY_CMD} put -i ${SERVER_BINARY_TAR} \ ${CLOUDFILES_CONTAINER}/${CONTAINER_PREFIX}/kubernetes-server-linux-amd64.tar.gz > /dev/null 2>&1 echo "Release pushed." diff --git a/cluster/vsphere/util.sh b/cluster/vsphere/util.sh index 5d3ebc56f274..e2ed4ca84bae 100755 --- a/cluster/vsphere/util.sh +++ b/cluster/vsphere/util.sh @@ -126,31 +126,6 @@ function ensure-temp-dir { fi } -# Verify and find the various tar files that we are going to use on the server. -# -# Vars set: -# SERVER_BINARY_TAR -# SALT_TAR -function find-release-tars { - SERVER_BINARY_TAR="${KUBE_ROOT}/server/kubernetes-server-linux-amd64.tar.gz" - if [[ ! -f "$SERVER_BINARY_TAR" ]]; then - SERVER_BINARY_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-server-linux-amd64.tar.gz" - fi - if [[ ! -f "$SERVER_BINARY_TAR" ]]; then - echo "!!! Cannot find kubernetes-server-linux-amd64.tar.gz" - exit 1 - fi - - SALT_TAR="${KUBE_ROOT}/server/kubernetes-salt.tar.gz" - if [[ ! -f "$SALT_TAR" ]]; then - SALT_TAR="${KUBE_ROOT}/_output/release-tars/kubernetes-salt.tar.gz" - fi - if [[ ! -f "$SALT_TAR" ]]; then - echo "!!! Cannot find kubernetes-salt.tar.gz" - exit 1 - fi -} - # Take the local tar files and upload them to the master. # # Assumed vars: From ef3d56433b28c1c7e3fb920f21846f52af51a32b Mon Sep 17 00:00:00 2001 From: Isaac Hollander McCreery Date: Fri, 16 Oct 2015 12:34:18 -0700 Subject: [PATCH 2/2] Fix KUBE_TAR_URL issue and fix root cause; fixes #15738 --- cluster/common.sh | 23 +++++++---------------- hack/get-build.sh | 10 ++++++++-- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/cluster/common.sh b/cluster/common.sh index f16b23a2be75..1fce23bb5fee 100755 --- a/cluster/common.sh +++ b/cluster/common.sh @@ -255,10 +255,10 @@ function set_binary_version() { # use local dev binaries. # # Assumed vars: +# KUBE_VERSION # KUBE_VERSION_REGEX # KUBE_CI_VERSION_REGEX # Vars set: -# KUBE_TAR_URL # KUBE_TAR_HASH # SERVER_BINARY_TAR_URL # SERVER_BINARY_TAR_HASH @@ -269,36 +269,27 @@ function tars_from_version() { find-release-tars upload-server-tars elif [[ ${KUBE_VERSION} =~ ${KUBE_VERSION_REGEX} ]]; then - KUBE_TAR_URL="https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/kubernetes.tar.gz" SERVER_BINARY_TAR_URL="https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/kubernetes-server-linux-amd64.tar.gz" SALT_TAR_URL="https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/kubernetes-salt.tar.gz" elif [[ ${KUBE_VERSION} =~ ${KUBE_CI_VERSION_REGEX} ]]; then - KUBE_TAR_URL="https://storage.googleapis.com/kubernetes-release/ci/${KUBE_VERSION}/kubernetes.tar.gz" SERVER_BINARY_TAR_URL="https://storage.googleapis.com/kubernetes-release/ci/${KUBE_VERSION}/kubernetes-server-linux-amd64.tar.gz" SALT_TAR_URL="https://storage.googleapis.com/kubernetes-release/ci/${KUBE_VERSION}/kubernetes-salt.tar.gz" else echo "Version doesn't match regexp" >&2 exit 1 fi - until KUBE_TAR_HASH=$(curl --fail --silent "${KUBE_TAR_URL}.sha1"); do - echo "Failure trying to curl release .sha1" - done - until SERVER_BINARY_TAR_HASH=$(curl --fail --silent "${SERVER_BINARY_TAR_URL}.sha1"); do + if ! SERVER_BINARY_TAR_HASH=$(curl -Ss --fail "${SERVER_BINARY_TAR_URL}.sha1"); then echo "Failure trying to curl release .sha1" - done - until SALT_TAR_HASH=$(curl --fail --silent "${SALT_TAR_URL}.sha1"); do + fi + if ! SALT_TAR_HASH=$(curl -Ss --fail "${SALT_TAR_URL}.sha1"); then echo "Failure trying to curl Salt tar .sha1" - done - - if ! curl -Ss --range 0-1 "${KUBE_TAR_URL}" >&/dev/null; then - echo "Can't find release at ${KUBE_TAR_URL}" >&2 - exit 1 fi - if ! curl -Ss --range 0-1 "${SERVER_BINARY_TAR_URL}" >&/dev/null; then + + if ! curl -Ss --head "${SERVER_BINARY_TAR_URL}" >&/dev/null; then echo "Can't find release at ${SERVER_BINARY_TAR_URL}" >&2 exit 1 fi - if ! curl -Ss --range 0-1 "${SALT_TAR_URL}" >&/dev/null; then + if ! curl -Ss --head "${SALT_TAR_URL}" >&/dev/null; then echo "Can't find Salt tar at ${SALT_TAR_URL}" >&2 exit 1 fi diff --git a/hack/get-build.sh b/hack/get-build.sh index 64e77f4386d8..9bc990a83667 100755 --- a/hack/get-build.sh +++ b/hack/get-build.sh @@ -71,6 +71,12 @@ if [[ "${print_version}" == "true" ]]; then echo "${KUBE_VERSION}" else echo "Using version at ${1}: ${KUBE_VERSION}" >&2 - tars_from_version - curl --fail -o kubernetes-${KUBE_VERSION}.tar.gz "${KUBE_TAR_URL}" + if [[ ${KUBE_VERSION} =~ ${KUBE_VERSION_REGEX} ]]; then + curl --fail -o kubernetes-${KUBE_VERSION}.tar.gz "https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/kubernetes.tar.gz" + elif [[ ${KUBE_VERSION} =~ ${KUBE_CI_VERSION_REGEX} ]]; then + curl --fail -o kubernetes-${KUBE_VERSION}.tar.gz "https://storage.googleapis.com/kubernetes-release/ci/${KUBE_VERSION}/kubernetes.tar.gz" + else + echo "Version doesn't match regexp" >&2 + exit 1 + fi fi