从 terraform-validator 迁移

gcloud beta terraform vet 可以替代开源 terraform-validator 项目,但存在一些细微差别。如果要迁移 CI/CD 流水线以使用 gcloud beta terraform vet,则需要进行以下更改。

1. 更新命令和参数

  • terraform-validator validate 替换为 gcloud 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 限制条件框架政策的说明。我们建议使用一种较新的格式编写新政策。您还可以升级现有政策以使用新格式

对于源自 github.com/GoogleCloudPlatform/policy-library 的政策,我们建议与远程代码库保持同步。