diff --git a/build/common.sh b/build/common.sh index 15a9189f8b..aa63a9a001 100644 --- a/build/common.sh +++ b/build/common.sh @@ -579,8 +579,8 @@ function kube::release::gcs::ensure_release_bucket() { KUBE_GCS_DOCKER_REG_PREFIX=${KUBE_GCS_DOCKER_REG_PREFIX-docker-reg/} if ! gsutil ls "gs://${KUBE_GCS_RELEASE_BUCKET}" >/dev/null 2>&1 ; then - echo "Creating Google Cloud Storage bucket: $RELEASE_BUCKET" - gsutil mb "gs://${KUBE_GCS_RELEASE_BUCKET}" + echo "Creating Google Cloud Storage bucket: $KUBE_GCS_RELEASE_BUCKET" + gsutil mb -p "${GCLOUD_PROJECT}" "gs://${KUBE_GCS_RELEASE_BUCKET}" fi } @@ -655,7 +655,12 @@ function kube::release::gcs::copy_release_tarballs() { gsutil -q rm -f -R "${gcs_destination}" >/dev/null 2>&1 || true # Now upload everything in release directory - gsutil -m "${gcs_options[@]-}" cp -r "${RELEASE_DIR}"/* "${gcs_destination}" >/dev/null 2>&1 + gsutil -m "${gcs_options[@]+${gcs_options[@]}}" cp -r "${RELEASE_DIR}"/* "${gcs_destination}" + + # 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 + # release list using the GCS JSON API. Use Angular and Bootstrap for extra + # extra credit. if [[ ${KUBE_GCS_MAKE_PUBLIC} =~ ^[yY]$ ]]; then gsutil acl ch -R -g all:R "${gcs_destination}" >/dev/null 2>&1 diff --git a/build/push-official-release.sh b/build/push-official-release.sh new file mode 100755 index 0000000000..7acbd2eaff --- /dev/null +++ b/build/push-official-release.sh @@ -0,0 +1,41 @@ +#! /bin/bash + +# Copyright 2014 Google Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Pushes an official release to our official release location + +set -o errexit +set -o nounset +set -o pipefail + +KUBE_RELEASE_VERSION=${1-} + +[[ -n ${KUBE_RELEASE_VERSION} ]] || { + echo "!!! You must specify the version you are releasing in the form of vX.Y.Z" >&2 + exit 1 +} + +KUBE_GCS_NO_CACHING=n +KUBE_GCS_MAKE_PUBLIC=y +KUBE_GCS_UPLOAD_RELEASE=y +KUBE_GCS_RELEASE_BUCKET=kubernetes-release +KUBE_GCS_PROJECT=google-containers +KUBE_GCS_RELEASE_PREFIX=release/${KUBE_RELEASE_VERSION} + +KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. +source "$KUBE_ROOT/build/common.sh" + + +kube::release::gcs::release