This repository is a curated list of sample templates to use within AWS Proton that are authored for integration with Terraform.
To use this repository, browse to the folder that corresponds to the template that you want to use. You will find there all the information you need to create environment and service templates and to deploy the corresponding environments and services. You will also find a link to a repository with basic code that runs on each one of them, in case you want to fork it to use it as the basis for your deployment.
All of the Templates in this directory are set up to work with AWS Proton Template Sync. This repository is also a Github Template Repository. So you can click "Use this template" on the home page of this repo and that will create an identical repo in your account, which you can then use with template sync.
If you need an example of how to run your Terraform code, head on over to this repo where we offer an example of running Terraform using GitHub Actions.
For local development, the <template>/dev-resources/
directory contains variable definitions/values which are normally generated
by Proton at provision time:
proton.variables.tf
: variable type definitionsproton.auto.tfvars.json
: variable value assignments (contains provisioning inputs, environment outputs etc)
To test a template locally, you can create symbolic links to these files in the infrastructure directory. E.g.:
cd <template>/vx/<infrastructure>/
ln -s ../../dev-resources/proton.variables.tf dev.proton.auto.tfvars.json
ln -s ../../dev-resources/proton.auto.tfvars.json dev.proton.auto.tfvars.json
terraform init
terraform plan
Note that you will need to populate proton.auto.tfvars.json
with the required values according to the template. For
environments, this will typically be the environment.name
and environment.inputs
fields, for example.
See CONTRIBUTING for more information.
This library is licensed under the MIT-0 License. See the LICENSE file.