diff --git a/cluster/kube-down-azure.sh b/cluster/kube-down-azure.sh index a9441945487..f4b8a83bd03 100755 --- a/cluster/kube-down-azure.sh +++ b/cluster/kube-down-azure.sh @@ -1,10 +1,24 @@ #!/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. + +# Tear down a Kubernetes cluster. SCRIPT_DIR=$(CDPATH="" cd $(dirname $0); pwd) source $SCRIPT_DIR/../release/config-azure.sh source $SCRIPT_DIR/util.sh - echo "Bringing down cluster" azure vm delete $MASTER_NAME -b -q for (( i=0; i<${#MINION_NAMES[@]}; i++)); do diff --git a/cluster/kube-up-azure.sh b/cluster/kube-up-azure.sh index 31c4c00593b..d5293306a37 100755 --- a/cluster/kube-up-azure.sh +++ b/cluster/kube-up-azure.sh @@ -15,10 +15,6 @@ # 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. # exit on any error set -eu @@ -33,7 +29,8 @@ trap "rm -rf ${KUBE_TEMP}" EXIT get-password echo "Using password: $user:$passwd" -python $SCRIPT_DIR/../third_party/htpasswd/htpasswd.py -b -c ${KUBE_TEMP}/htpasswd $user $passwd +python $SCRIPT_DIR/../third_party/htpasswd/htpasswd.py -b -c \ + ${KUBE_TEMP}/htpasswd $user $passwd HTPASSWD=$(cat ${KUBE_TEMP}/htpasswd) # Build up start up script for master @@ -51,11 +48,12 @@ echo "Starting VMs" if [ ! -f $AZ_SSH_KEY ]; then ssh-keygen -f $AZ_SSH_KEY -N '' fi - + if [ ! -f $AZ_SSH_CERT ]; then openssl req -new -key $AZ_SSH_KEY -out ${KUBE_TEMP}/temp.csr \ - -subj "/C=US/ST=WA/L=Redmond/O=Azure-CLI/CN=Azure" - openssl req -x509 -key $AZ_SSH_KEY -in ${KUBE_TEMP}/temp.csr -out $AZ_SSH_CERT -days 1095 + -subj "/C=US/ST=WA/L=Redmond/O=Azure-CLI/CN=Azure" + openssl req -x509 -key $AZ_SSH_KEY -in ${KUBE_TEMP}/temp.csr \ + -out $AZ_SSH_CERT -days 1095 rm ${KUBE_TEMP}/temp.csr fi @@ -66,7 +64,6 @@ if [ -z "$(azure network vnet show $AZ_VNET 2>/dev/null | grep data)" ]; then exit 1 fi - azure vm create \ -w $AZ_VNET \ -n $MASTER_NAME \ @@ -77,33 +74,29 @@ azure vm create \ -b $AZ_SUBNET \ $AZ_CS $AZ_IMAGE $USER - ssh_ports=($(eval echo "2200{1..$NUM_MINIONS}")) for (( i=0; i<${#MINION_NAMES[@]}; i++)); do ( - echo "#!/bin/bash" - echo "MASTER_NAME=${MASTER_NAME}" - echo "MINION_IP_RANGE=${MINION_IP_RANGES[$i]}" - grep -v "^#" $SCRIPT_DIR/templates/salt-minion-azure.sh + echo "#!/bin/bash" + echo "MASTER_NAME=${MASTER_NAME}" + echo "MINION_IP_RANGE=${MINION_IP_RANGES[$i]}" + grep -v "^#" $SCRIPT_DIR/templates/salt-minion-azure.sh ) > ${KUBE_TEMP}/minion-start-${i}.sh azure vm create \ - -c -w $AZ_VNET \ - -n ${MINION_NAMES[$i]} \ - -l "$AZ_LOCATION" \ - -t $AZ_SSH_CERT \ - -e ${ssh_ports[$i]} -P \ - -d ${KUBE_TEMP}/minion-start-${i}.sh \ - -b $AZ_SUBNET \ - $AZ_CS $AZ_IMAGE $USER - + -c -w $AZ_VNET \ + -n ${MINION_NAMES[$i]} \ + -l "$AZ_LOCATION" \ + -t $AZ_SSH_CERT \ + -e ${ssh_ports[$i]} -P \ + -d ${KUBE_TEMP}/minion-start-${i}.sh \ + -b $AZ_SUBNET \ + $AZ_CS $AZ_IMAGE $USER done azure vm endpoint create $MASTER_NAME 443 -echo " https://${user}:${passwd}@$AZ_CS.cloudapp.net" - echo "Waiting for cluster initialization." echo echo " This will continually check to see if the API for kubernetes is reachable." @@ -122,7 +115,7 @@ for (( i=0; i<${#MINION_NAMES[@]}; i++)); do # Make sure docker is installed ssh -i $AZ_SSH_KEY -p ${ssh_ports[$i]} $AZ_CS.cloudapp.net which docker > /dev/null if [ "$?" != "0" ]; then - echo "Docker failed to install on ${MINION_NAMES[$i]} your cluster is unlikely to work correctly" + echo "Docker failed to install on ${MINION_NAMES[$i]} your cluster is unlikely to work correctly" echo "Please run ./cluster/kube-down.sh and re-create the cluster. (sorry!)" exit 1 fi @@ -130,7 +123,7 @@ for (( i=0; i<${#MINION_NAMES[@]}; i++)); do # Make sure the kubelet is running ssh -i $AZ_SSH_KEY -p ${ssh_ports[$i]} $AZ_CS.cloudapp.net /etc/init.d/kubelet status if [ "$?" != "0" ]; then - echo "Kubelet failed to install on ${MINION_NAMES[$i]} your cluster is unlikely to work correctly" + echo "Kubelet failed to install on ${MINION_NAMES[$i]} your cluster is unlikely to work correctly" echo "Please run ./cluster/kube-down.sh and re-create the cluster. (sorry!)" exit 1 fi diff --git a/release/config-azure.sh b/release/config-azure.sh index 7dda68bab53..d6ba204e8e5 100644 --- a/release/config-azure.sh +++ b/release/config-azure.sh @@ -1,3 +1,16 @@ +# 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. AZ_LOCATION='West US' AZ_SSH_KEY=$HOME/.ssh/azure @@ -8,11 +21,13 @@ TAG=testing if [ -z "$(which azure)" ]; then echo "Couldn't find azure in PATH" + echo " please install with 'npm install azure-cli'" exit 1 fi if [ -z "$(azure account list | grep true)" ]; then echo "Default azure account not set" + echo " please set with 'azure account set'" exit 1 fi diff --git a/release/release-azure.sh b/release/release-azure.sh index ef41ac0c46b..722aebe6a34 100755 --- a/release/release-azure.sh +++ b/release/release-azure.sh @@ -1,12 +1,28 @@ #!/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. + +# This script will build and release Kubernetes. + set -eu set -o pipefail IFS=$'\n\t' SCRIPT_DIR=$(CDPATH="" cd $(dirname $0); pwd) -function json_val () { - python -c 'import json,sys;obj=json.load(sys.stdin);print obj'$1''; +function json_val () { + python -c 'import json,sys;obj=json.load(sys.stdin);print obj'$1''; } source $SCRIPT_DIR/config-azure.sh @@ -14,30 +30,30 @@ source $SCRIPT_DIR/../cluster/${KUBE_CONFIG_FILE-"config-default.sh"} $SCRIPT_DIR/build-release.sh $INSTANCE_PREFIX -if [ -z "$(azure storage account show $STG_ACCOUNT 2>/dev/null | grep data)" ]; then +if [ -z "$(azure storage account show $STG_ACCOUNT 2>/dev/null | \ + grep data)" ]; then azure storage account create -l "$AZ_LOCATION" $STG_ACCOUNT fi -stg_key=$(azure storage account keys list $STG_ACCOUNT --json | json_val '["primaryKey"]') +stg_key=$(azure storage account keys list $STG_ACCOUNT --json | \ + json_val '["primaryKey"]') -if [ -z "$(azure storage container show -a $STG_ACCOUNT -k "$stg_key" $CONTAINER 2>/dev/null | grep data)" ]; then +if [ -z "$(azure storage container show -a $STG_ACCOUNT -k "$stg_key" \ + $CONTAINER 2>/dev/null | grep data)" ]; then azure storage container create \ - -a $STG_ACCOUNT \ - -k "$stg_key" \ - -p Blob \ - $CONTAINER + -a $STG_ACCOUNT \ + -k "$stg_key" \ + -p Blob \ + $CONTAINER fi -if [ -n "$(azure storage blob show \ - -a $STG_ACCOUNT \ - -k "$stg_key" \ - $CONTAINER \ - master-release.tgz 2>/dev/null | grep data)" ]; then +if [ -n "$(azure storage blob show -a $STG_ACCOUNT -k "$stg_key" \ + $CONTAINER master-release.tgz 2>/dev/null | grep data)" ]; then azure storage blob delete \ - -a $STG_ACCOUNT \ - -k "$stg_key" \ - $CONTAINER \ - master-release.tgz + -a $STG_ACCOUNT \ + -k "$stg_key" \ + $CONTAINER \ + master-release.tgz fi azure storage blob upload \