From 32884dbefcc4c5581cc6e024898ef0fb23d6b1fa Mon Sep 17 00:00:00 2001 From: Frostebite Date: Sun, 9 Aug 2020 02:58:26 +0100 Subject: [PATCH] Fix --- ApplyClusterAndAcquireLock.sh | 95 ++++++++++++++++++----------------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/ApplyClusterAndAcquireLock.sh b/ApplyClusterAndAcquireLock.sh index 7c42b32c..9cdef61e 100755 --- a/ApplyClusterAndAcquireLock.sh +++ b/ApplyClusterAndAcquireLock.sh @@ -11,60 +11,61 @@ export GKE_PROJECT=$1 export GKE_CLUSTER=$2 export GKE_ZONE=$3 +# may update this to avoid repeated install, drop me a comment if needed +sudo sh -c "curl https://raw.githubusercontent.com/kadwanev/retry/master/retry -o /usr/local/bin/retry && chmod +x /usr/local/bin/retry" + attempts=0 while [ attempts == 0 ] do -# may update this to avoid repeated install, drop me a comment if needed -sudo sh -c "curl https://raw.githubusercontent.com/kadwanev/retry/master/retry -o /usr/local/bin/retry && chmod +x /usr/local/bin/retry" + retry -s 15 -t 20 -v ' + STATUS=$(gcloud container clusters list --format="json" --project $GKE_PROJECT | + jq " + .[] | + {name: .name, status: .status} | + select(.name == \"$GKE_CLUSTER\") + " | + jq ".status") + if [ "$STATUS" == "\"STOPPING\"" ]; then echo "Cluster stopping waiting for completion" && exit 1; fi + exit 0 + ' -retry -s 15 -t 20 -v ' - STATUS=$(gcloud container clusters list --format="json" --project $GKE_PROJECT | - jq " - .[] | - {name: .name, status: .status} | - select(.name == \"$GKE_CLUSTER\") - " | - jq ".status") - if [ "$STATUS" == "\"STOPPING\"" ]; then echo "Cluster stopping waiting for completion" && exit 1; fi - exit 0 - ' + cluster=$(gcloud container clusters list --project $GKE_PROJECT --format="json" | jq '.[] | select(.name == "${GKE_CLUSTER}")') -cluster=$(gcloud container clusters list --project $GKE_PROJECT --format="json" | jq '.[] | select(.name == "${GKE_CLUSTER}")') + if [ -z "$cluster" ]; + then + echo "No clusters found for \"$GKE_CLUSTER\" in project \"$GKE_CLUSTER\" in zone \"$GKE_ZONE\"" + # you may not need this, it installs GCP beta for additional command line options + gcloud components install beta -q + # replace this line with whatever type of cluster you want to create + gcloud beta container --project $GKE_PROJECT clusters create $GKE_CLUSTER --zone $GKE_ZONE --no-enable-basic-auth --cluster-version "1.15.12-gke.2" --machine-type "custom-1-3072" --image-type "COS" --disk-type "pd-standard" --disk-size "15" --metadata disable-legacy-endpoints=true --scopes "https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" --num-nodes "1" --enable-stackdriver-kubernetes --enable-ip-alias --default-max-pods-per-node "110" --enable-autoscaling --min-nodes "0" --max-nodes "3" --no-enable-master-authorized-networks --addons HorizontalPodAutoscaling,HttpLoadBalancing --enable-autoupgrade --enable-autorepair --max-surge-upgrade 1 --max-unavailable-upgrade 0 + fi; -if [ -z "$cluster" ]; -then - echo "No clusters found for \"$GKE_CLUSTER\" in project \"$GKE_CLUSTER\" in zone \"$GKE_ZONE\"" - # you may not need this, it installs GCP beta for additional command line options - gcloud components install beta -q - # replace this line with whatever type of cluster you want to create - gcloud beta container --project $GKE_PROJECT clusters create $GKE_CLUSTER --zone $GKE_ZONE --no-enable-basic-auth --cluster-version "1.15.12-gke.2" --machine-type "custom-1-3072" --image-type "COS" --disk-type "pd-standard" --disk-size "15" --metadata disable-legacy-endpoints=true --scopes "https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" --num-nodes "1" --enable-stackdriver-kubernetes --enable-ip-alias --default-max-pods-per-node "110" --enable-autoscaling --min-nodes "0" --max-nodes "3" --no-enable-master-authorized-networks --addons HorizontalPodAutoscaling,HttpLoadBalancing --enable-autoupgrade --enable-autorepair --max-surge-upgrade 1 --max-unavailable-upgrade 0 -fi; + retry -s 15 -t 20 -v ' + STATUS=$(gcloud container clusters list --format="json" --project $GKE_PROJECT | + jq " + .[] | + {name: .name, status: .status} | + select(.name == \"$GKE_CLUSTER\") + " | + jq ".status") + if [ "$STATUS" == "\"PROVISIONING\"" ]; then echo "Cluster provisioning waiting for available" && exit 1; fi + exit 0 + ' -retry -s 15 -t 20 -v ' - STATUS=$(gcloud container clusters list --format="json" --project $GKE_PROJECT | - jq " - .[] | - {name: .name, status: .status} | - select(.name == \"$GKE_CLUSTER\") - " | - jq ".status") - if [ "$STATUS" == "\"PROVISIONING\"" ]; then echo "Cluster provisioning waiting for available" && exit 1; fi - exit 0 -' + echo "Cluster is available" + gcloud container clusters get-credentials $GKE_CLUSTER --zone $GKE_ZONE --project $GKE_PROJECT + kubectl version + NSID=$(cat /proc/sys/kernel/random/uuid) + echo "::set-env name=NSID::"$NSID + cat <