我正在通过 Terraform 和 GitLab CI 在 GitLab MR 上设置临时审查环境。我使用 Terraform Cloud 作为后端。我想为每个审查环境创建一个工作区,并根据 GitLab CI 中的一些环境变量动态地进行。
我的问题是我无法通过 CLI 创建新的 Terraform Cloud 工作区,而无需先拥有现有工作区。这似乎违反直觉,因为我没有使用那个工作区。如果存在工作区,我可以运行terraform init
,然后terraform workspace new
在 Terraform Cloud 中创建工作区。如果我不首先创建工作区init
,因为没有工作区存在,并且如果我想terraform workspace new
在它大喊大叫之前运行,因为init
没有先运行。我的配置是:
terraform {
cloud {
organization = "my-org"
workspaces {
tags = ["review", "customer:test-frontend"]
}
}
}
我知道我可以先通过 API 创建一个工作区,但这很麻烦。我尝试使用TF_WORKSPACE
,但它应该指向不是我的情况的现有工作区。我目前的解决方案是切换到:
terraform {
cloud {
organization = "my-org"
workspaces {
name = "<TF_WORKSPACE>"
}
}
}
sed
在调用terraform init
.
有没有办法通过 CLI 做到这一点?我在这里错过了什么吗?