Advertisement
Guest User

Untitled

a guest
Mar 6th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.86 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. CLUSTER=""
  4. PROJECT_CMD=""
  5. ZONE_CMD=""
  6. SCOPES=""
  7. NUM_NODES="1"
  8. MACHINE_TYPE=""
  9. DISK_SIZE="100GB"
  10.  
  11. # Functions
  12. function usage
  13. {
  14. echo "usage: replace-cluster [ [-h] | --cluster CLUSTER --project PROJECT --machine-type TYPE [--num-nodes X(DEFAULT:1)] [--disk-size 100GB] [--scope SCOPE]... ] "
  15. }
  16.  
  17. #run !
  18. while [ "$1" != "" ]; do
  19. case $1 in
  20. -c | --cluster ) shift
  21. CLUSTER=$1
  22. ;;
  23. -p | --project ) shift
  24. PROJECT_CMD="--project=${1}"
  25. ;;
  26. -z | --zone ) shift
  27. ZONE_CMD="--zone=${1}"
  28. ;;
  29. --num-nodes ) shift
  30. NUM_NODES="${1}"
  31. ;;
  32. --machine-type ) shift
  33. MACHINE_TYPE="${1}"
  34. ;;
  35. --disk-size ) shift
  36. DISK_SIZE="${1}"
  37. ;;
  38. --scope ) shift
  39. SCOPES="${SCOPES} ${1}"
  40. ;;
  41. * ) usage
  42. exit
  43. ;;
  44. esac
  45. shift
  46. done
  47.  
  48. if [ "${CLUSTER}" == "" ]; then
  49. echo "Missing cluster name !"
  50. usage
  51. exit 1
  52. fi
  53. if [ "${MACHINE_TYPE}" == "" ]; then
  54. echo "Missing machine type !"
  55. usage
  56. exit 1
  57. fi
  58.  
  59. if gcloud compute machine-types list ${PROJECT_CMD} ${ZONE_CMD} | grep -w ${MACHINE_TYPE} > /dev/null ; then
  60. echo "Using machine type ${MACHINE_TYPE}."
  61. else
  62. echo "Machine type ${MACHINE_TYPE} not found."
  63. exit 1
  64. fi
  65.  
  66. gcloud alpha container clusters get-credentials ${CLUSTER} ${PROJECT_CMD}
  67.  
  68. JSON_CLUSTER=$(gcloud alpha container clusters describe ${CLUSTER} ${PROJECT_CMD} --format=json)
  69.  
  70. SCOPES="$( (test -n "${SCOPES}" && echo ${SCOPES} | tr " " ","; echo ${JSON_CLUSTER} | jq -r ".nodeConfig.oauthScopes[] ") | paste -d ',' -s - )"
  71.  
  72.  
  73. PASSWORD=$(echo ${JSON_CLUSTER} | jq -r .masterAuth.password)
  74. USERNAME=$(echo ${JSON_CLUSTER} | jq -r .masterAuth.username)
  75.  
  76. echo "Scopes: " $SCOPES
  77. echo "USERNAME: " $USERNAME
  78. echo "PASSWORD: " $PASSWORD
  79.  
  80. TMPDIR=`mktemp -d /tmp/kubecfgs.XXXXXX` || exit 1
  81.  
  82. echo puting conf files in ${TMPDIR}
  83.  
  84.  
  85. kubectl get rc --output=yaml > ${TMPDIR}/rc.yml
  86. kubectl get services --output=yaml > ${TMPDIR}/services.yml
  87.  
  88. gcloud alpha container clusters delete ${PROJECT_CMD} ${ZONE_CMD} ${CLUSTER}
  89.  
  90. gcloud alpha container clusters create ${CLUSTER} ${PROJECT_CMD} --scopes ${SCOPES} --num-nodes ${NUM_NODES} --machine-type ${MACHINE_TYPE} --username=${USERNAME} --password=${PASSWORD}
  91.  
  92. gcloud alpha container clusters get-credentials ${CLUSTER} ${PROJECT_CMD}
  93.  
  94. kubectl create -f ${TMPDIR}/rc.yml
  95. kubectl create -f ${TMPDIR}/services.yml
  96.  
  97. exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement