github.com/mre-fog/trillianxx@v1.1.2-0.20180615153820-ae375a99d36a/examples/deployment/kubernetes/deploy.sh (about) 1 #!/usr/bin/env bash 2 # Script assumptions: 3 # - Cluster has already been created & configured using the create.sh script 4 # - Go 1.9 is installed 5 6 set -e 7 8 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 9 source ${DIR}/config.sh 10 11 export LOG_URL=TODO 12 export MAP_URL=TODO 13 export TAG=$(git rev-parse HEAD) 14 15 # Get Trillian 16 go get github.com/google/trillian/... 17 cd $GOPATH/src/github.com/google/trillian 18 19 # Build docker images 20 docker build -f examples/deployment/docker/log_server/Dockerfile -t gcr.io/$PROJECT_NAME/log_server:$TAG . 21 docker build -f examples/deployment/docker/log_signer/Dockerfile -t gcr.io/$PROJECT_NAME/log_signer:$TAG . 22 # TODO(al): when cloudspanner supports maps: 23 # docker build -f examples/deployment/docker/map_server/Dockerfile -t us.gcr.io/$PROJECT_NAME/map_server:$TAG . 24 25 # Connect to gcloud 26 gcloud config set project "${PROJECT_NAME}" 27 gcloud config set compute/zone "${ZONE}" 28 29 # Configure Docker to use gcloud credentials with Google Container Registry 30 gcloud auth configure-docker 31 32 # Push docker images 33 docker push "gcr.io/${PROJECT_NAME}/log_server:${TAG}" 34 docker push "gcr.io/${PROJECT_NAME}/log_signer:${TAG}" 35 36 # TODO(al): when cloudspanner supports maps: 37 # gcloud docker -- push "us.gcr.io/${PROJECT_NAME}/map_server:${TAG}" 38 39 # Prepare configmap: 40 kubectl delete configmap deploy-config 41 envsubst < examples/deployment/kubernetes/trillian-cloudspanner.yaml | kubectl create -f - 42 43 # Launch with kubernetes 44 envsubst < examples/deployment/kubernetes/trillian-log-deployment.yaml | kubectl apply -f - 45 envsubst < examples/deployment/kubernetes/trillian-log-service.yaml | kubectl apply -f - 46 envsubst < examples/deployment/kubernetes/trillian-log-signer-deployment.yaml | kubectl apply -f - 47 envsubst < examples/deployment/kubernetes/trillian-log-signer-service.yaml | kubectl apply -f - 48 kubectl get all 49 kubectl get services 50 51 # TODO(al): Create trees 52 # curl -X POST ${LOG_URL}/v1beta1/trees -d '{ "tree":{ "tree_state":"ACTIVE", "tree_type":"LOG", "hash_strategy":"RFC6962_SHA256", "signature_algorithm":"ECDSA", "max_root_duration":"0", "hash_algorithm":"SHA256" }, "key_spec":{ "ecdsa_params":{ "curve":"P256" } } }' 53 # ... tree_id: .... 54 # curl -X POST ${LOG_URL}/v1beta1/logs/${tree_id}:init 55 # 56 # curl -X POST ${MAP_URL}/v1beta1/trees -d '{ "tree":{ "tree_state":"ACTIVE", "tree_type":"MAP", "hash_strategy":"CONIKS_SHA512_256", "signature_algorithm":"ECDSA", "max_root_duration":"0", "hash_algorithm":"SHA256" }, "key_spec":{ "ecdsa_params":{ "curve":"P256" } } }'