gcloud-deploy.sh 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. # Install kubectl
  11. curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.1/bin/linux/amd64/kubectl
  12. chmod +x ./kubectl
  13. mkdir -p ${HOME}/.local/bin/
  14. export PATH="${HOME}/.local/bin/:$PATH"
  15. mv ./kubectl ${HOME}/.local/bin/
  16. # Store the new image in docker hub
  17. docker build -t transloadit/companion:latest -t transloadit/companion:$TRAVIS_COMMIT .;
  18. docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD";
  19. # Push the commit tagged docker image.
  20. docker push transloadit/companion:$TRAVIS_COMMIT;
  21. # If this build includes a git tag, tag the image with the git version tag and push the version.
  22. if [[ ! -z "${TRAVIS_TAG}" ]]; then
  23. docker tag transloadit/companion:$TRAVIS_COMMIT transloadit/companion:$TRAVIS_TAG;
  24. docker push transloadit/companion:$TRAVIS_TAG;
  25. fi
  26. # Lastly, update the pointer to latest.
  27. docker push transloadit/companion:latest;
  28. echo "Create directory..."
  29. mkdir ${HOME}/.kube
  30. echo "Writing KUBECONFIG to file..."
  31. echo $KUBECONFIGVAR | python -m base64 -d > ${HOME}/.kube/config
  32. echo "KUBECONFIG file written"
  33. sleep 10s # This cost me some precious debugging time.
  34. kubectl set image statefulset companion --namespace=companion companion=docker.io/transloadit/companion:$TRAVIS_COMMIT
  35. sleep 10s
  36. kubectl get pods --namespace=companion
  37. kubectl get service --namespace=companion
  38. kubectl get deployment --namespace=companion
  39. function cleanup {
  40. printf "Cleaning up...\n"
  41. rm -vf ${HOME}/.kube/config
  42. printf "Cleaning done."
  43. }
  44. trap cleanup EXIT