This repository contains code for an application that is published using the Application Builder Platform (ABP).
For best practices and information on developing with Terraform, see the I&A Module Standards
In order to contibute code to this repository, you must submit a Pull Request. To do so, you must fork this repostiory, make your changes in your forked version and submit a Pull Request.
‼️ Do not manually update README.md.
README.md is automatically generated by pulling in content from other files. For instructions, including a fill-in-the-blank content template, see Create readmes for Terraform-based Partner Solutions.
Pull Requests (PRs) submitted against this repository undergo a series of static and functional checks.
❗ Note: Failures during funtional or static checks will prevent a pull request from being accepted.
It is a best practice to perform these checks locally prior to submitting a pull request.
- TFLint
- tfsec
- Markdown Lint
- Checkov
- Terratest
‼️ The readme.md file will be created after all checks have completed successfuly, it is recommended that you install terraform-docs locally in order to preview your readme.md file prior to publication.
Prerequisites:
- Python
- Pip
- golang (for macos you can use
brew
) - tflint
- tfsec
- Markdown Lint
- Checkov
- terraform-docs
- coreutils
Preparation
terraform init
terraform validate
tflint --init
tflint
tfsec .
mdl .header.md
terraform init
terraform plan -out tf.plan
terraform show -json tf.plan > tf.json
checkov
Include tests to validate your examples/<> root modules, at a minimum. This can be accomplished with usually only slight modifications to the boilerplate test provided in this template
# from the root of the repository
cd test
go mod init github.com/aws-ia/terraform-project-ephemeral
go mod tidy
go install github.com/gruntwork-io/terratest/modules/terraform
go test -timeout 45m
# from the root of the repository
terraform-docs --lockfile=false ./