ceph-csi/vendor/k8s.io/kubernetes/cluster/kube-push.sh
Serguei Bezverkhi 7b24313bd6 vendor files
2018-01-10 13:42:26 -05:00

97 lines
2.4 KiB
Bash
Executable File

#!/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
verify-kube-binaries
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"