diff options
Diffstat (limited to 'tools/gce_setup/new_grpc_docker_builder.sh')
-rwxr-xr-x | tools/gce_setup/new_grpc_docker_builder.sh | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/tools/gce_setup/new_grpc_docker_builder.sh b/tools/gce_setup/new_grpc_docker_builder.sh deleted file mode 100755 index 8a9ece3317..0000000000 --- a/tools/gce_setup/new_grpc_docker_builder.sh +++ /dev/null @@ -1,182 +0,0 @@ -#!/bin/bash -# Copyright 2015, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -# Triggers the build of a GCE 'grpc-docker' instance. -# -# Usage: -# /path/to/new_grpc_docker_builder.sh \ -# [--project <cloud-project-id> | -p<cloud-project-id>] \ -# [--instance <instance-to-create> | -i<instance-to-create>] \ -# [--address <named_cloud_static_ip> | -a<named_cloud_static_ip>] -# -# To run a new docker builder instance. -# $ /path/to/new_grpc_docker_builder.sh -pmy-project -imy-instance -amy-ip -# -# See main() for the full list of flags - -function this_dir() { - SCRIPT_PATH="${BASH_SOURCE[0]}"; - if ([ -h "${SCRIPT_PATH}" ]) then - while([ -h "${SCRIPT_PATH}" ]) do SCRIPT_PATH=`readlink "${SCRIPT_PATH}"`; done - fi - pushd . > /dev/null - cd `dirname ${SCRIPT_PATH}` > /dev/null - SCRIPT_PATH=`pwd`; - popd > /dev/null - echo $SCRIPT_PATH -} - -source $(this_dir)/compute_extras.sh -source $(this_dir)/grpc_docker.sh - -cp_startup_script() { - local script_dir=$1 - [[ -n $script_dir ]] || { echo "missing arg: script_dir" 1>&2; return 1; } - - local gs_script_root=$2 - [[ -n $gs_script_root ]] || { echo "missing arg: gs_script_root" 1>&2; return 1; } - - local script_path=$3 - [[ -n $script_path ]] || { echo "missing arg: script_name" 1>&2; return 1; } - - local startup_script=$script_dir/$script_path - local gs_startup_uri=$gs_script_root/$script_path - gsutil cp $startup_script $gs_startup_uri -} - -# add_instance adds a generic instance that runs -# new_grpc_docker_builder_on_startup.sh on startup -add_instance() { - local project=$1 - [[ -n $project ]] || { echo "missing arg: project" 1>&2; return 1; } - local gs_admin_root=$2 - [[ -n $gs_admin_root ]] || { echo "missing arg: gs_admin_root" 1>&2; return 1; } - local instance=$3 - [[ -n $instance ]] || { echo "missing arg: instance" 1>&2; return 1; } - local zone=$4 - [[ -n $zone ]] || { echo "missing arg: zone" 1>&2; return 1; } - local address=$5 - [[ -n $address ]] || { echo "missing arg: address" 1>&2; return 1; } - - local script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - local gs_script_root="$gs_admin_root/startup" - - local on_startup=new_grpc_docker_builder_on_startup.sh - local gs_on_startup=$gs_script_root/$on_startup - cp_startup_script $script_dir $gs_script_root $on_startup || { - echo "Could not save script to $gs_on_startup" 1>&2 - return 1 - } - startup_md="startup-script-url=$gs_on_startup" - - local shared_startup=shared_startup_funcs.sh - local gs_shared_startup=$gs_script_root/$shared_startup - cp_startup_script $script_dir $gs_script_root $shared_startup || { - echo "Could not save script to $gs_shared_startup" 1>&2 - return 1 - } - startup_md+=" shared_startup_script_url=$gs_shared_startup" - - local docker_dir=$(this_dir)/../dockerfile - grpc_push_dockerfiles $docker_dir $gs_admin_root || return 1; - startup_md+=" gs_dockerfile_root=$gs_admin_root/dockerfile" - startup_md+=" gs_docker_reg=$gs_admin_root/docker_images" - - local address_flag="" - local the_address=$(find_named_ip $address) - [[ -n $the_address ]] && address_flag="--address $the_address" - local the_image='container-vm-v20140925' - local scopes='compute-rw storage-full' - scopes+=' https://www.googleapis.com/auth/xapi.zoo' - gcloud --project $project compute instances create $instance \ - $address_flag \ - --image $the_image \ - --image-project google-containers \ - --metadata $startup_md \ - --machine-type='n1-standard-1' \ - --scopes $scopes \ - --tags grpc testing \ - --zone $zone \ - --boot-disk-size 500GB -} - -main() { - local INSTANCE_NAME="grpc-docker-builder" - local PROJECT="stoked-keyword-656" - local GS_ADMIN_ROOT="gs://tmp-grpc-dev/admin" - local ZONE='asia-east1-a' - local ADDRESS_NAME='grpc-php-dev-static-1' # use 'none' if no static ip is needed - - # Parse the options - opts=`getopt -o a::p::g::i::z:: --long address_name::,project::,gs_admin_root::,instance_name::,zone:: -n $0 -- "$@"` - eval set -- "$opts" - while true ; do - case "$1" in - -p|--project) - case "$2" in - "") shift 2 ;; - *) PROJECT=$2; shift 2 ;; - esac ;; - -a|--address_name) - case $2 in - "") shift 2 ;; - *) ADDRESS_NAME=$2; shift 2 ;; - esac ;; - -g|--gs_admin_root) - case "$2" in - "") shift 2 ;; - *) GS_ADMIN_ROOT=$2; shift 2 ;; - esac ;; - -i|--instance_name) - case "$2" in - "") shift 2 ;; - *) INSTANCE_NAME=$2; shift 2 ;; - esac ;; - -z|--zone) - case "$2" in - "") shift 2 ;; - *) ZONE=$2; shift 2 ;; - esac ;; - --) shift ; break ;; - *) echo "Internal error!" ; exit 1 ;; - esac - done - - # verify that the instance does not currently exist - has_instance $PROJECT $INSTANCE_NAME && remove_instance $PROJECT $INSTANCE_NAME $ZONE - has_instance $PROJECT $INSTANCE_NAME && { echo "$INSTANCE_NAME already exists" 1>&2; return 1; } - - # N.B the quotes around are necessary to allow cmds with spaces - add_instance $PROJECT $GS_ADMIN_ROOT $INSTANCE_NAME $ZONE $ADDRESS_NAME -} - -set -x -main "$@" |