gcloud-deploy.sh 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/usr/bin/env bash
  2. set -o pipefail
  3. set -o errexit
  4. set -o nounset
  5. # set -o xtrace
  6. # Set magic variables for current FILE & DIR
  7. __dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  8. __kube="${__dir}"
  9. __companion="$(dirname "$(dirname "${__kube}")")"
  10. echo ${__companion}
  11. # Store the new image in docker hub
  12. docker build --quiet -t transloadit/uppy-server:latest -t transloadit/uppy-companion:$TRAVIS_COMMIT -f "${__companion}/Dockerfile" "${__companion}";
  13. docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD";
  14. docker push transloadit/uppy-companion:$TRAVIS_COMMIT;
  15. docker push transloadit/uppy-companion:latest;
  16. echo $CA_CRT | base64 --decode -i > ${HOME}/ca.crt
  17. gcloud config set container/use_client_certificate True
  18. export CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE=True
  19. kubectl config set-cluster transloadit-gke-cluster --embed-certs=true --server=${CLUSTER_ENDPOINT} --certificate-authority=${HOME}/ca.crt
  20. kubectl config set-credentials travis-uppy --token=$SA_TOKEN
  21. kubectl config set-context travis --cluster=$CLUSTER_NAME --user=travis-uppy --namespace=uppy
  22. kubectl config use-context travis
  23. # Should be already removed. Using it temporarily.
  24. rm -f "${__kube}/companion/uppy-env.yaml"
  25. echo $UPPY_ENV | base64 --decode > "${__kube}/companion/uppy-env.yaml"
  26. kubectl config current-context
  27. kubectl apply -f "${__kube}/companion/uppy-env.yaml"
  28. sleep 10s # This cost me some precious debugging time.
  29. kubectl apply -f "${__kube}/companion/uppy-server-kube.yaml"
  30. kubectl apply -f "${__kube}/companion/uppy-server-redis.yaml"
  31. kubectl set image statefulset uppy-server --namespace=uppy companion=docker.io/transloadit/uppy-companion:$TRAVIS_COMMIT
  32. sleep 10s
  33. kubectl get pods --namespace=uppy
  34. kubectl get service --namespace=uppy
  35. kubectl get deployment --namespace=uppy
  36. function cleanup {
  37. printf "Cleaning up...\n"
  38. rm -vf "${__kube}/companion/uppy-env.yaml"
  39. printf "Cleaning done."
  40. }
  41. trap cleanup EXIT