Change:
Sometimes it is nice to have non-tar'd binaries for releases. We should upload those along with the our packaged tarballs. This will help fix

Discussion:
# This is where the final release artifacts are created locally <ins> readonly RELEASE_STAGE="${LOCAL_OUTPUT_ROOT}/release-stage" </ins> readonly RELEASE_DIR="${LOCAL_OUTPUT_ROOT}/release-tars" # ---------------------------------------------------------------------------

kube::build::docker_image_exists golang 1.3 || { [[ ${KUBE_SKIP_CONFIRMATIONS} =~ ^[yY]$ ]] || { echo "You don't have a local copy of the golang docker image. This image is 450MB." <del> read -p "Download it now? [y/n] " -n 1 -r </del> <ins> read -p "Download it now? [y/n] " -r </ins> echo [[ $REPLY =~ ^[yY]$ ]] || { echo "Aborting." >&2

local platform_tag=${platform///-} # Replace a "/" for a "-" echo "+++ Building tarball: client $platform_tag" <del> local release_stage="${LOCAL_OUTPUT_ROOT}/release-stage/client/${platform_tag}/kubernetes" </del> <ins> local release_stage="${RELEASE_STAGE}/client/${platform_tag}/kubernetes" </ins> rm -rf "${release_stage}" mkdir -p "${release_stage}/client/bin"

local platform_tag=${platform///-} # Replace a "/" for a "-" echo "+++ Building tarball: server $platform_tag" <del> local release_stage="${LOCAL_OUTPUT_ROOT}/release-stage/server/${platform_tag}/kubernetes" </del> <ins> local release_stage="${RELEASE_STAGE}/server/${platform_tag}/kubernetes" </ins> rm -rf "${release_stage}" mkdir -p "${release_stage}/server/bin"

function kube::release::package_salt_tarball() { echo "+++ Building tarball: salt" <del> local release_stage="${LOCAL_OUTPUT_ROOT}/release-stage/salt/kubernetes" </del> <ins> local release_stage="${RELEASE_STAGE}/salt/kubernetes" </ins> rm -rf "${release_stage}" mkdir -p "${release_stage}"

function kube::release::package_full_tarball() { echo "+++ Building tarball: full" <del> local release_stage="${LOCAL_OUTPUT_ROOT}/release-stage/full/kubernetes" </del> <ins> local release_stage="${RELESAE_STAGE}/full/kubernetes" </ins> rm -rf "${release_stage}" mkdir -p "${release_stage}"

echo "+++ Copying release artifacts to ${gcs_destination}" # First delete all objects at the destination <del> gsutil -q rm -f -R "${gcs_destination}" >/dev/null 2>&1 || true </del> <ins> if gsutil ls "${gcs_destination}" >/dev/null 2>&1; then echo "!!! ${gcs_destination} not empty." read -p "Delete everything under ${gcs_destination}? [y/n] " -r || { echo "EOF on prompt.  Skipping upload" return } [[ $REPLY =~ ^[yY]$ ]] || { echo "Skipping upload" return } gsutil -m rm -f -R "${gcs_destination}" fi </ins> # Now upload everything in release directory gsutil -m "${gcs_options[@]+${gcs_options[@]}}" cp -r "${RELEASE_DIR}"/* "${gcs_destination}" # Having the "template" scripts from the GCE cluster deploy hosted with the # release is useful for GKE.  Copy everything from that directory up also. <del> gsutil -m "${gcs_options[@]+${gcs_options[@]}}" cp "${KUBE_ROOT}/cluster/gce/templates/*.sh" "${gcs_destination}extra/gce-templates/" </del> <ins> gsutil -m "${gcs_options[@]+${gcs_options[@]}}" cp  "${RELEASE_STAGE}/full/kubernetes/cluster/gce/templates/*.sh"  "${gcs_destination}extra/gce-templates/" # Upload the "naked" binaries to GCS.  This is useful for install scripts that # download the binaries directly and don't need tars. local platform platforms platforms=($(cd "${RELEASE_STAGE}/client" ; echo *)) for platform in "${platforms[@]}"; do local src="${RELEASE_STAGE}/client/${platform}/kubernetes/client/bin/*" local dst="${gcs_destination}bin/${platform/-//}/" # We assume here the "server package" is a superset of the "client package" if [[ -d "${RELEASE_STAGE}/server/${platform}" ]]; then src="${RELEASE_STAGE}/server/${platform}/kubernetes/server/bin/*" fi gsutil -m "${gcs_options[@]+${gcs_options[@]}}" cp  "$src" "$dst" done </ins> # TODO(jbeda): Generate an HTML page with links for this release so it is easy # to see it.  For extra credit, generate a dynamic page that builds up the