1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #!/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 -n "\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 {
- for (( i = 0; i < $MINIONS; i ++ )); do
- ./cloud.rb "${PROVIDER}" terminate -e "${ENV}" --type=os3-minion
- done
- for (( i = 0; i < $MASTERS; i ++ )); do
- ./cloud.rb "${PROVIDER}" terminate -e "${ENV}" --type=os3-master
- done
- }
- [ -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 -n 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
|