özellikle pipeline da terraform (ve belki de ansible icinde) harika bir kontol toolu olan pre-commit le ilgili notlarim :
Kurulum :
pre-commit.com
Pre-commit kurulumu per repository şeklinde oluyor. Repositorynin olduğu root klasörde
pre-commit install
Komutunu veriyoruz.
Ancak aşağıda ki konfigürasyona bağlı olarak ek kurulumlar gerekli örnek:
brew install terraform-docs
brew install checkov
brew install tflint
Komutlar :
Fmt (text formating)
pre-commit run terraform_fmt --files ./*
Readme olusturmak icin
$ pre-commit run terraform_docs --files ./*
pre-commit validate
$ pre-commit run terraform_validate --files ./*
Pre-commit hookları ile kodun güvenlik kontrolü otomatik yapılabilir.
$ pre-commit run terraform_checkov --files ./*
Linting
$ pre-commit run terraform_tflint --files ./*
.pre-commit-config.yaml
repos:
- repo: https://github.com/antonbabenko/pre-commit-terraform
rev: v1.76.0 # Get the latest from: https://github.com/antonbabenko/pre-commit-terraform/releases
hooks:
- id: terraform_fmt
- id: terraform_docs
args:
- --hook-config=--add-to-exiting-file=true
- --hook-config=--create-file-if-not-exist=true
- --hook-config=--html=false
- --hook-config=--anchor=false
- id: terraform_docs_without_aggregate_type_defaults
- id: terraform_validate
- id: terraform_checkov
args:
- --args=--quiet
- --args=--skip-check CKV2_AWS_8
- --args=--skip-check CKV_AWS_28
- --args=--skip-check CKV_AWS_260
- --args=--skip-check CKV2_AWS_11
- --args=--skip-check CKV2_AWS_19
- --args=--skip-check CKV_AWS_19
- --args=--skip-check CKV_AWS_144
- --args=--skip-check CKV2_AWS_12
- id: terraform_tflint
args:
- --args=--only=terraform_unused_declarations
- --args=--only=terraform_documented_outputs
- --args=--only=terraform_documented_variables
- --args=--only=terraform_comment_syntax
- --args=--only=terraform_naming_convention
#- --args=--only=terraform_required_providers
- --args=--only=terraform_unused_required_providers