#!/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 setglobal 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" } setglobal push_to_master = 'false' setglobal push_to_node = 'false' while getopts "mn:h" opt { match $(opt) { with m setglobal push_to_master = 'true' with n setglobal push_to_node = 'true' setglobal node_id = $OPTARG with h usage exit 0 with \? echo "Invalid option: -$OPTARG" > !2 usage exit 1 } } shift $shExpr('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 setglobal 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"