目的

RuleWatcher 系 repository に Terraform を導入するときの標準手順をまとめる。wolf-back の運用に寄せつつ、最初から plan / apply まで自動化してよい箇所と、認証設計が必要な箇所を分ける。

基本方針

Terraform directory 構成

infra/terraform/
  README.md
  aws/environments/prod/
    backend.hcl
    versions.tf
    main.tf
    outputs.tf
  gcp/environments/prod/
    backend.hcl
    versions.tf
    main.tf
    outputs.tf
  gcp/modules/aws_workload_identity_provider/
    main.tf
    variables.tf
    outputs.tf

必要な tool version

.tool-versions に最低限以下を置く。

terraform 1.14.7
tflint 0.61.0
trivy 0.70.0

Trivy config scan の設定は repository root の trivy.yaml に置く。

plan コメントまで運用する場合は wolf-back と同じく tfcmt も追加する。

tfcmt 4.14.15

Backend 設定

既存の state bucket を使う場合は、環境ごとに backend.hcl を置く。

bucket       = "rulewatcher-infra-tfstate"
key          = "<repo>/<cloud>/<env>/terraform.tfstate"
region       = "ap-northeast-1"
use_lockfile = true

state key は repository / cloud / environment が分かる名前にする。