0

我正在通过 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 做到这一点?我在这里错过了什么吗?

4

0 回答 0