Added scripts to validate terraform files

This commit is contained in:
Anton Babenko 2018-01-24 12:13:51 +01:00
commit 5f3ac96d44
5 changed files with 48 additions and 2 deletions

View file

@ -5,3 +5,19 @@
language: script
files: (\.tf|\.tfvars)$
exclude: \.terraform\/.*$
- id: terraform_validate_no_variables
name: Terraform validate without variables
description: Validates all Terraform configuration files without checking whether all required variables were set (basic check).
entry: terraform_validate_no_variables.sh
language: script
files: (\.tf|\.tfvars)$
exclude: \.terraform\/.*$
- id: terraform_validate_with_variables
name: Terraform validate with variables
description: Validates all Terraform configuration files and checks whether all required variables were specified.
entry: terraform_validate_with_variables.sh
language: script
files: (\.tf|\.tfvars)$
exclude: \.terraform\/.*$

View file

@ -2,14 +2,18 @@
[![Github tag](https://img.shields.io/github/tag/antonbabenko/pre-commit-terraform.svg)](https://github.com/antonbabenko/pre-commit-terraform/releases) ![](https://img.shields.io/maintenance/yes/2018.svg) [![Help Contribute to Open Source](https://www.codetriage.com/antonbabenko/pre-commit-terraform/badges/users.svg)](https://www.codetriage.com/antonbabenko/pre-commit-terraform)
Single [pre-commit](http://pre-commit.com/) hook which runs `terraform fmt` on Terraform configuration files (both `*.tf` and `*.tfvars`).
Several [pre-commit](http://pre-commit.com/) hooks to keep Terraform configurations (both `*.tf` and `*.tfvars`) in a good shape:
* `terraform_fmt` - Rewrites all Terraform configuration files to a canonical format.
* `terraform_validate_no_variables` - Validates all Terraform configuration files without checking whether all required variables were set.
* `terraform_validate_with_variables` - Validates all Terraform configuration files and checks whether all required variables were specified. This is an optional check, because it will not work if variables are being set dynamically (eg, when using [Terragrunt](https://github.com/gruntwork-io/terragrunt)). Use `terraform_validate_no_variables` hook instead.
An example `.pre-commit-config.yaml`:
```yaml
- repo: git://github.com/antonbabenko/pre-commit-terraform
sha: v1.3.0
sha: v1.4.0
hooks:
- id: terraform_validate_no_variables
- id: terraform_fmt
```

View file

@ -5,3 +5,19 @@
language: script
files: (\.tf|\.tfvars)$
exclude: \.terraform\/.*$
- id: terraform_validate_no_variables
name: Terraform validate without variables
description: Validates all Terraform configuration files without checking whether all required variables were set (basic check).
entry: terraform_validate_no_variables.sh
language: script
files: (\.tf|\.tfvars)$
exclude: \.terraform\/.*$
- id: terraform_validate_with_variables
name: Terraform validate with variables
description: Validates all Terraform configuration files and checks whether all required variables were specified.
entry: terraform_validate_with_variables.sh
language: script
files: (\.tf|\.tfvars)$
exclude: \.terraform\/.*$

View file

@ -0,0 +1,5 @@
#!/usr/bin/env bash
for file in "$@"; do
terraform validate -check-variables=false "$file"
done

View file

@ -0,0 +1,5 @@
#!/usr/bin/env bash
for file in "$@"; do
terraform validate -check-variables=true "$file"
done