#!/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. # Bring up a Kubernetes cluster. # # If the full release name (gs:///) is passed in then we take # that directly. If not then we assume we are doing development stuff and take # the defaults in the release config. set -o errexit set -o nounset set -o pipefail 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" setglobal DEPRECATED_PROVIDERS = ''( "centos" "libvert-coreos" "local" "openstack-heat" "photon-controller" "vagrant" "vsphere" "windows" ) for provider in [$(DEPRECATED_PROVIDERS[@])] { if [[ "${KUBERNETES_PROVIDER}" == "${provider}" ]] { cat << """ 1>&2 !!! DEPRECATION NOTICE !!! The '$(provider)' kube-up provider is deprecated and will be removed in a future release of kubernetes. Deprecated providers will be removed within 2 releases. See https://github.com/kubernetes/kubernetes/issues/49213 for more info. """ !1 > !2 !!! DEPRECATION NOTICE !!! The '${provider}' kube-up provider is deprecated and will be removed in a future release of kubernetes. Deprecated providers will be removed within 2 releases. See https://github.com/kubernetes/kubernetes/issues/49213 for more info. EOF break } } if test -z $(ZONE-) { echo "... Starting cluster using provider: $(KUBERNETES_PROVIDER)" > !2 } else { echo "... Starting cluster in $(ZONE) using provider $(KUBERNETES_PROVIDER)" > !2 } echo "... calling verify-prereqs" > !2 verify-prereqs echo "... calling verify-kube-binaries" > !2 verify-kube-binaries if [[ "${KUBE_STAGE_IMAGES:-}" == "true" ]] { echo "... staging images" > !2 stage-images } echo "... calling kube-up" > !2 kube-up echo "... calling validate-cluster" > !2 # Override errexit shell {validate-cluster} && setglobal validate_result = "$Status" || setglobal validate_result = "$Status" # We have two different failure modes from validate cluster: # - 1: fatal error - cluster won't be working correctly # - 2: weak error - something went wrong, but cluster probably will be working correctly # We just print an error message in case 2). if [[ "${validate_result}" == "1" ]] { exit 1 } elif [[ "${validate_result}" == "2" ]] { echo "...ignoring non-fatal errors in validate-cluster" > !2 } if [[ "${ENABLE_PROXY:-}" == "true" ]] { source /tmp/kube-proxy-env echo "" echo "*** Please run the following to add the kube-apiserver endpoint to your proxy white-list ***" cat /tmp/kube-proxy-env echo "*** ***" echo "" } echo -e "Done, listing cluster services:\n" > !2 "$(KUBE_ROOT)/cluster/kubectl.sh" cluster-info echo exit 0