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でそれを行う方法はありますか? ここで何か不足していますか?