1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/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
- KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
- if [ -f "${KUBE_ROOT}/cluster/env.sh" ]; then
- source "${KUBE_ROOT}/cluster/env.sh"
- fi
- source "${KUBE_ROOT}/cluster/kube-util.sh"
- function usage() {
- echo "${0} [-m|-n <node id>] <version>"
- 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"
- }
- push_to_master=false
- push_to_node=false
- while getopts "mn:h" opt; do
- case ${opt} in
- m)
- push_to_master=true;;
- n)
- push_to_node=true
- node_id="$OPTARG";;
- h)
- usage
- exit 0;;
- \?)
- echo "Invalid option: -$OPTARG" >&2
- usage
- exit 1;;
- esac
- done
- shift $((OPTIND-1))
- if [[ "${push_to_master}" == "true" ]] && [[ "${push_to_node}" == "true" ]]; then
- echo "Only one of options -m -n should be specified"
- usage
- exit 1
- fi
- verify-prereqs
- KUBE_VERSION=${1-}
- if [[ "${push_to_master}" == "false" ]] && [[ "${push_to_node}" == "false" ]]; then
- echo "Updating cluster using provider: $KUBERNETES_PROVIDER"
- kube-push
- fi
- if [[ "${push_to_master}" == "true" ]]; then
- echo "Updating master to version ${KUBE_VERSION:-"dev"}"
- prepare-push false
- push-master
- fi
- if [[ "${push_to_node}" == "true" ]]; then
- echo "Updating node $node_id to version ${KUBE_VERSION:-"dev"}"
- prepare-push true
- push-node $node_id
- fi
- echo "Validating cluster post-push..."
- "${KUBE_ROOT}/cluster/validate-cluster.sh"
- echo "Done"
|