⚡
terraform fmtをpre-commitで自動化
前提
以下のようなrepository構成を想定しています.
.
├── src # python code等
├── terraform # terraform code
│ ├── main.tf
│ ├── resource.tf
│ └── ...
└── .pre-commit-config.yaml
手順
Terraform CLIのインストール
.pre-commit-config.yamlの作成
- repo: local
hooks:
- id: terraform-fmt
name: terraform-fmt
entry: terraform fmt
language: system
types: [ terraform ]
pre-commitのインストール
installできたら pre-commit-config.yaml
があるディレクトリで以下を実行してください.
pre-commit install
git commit
自動で修正されるようになりました.
git add terraform/
git commit -m "terraform fmt test"
git diffで修正内容を確認できます.
例:
resource "google_project_iam_member" "gcp_iam_member" {
for_each = toset(var.gcp_iam_roles)
- project = var.google_project
+ project = var.google_project
role = each.value
member = "serviceAccount:${data.google_service_account.test_sa.email}"
}
Discussion
pre-commit run --all-files
で terraform fmt の対象に terraform ファイル以外が含まれてしまい、以下のエラーが発生してしまいました。ので、以下のように修正しました🙏
files: ^terraform/.*
->types: [ terraform ]