File: deploy.sh

package info (click to toggle)
golang-github-google-certificate-transparency 1.3.2-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,764 kB
  • sloc: sh: 606; makefile: 103; sql: 16
file content (65 lines) | stat: -rwxr-xr-x 2,194 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env bash
#set -o pipefail
#set -o errexit
#set -o nounset
#set -o xtrace

function checkEnv() {
  if [ -z ${PROJECT_ID+x} ] ||
     [ -z ${CLUSTER_NAME+x} ] ||
     [ -z ${MASTER_ZONE+x} ]; then
    echo "You must either pass an argument which is a config file, or set all the required environment variables"
    exit 1
  fi
}

set -e

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
if [ $# -eq 1 ]; then
  source $1
else
  checkEnv
fi

export IMAGE_TAG=${IMAGE_TAG:-$(git rev-parse HEAD)}

gcloud --quiet config set project ${PROJECT_ID}
gcloud --quiet config set container/cluster ${CLUSTER_NAME}
gcloud --quiet config set compute/zone ${MASTER_ZONE}
gcloud --quiet container clusters get-credentials ${CLUSTER_NAME}

configmaps=$(kubectl get configmaps)
if [[ ! "${configmaps}" =~ "ctfe-configmap" ]]; then
  echo "Missing ctfe config map."
  echo
  echo "Ensure you have a PEM file containing all the roots your log should accept."
  echo "and a working CTFE configuration file, then create a CTFE configmap by"
  echo "running the following command:"
  echo "  kubectl create configmap ctfe-configmap \\"
  echo "     --from-file=roots=path/to/all-roots.pem \\"
  echo "     --from-file=ctfe-config-file=path/to/ct_server.cfg \\"
  echo "     --from-literal=cloud-project=${PROJECT_ID}"
  echo
  echo "Once you've created the configmap, re-run this script"
  exit 1
fi


echo "Building docker images.."
cd $GOPATH/src/github.com/google/certificate-transparency-go
docker build --quiet -f trillian/examples/deployment/docker/ctfe/Dockerfile -t gcr.io/${PROJECT_ID}/ctfe:${IMAGE_TAG} .

echo "Pushing docker image..."
gcloud docker -- push gcr.io/${PROJECT_ID}/ctfe:${IMAGE_TAG}

echo "Tagging docker image..."
gcloud --quiet container images add-tag gcr.io/${PROJECT_ID}/ctfe:${IMAGE_TAG} gcr.io/${PROJECT_ID}/ctfe:latest

echo "Updating jobs..."
envsubst < trillian/examples/deployment/kubernetes/ctfe-deployment.yaml | kubectl apply -f -
envsubst < trillian/examples/deployment/kubernetes/ctfe-service.yaml | kubectl apply -f -
envsubst < trillian/examples/deployment/kubernetes/ctfe-ingress.yaml | kubectl apply -f -

echo "CTFE is available at:"
kubectl get ingress