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" } } }'