summaryrefslogtreecommitdiffstats
path: root/cluster.sh
diff options
context:
space:
mode:
Diffstat (limited to 'cluster.sh')
-rwxr-xr-xcluster.sh82
1 files changed, 82 insertions, 0 deletions
diff --git a/cluster.sh b/cluster.sh
new file mode 100755
index 000000000..50fbe66eb
--- /dev/null
+++ b/cluster.sh
@@ -0,0 +1,82 @@
+#!/bin/bash -eu
+
+MINIONS=3
+MASTERS=1
+PROVIDER=gce
+
+# @formatter:off
+function usage {
+ cat 1>&2 <<-EOT
+ ${0} : [create|destroy|update|list] {GCE environment tag}
+
+ Supported environment tags:
+ $(grep 'SUPPORTED_ENVS.*=' ./cloud.rb)
+EOT
+}
+# @formatter:on
+
+function create_cluser {
+ for (( i = 0; i < $MINIONS; i ++ )); do
+ ./cloud.rb "${PROVIDER}" launch -e "${ENV}" --type=os3-minion
+ done
+
+ for (( i = 0; i < $MASTERS; i ++ )); do
+ ./cloud.rb "${PROVIDER}" launch -e "${ENV}" --type=os3-master
+ done
+ update_cluster
+ echo -e "\nCreated ${MASTERS} masters and ${MINIONS} minions using ${PROVIDER} provider\n"
+}
+
+function update_cluster {
+ for (( i = 0; i < $MINIONS; i ++ )); do
+ ./cloud.rb "${PROVIDER}" config -e "${ENV}" --type=os3-minion
+ done
+
+ for (( i = 0; i < $MASTERS; i ++ )); do
+ ./cloud.rb "${PROVIDER}" config -e "${ENV}" --type=os3-master
+ done
+}
+
+function terminate_cluster {
+ #./cloud.rb "${PROVIDER}" terminate -e "${ENV}" --type=os3-master
+ ./cloud.rb "${PROVIDER}" terminate -e "${ENV}" --type=os3-minion
+}
+
+[ -f ./cloud.rb ] || (echo 1>&2 'Cannot find ./cloud.rb' && exit 1)
+
+while getopts ':p:m:n:' flag; do
+ case "${flag}" in
+ p) PROVIDER="${OPTARG}" ;;
+ m) MASTERS="${OPTARG}" ;;
+ n) MINIONS="${OPTARG}" ;;
+ *) echo -e 2>&1 "unsupported option $OPTARG\n"
+ usage
+ exit 1 ;;
+ esac
+done
+shift $((OPTIND-1))
+
+[ -z "${1:-}" ] && (usage; exit 1)
+
+case "${1}" in
+ 'create')
+ [ -z "${2:-}" ] && (usage; exit 1)
+ ENV="${2}"
+ create_cluser ;;
+ 'update')
+ [ -z "${2:-}" ] && (usage; exit 1)
+ ENV="${2}"
+ update_cluster ;;
+ 'terminate')
+ [ -z "${2:-}" ] && (usage; exit 1)
+ ENV="${2}"
+ terminate_cluster ;;
+ 'list') ./cloud.rb "${PROVIDER}" list ;;
+ 'help') usage; exit 0 ;;
+ *)
+ echo -n 1>&2 "${1} is not a supported operation";
+ usage;
+ exit 1 ;;
+esac
+
+exit 0