Skip to main content

A DfE Service Manual and its content is intended for internal use by the DfE service community.

Terraform setup

Instruction on setting up the Terraform CLI can be found on their website

Creating a new Terraform environment

If we want to create a new long term environment, we need to create a new backing store for state.

We are using S3 buckets created through GovPaaS & Cloudfoundry to store terraform state. In order to create a new bucket, you need to have the cloudfoundry cli installed and logged in to the GovPaaS account.

To create a new S3 bucket, run

cf create-service aws-s3-bucket default dfe-ecf-terraform-state-<env>

To create the access key, run

cf create-service-key dfe-ecf-terraform-state-<env> terraform-state-key-<env> -c '{"allow_external_access": true}'

To view the access key:

cf service-key dfe-ecf-terraform-state-<env> terraform-state-key-<env>

You should be able to see the bucket_name, aws_access_key_id and aws_secret_access_key. With these values, run

terraform init -backend-config="bucket=<bucket_name>" -backend-config="access_key=<aws_access_key_id>" -backend-config="secret_key=<aws_secret_access_key>"

Running Terraform apply

terraform apply --var-file=... -var='secret_paas_app_env_values={"RAILS_MASTER_KEY":"..."}' -var='paas_user=...' -var='paas_password=...' -var='paas_app_docker_image=...'