#!/bin/bash # Copyright 2014 The Kubernetes Authors. # # 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. # Push a new release to the cluster. # # This will find the release tar, cause it to be downloaded, unpacked, installed # and enacted. set -o errexit set -o nounset set -o pipefail echo "kube-push.sh is currently broken; see https://github.com/kubernetes/kubernetes/issues/17397" exit 1 setvar KUBE_ROOT = "$(dirname "${BASH_SOURCE}")/.." if test -f "${KUBE_ROOT}/cluster/env.sh" { source "${KUBE_ROOT}/cluster/env.sh" } source "${KUBE_ROOT}/cluster/kube-util.sh" proc usage { echo "${0} [-m|-n ] " echo " Updates Kubernetes binaries. Can be done for all components (by default), master(-m) or specified node(-n)." echo " If the version is not specified will try to use local binaries." echo " Warning: upgrading single node is experimental" } setvar push_to_master = 'false' setvar push_to_node = 'false' while getopts "mn:h" opt { case{ m { setvar push_to_master = 'true'} n { setvar push_to_node = 'true' setvar node_id = "$OPTARG"} h { usage exit 0} \? { echo "Invalid option: -$OPTARG" >&2 usage exit 1} } } shift $((OPTIND-1)) if [[ "${push_to_master}" == "true" ]] && [[ "${push_to_node}" == "true" ]] { echo "Only one of options -m -n should be specified" usage exit 1 } verify-prereqs verify-kube-binaries setvar KUBE_VERSION = ${1-} if [[ "${push_to_master}" == "false" ]] && [[ "${push_to_node}" == "false" ]] { echo "Updating cluster using provider: $KUBERNETES_PROVIDER" kube-push } if [[ "${push_to_master}" == "true" ]] { echo "Updating master to version ${KUBE_VERSION:-"dev"}" prepare-push false push-master } if [[ "${push_to_node}" == "true" ]] { echo "Updating node $node_id to version ${KUBE_VERSION:-"dev"}" prepare-push true push-node $node_id } echo "Validating cluster post-push..." "${KUBE_ROOT}/cluster/validate-cluster.sh" echo "Done"