terraform-validator からの移行

gcloud beta terraform vet はオープンソース terraform-validator プロジェクトに代わるものですが、若干の違いがあります。gcloud beta terraform vet を使用するように CI / CD パイプラインを移行する場合は、次の変更を行う必要があります。

1. コマンドと引数を更新する

  • terraform-validator validategcloud beta terraform vet に置き換えます。
  • --policy-path--policy-library に置き換えます。

基本的な例:

# Old
terraform-validator validate ./tfplan.json --policy-path=/path/to/policy-library

# New
gcloud beta terraform vet ./tfplan.json --policy-library=/path/to/policy-library

サービス アカウントの権限借用を使用した場合:

# Old
GOOGLE_IMPERSONATE_SERVICE_ACCOUNT=account@project.iam.gserviceaccount.com
terraform-validator validate ./tfplan.json --policy-path=/path/to/policy-library

# New
gcloud beta terraform vet ./tfplan.json --policy-library=/path/to/policy-library \
  --impersonate-service-account=account@project.iam.gserviceaccount.com

2. (省略可)制約テンプレートをアップグレードする

terraform-validator のドキュメントには、これまで v1alpha1 Constraint Framework ポリシーの記述方法が定められていました。新しいポリシーの作成に推奨される新しい形式があります。新しい形式を使用するように既存のポリシーをアップグレードすることもできます。

github.com/GoogleCloudPlatform/policy-library から取得したポリシーについては、リモート リポジトリと同期した状態を維持することをおすすめします。