Terraform CloudでOrganizationデフォルトのExecution Modeを設定できるようになっていました
アップデート概要
Terraform CloudのWorkspaceには、Execution Modeという設定値があります。
これは、Terraformをどこで実行するかを指定するものです。
選択できるオプションは以下のとおりです。
Execution Mode | 概要 |
---|---|
Remote | Terraform Cloud上で実行 |
Local | Local PC上で実行 |
Agent | Terraform Agentをインストールしたサーバ上で実行 |
Settings - Workspaces - Terraform Cloud | Terraform | HashiCorp Developer
今回のアップデートでOrganizationのデフォルトのExecution Modeを設定できるようになりました。
WorksapceはOrganizationのデフォルトExecution Modeに従って、デフォルト値が設定されるようになります。
- Terraform Cloud now supports assigning agent pools at the organization level
- docs: add default execution mode & agent pools to orgs and workspaces by emlanctot · Pull Request #436 · hashicorp/terraform-docs-common
何が嬉しい
- Organizationデフォルトで設定することで、Workspaceごとに設定する手間がなくなる
Terraform CloudのExecution ModeのデフォルトはRemote
です。
例えばLocal
で使用するといったポリシーがある場合、コンソールからWorksapce作成後に変更する必要がありました。
Organizatinのデフォルト値を変更しておくことで、Workspaceはその値が使われるため運用の手間が減ります。
注意点
Worksapce側でOrganization Defaultを指定していると、OrganizationのDefaultが変更されたときに影響を受けます。
例えば、OrganizationのDefault Remote -> Localに変更したら、Organization Defaultを指定している全てのWorksapceのExecution ModeがLocalに変わります。
一括で変更したいときには、便利ですがミスは怖いですね。(ボタン1つで戻せますが)
When an organization owner updates the default execution mode, all workspaces configured to inherit this value will be affected.
Organizations - Terraform Cloud | Terraform | HashiCorp Developer
やってみた
デフォルトを変更して、Workspaceを作ってみる
まずはOrganizationのデフォルトExecution Modeを変更してみます。(Remote -> Local)
Worksapceを作成します。(test-default-execution-mode
)
currently set to local.
上記記述から、WorkspaceのExecution ModeがLocalで設定されたことが分かります。
デフォルト変更後の既存への影響
再びOrganizationのデフォルトExecution Modeを変更して、先程作成したWorksapce(test-default-execution-mode
)に影響があるのかみてみましょう。
Local -> Remoteに変更しました。
Worksapceを確認すると、Remoteに変更されていました。
Organization デフォルトを設定している場合、Organization デフォルトの Execution Modeが変わったタイミングでWorkspaceのExecution Modeも変わります。
設定変更は慎重に行ったほうが良さそうです。
アップデート以前に作成したWorkspaceのExecution Mode
アップデート以前(2023/9以前)に作成したWorksapceのExecution Modeがどうなっているのか、ふと気になったので確認してみました。
たまたま以前作成したRemote
とLocal
のWorkspaceがそれぞれありました。(1年前に作ったきり、放置してた。。)
結論、それぞれCustom: Remote
、Custom Local
で設定されていました。
OrganizationのデフォルトはRemoteのため、Remote
の方はOrganization Default
になっているかと思いましたが、予想は外れました。
Customeになっているため、デフォルト値を変更しても設定は反映されません。
デフォルトをいじっていたら、昔作ったリソースも意図せず変えちゃったみたいな事象は発生しなさそうです。
おわりに
デフォルト値を変更できるようになったため、Remote以外をデフォルトとして運用しているパターンでは嬉しいアップデートですね。
以上、AWS事業本部の佐藤(@chari7311)でした。