diff --git a/cluster/get-kube.sh b/cluster/get-kube.sh new file mode 100755 index 00000000000..a35b122de3d --- /dev/null +++ b/cluster/get-kube.sh @@ -0,0 +1,117 @@ +#!/bin/bash + +# Copyright 2014 Google Inc. All rights reserved. +# +# 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. +# Usage: +# wget -q -O - https://get.k8s.io | sh +# or +# curl -sS https://get.k8s.io | sh +# +# Advanced options +# Set KUBERNETES_PROVIDER to choose between different providers: +# Google Compute Engine [default] +# * export KUBERNETES_PROVIDER=gce; wget -q -O - https://get.k8s.io | sh +# Amazon EC2 +# * export KUBERNETES_PROVIDER=aws; wget -q -O - https://get.k8s.io | sh +# Microsoft Azure +# * export KUBERNETES_PROVIDER=azure; wget -q -O - https://get.k8s.io | sh +# Vagrant (local virtual machines) +# * export KUBERNETES_PROVIDER=vagrant; wget -q -O - https://get.k8s.io | sh +# VMWare VSphere +# * export KUBERNETES_PROVIDER=vsphere; wget -q -O - https://get.k8s.io | sh +# Rackspace +# * export KUBERNETES_PROVIDER=rackspace; wget -q -O - https://get.k8s.io | sh +# +# Set KUBERNETES_SKIP_DOWNLOAD to non-empty to skip downloading a release. +# Set KUBERNETES_SKIP_CONFIRM to skip the installation confirmation prompt. +set -o errexit +set -o nounset +set -o pipefail + +function create-cluster { + echo "Creating a kubernetes on ${KUBERNETES_PROVIDER:-gce}..." + ( + cd kubernetes + ./cluster/kube-up.sh + echo "Kubernetes binaries at ${PWD}/kubernetes/cluster/" + echo "You may want to add this directory to your PATH in \$HOME/.profile" + + echo "Installation successful!" + ) +} + +if [[ "${KUBERNETES_SKIP_DOWNLOAD-}" ]]; then + create-cluster + exit 0 +fi + +release=v0.7.2 +release_url=https://storage.googleapis.com/kubernetes-release/release/${release}/kubernetes.tar.gz + +uname=$(uname) +if [[ "${uname}" == "Darwin" ]]; then + platform="darwin" +elif [[ "${uname}" == "Linux" ]]; then + platform="linux" +else + echo "Unknown, unsupported platform: (${uname})." + echo "Supported platforms: Linux, Darwin." + echo "Bailing out." + exit 2 +fi + +machine=$(uname -m) +if [[ "${machine}" == "x86_64" ]]; then + arch="amd64" +elif [[ "${machine}" == "i686" ]]; then + arch="386" +elif [[ "${machine}" == "arm*" ]]; then + arch="arm" +else + echo "Unknown, unsupported architecture (${machine})." + echo "Supported architectures x86_64, i686, arm*" + echo "Bailing out." + exit 3 +fi + +file=kubernetes.tar.gz + + +echo "Downloading kubernetes release ${release} to ${PWD}/kubernetes.tar.gz" +if [[ -n "${KUBERNETES_SKIP_CONFIRM-}" ]]; then + echo "Is this ok? [Y]/n" + read confirm + if [[ "$confirm" == "n" ]]; then + echo "Aborting." + exit 0 + fi +fi + +if [[ $(which wget) ]]; then + wget -O ${file} ${release_url} +elif [[ $(which curl) ]]; then + curl -L -o ${file} ${release_url} +else + echo "Couldn't find curl or wget. Bailing out." + exit 1 +fi + +echo "Unpacking kubernetes release ${release}" +tar -xzf ${file} +rm ${file} + +create-cluster +