This directory contains the supported deployment types for Trillian. Currently, this includes:
Further deployment types (community-supported) can be found in the examples/deployment directory.
The infrastructure is created using Terraform. It consists of a Cloud Spanner database, a Trillian-specific etcd cluster, the Trillian logserver and logsigner. A Workload Identity is set up by Terraform to give the services access to Cloud Spanner. The container images are based on v1.3.3.
- Terraform, kubectl, and gcloud are installed.
- You have a Google account with billing configured.
- Terraform should have access to the credentials to manage your Cloud Project. Follow the instructions from the Terraform Google Provider documentation to set this up.
- Create a new project and copy its Project ID.
- Create the infrastructure:
terraform init && terraform apply -var="gcp_project=PROJECT_ID"
. It is ok to re-execute this command at any time. - The script will output a gcloud command similar to:
Execute this set of commands to get the credentials for your new cluster.
gcloud config set project PROJECT_ID && \ gcloud container clusters get-credentials cluster --region=us-west1
- Deploy the containers:
kubectl apply -k .
This last command may fail with an error similar to:unable to recognize ".": no matches for kind "EtcdCluster" in version "etcd.database.coreos.com/v1beta2"
. In this case, simply re-run it until the error is not reported anymore.
- Destroy the infrastructure:
terraform destroy
.