No project description provided
Project description
Terraform Utils
This project provides a helper command intended to be used with terraform and terragrunt for applications hosted on AWS. The utility is available on pypi and requires Python 3.6.1+.
One of the ways terragrunt helps keep infrastructure code DRY is by injecting the remote state configuration to the current module. The tf-util
command generates names for the terraform state bucket, object, and lock table based on the protect structure.
# modules/app/main.tf
terraform {
required_version = ">= 0.12"
# The configuration for this backend will be filled in by Terragrunt
backend "s3" {}
}
Project Structure
If you are using terragrunt use two repositories to separate your live configuration from your modules. Here's what the tree structure for the live repo looks like. Within the root there are two files meant for common values and remote state management. The first level of folders correspond to each environment you want to create, i.e dev, qa, and prd. The nested folders represent individual constructs within an environment. The resources within a construct share the same terraform state and are managed together.
.
├── common.tfvars
├── dev
│ ├── app
│ │ └── terragrunt.hcl
│ ├── iam
│ │ └── terragrunt.hcl
│ └── network
│ └── terragrunt.hcl
└── terragrunt.hcl
Example Usage
$ pip install terraform-utils
$ cd path/to/live/repo
# verifiy content of common.tfvars
$ cd dev/network
$ tf-util -c bucket
example-terraformstate-dev-company
$ tf-util -c object
app/terraform.tfstate
$ tf-util -c table
example-terraformlock-dev-company
Code Quality
Run the following commands to analyze the project with sonar.
docker run -d --name sonarqube -p 9000:9000 sonarqube
pip install coverage
nosetests --with-xunit --with-coverage --cover-xml
sonar-scanner -D project.settings=cicd/sonar-project.properties
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file terraform-utils-0.1.3.tar.gz
.
File metadata
- Download URL: terraform-utils-0.1.3.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b1feee5d9de63cc996039f3e5314386b6485cf3ad049454474aad9c9a896e6d |
|
MD5 | 3599ed734816a8321e8a0c819f0e6c52 |
|
BLAKE2b-256 | 4c38e56318ba93647ff8860ea3cf5092a2ca7ea2874cd2c5c34ee5f9609886aa |
File details
Details for the file terraform_utils-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: terraform_utils-0.1.3-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d32d8c3b8cf433da7047774317cefcb603c886e31563070ccafd15f8bff8571 |
|
MD5 | 6489b79fb8e14a4b6e758dabaf86db41 |
|
BLAKE2b-256 | 077ece664a6c1b9cac4e57c41713b4de059169fd2eab44fb8a895a5dc4f24e91 |