aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/gce_setup/new_grpc_docker_builder.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gce_setup/new_grpc_docker_builder.sh')
-rwxr-xr-xtools/gce_setup/new_grpc_docker_builder.sh182
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 "$@"