はじめに
HCP Terraform の Workspace にはタグを設定できますが、従来はシンプルな文字列だけでした。
しかし、いつの間にか Workspace に key-value 形式のタグが設定できるようになっていました。
Workspace の key-value 形式でのタグ付けについて調べてみると、下記のブログで案内されていました。
ドキュメントを辿ると、予約済みのタグキーも定義できるようです。
いくつか調査したメモを記載します。
予約済みのタグキーの定義
Organization 設定に Tags
という項目が出現していました。
試しに Reserved Key に env
というタグを定義してみました。
この状態で Workspace のタグ設定を開くと、下記のように key の候補として追加したタグが表示されました。
また、Workspace の新規作成時にも候補が表示されました。
UI 上から Workspace を作成、更新する際に必要なタグを設定し忘れないようにする際に有効そうです。
2025/02/26 時点では beta 版の機能である旨が記載されているので、使用する際は最新のドキュメントを確認してください
Workspace に key-value 形式のタグ付けをする方法
2025/02/26 現在は UI 操作と API からの操作がサポートされているようです。
API は下記の Add/update tag-bindings on a workspace
を使用することになります。
terraform での設定について、2025/02/26 現在の最新の tfe provider v0.64.0 では未対応ですが、下記 PR で対応が進んでいるように見えます。
現在シンプルな文字列でのタグ設定に使用できる tag_names
の指定は非推奨になるかもしれませんね。
terraform block の cloud block で key-value 形式のタグ指定で接続する方法
に記載されているように、terraform 1.10 以降を使用すると key-value 形式のタグ指定で接続できます。
terraform {
cloud {
organization = "example_corp"
workspaces {
tags = {
layer = "app"
}
}
}
}
Project へのタグ付け
ブログ記事の案内に記載されている通り、Workspace だけでなく Project にもタグ付けできることを確認しました。
こちらも予約済みのタグキーを候補として出してくれますね。
2025/02/26 時点では beta 版の機能である旨が記載されているので、使用する際は最新のドキュメントを確認してください
https://developer.hashicorp.com/terraform/cloud-docs/projects/manage#define-project-tags
まとめ
HCP Terraform Workspace や Project に追加された key-value 形式のタグ機能について紹介しました。
主なポイントは以下の通りです:
- HCP Terraform Workspace と Project で key-value 形式のタグが使用できるようになりました(Project のタグ定義は、2025/02/26 時点ではベータ機能)
- Organization 設定から予約済みのタグキーを定義でき、Workspace 作成・編集時に入力候補として表示されます(2025/02/26 時点ではベータ機能)
- key-value 形式のタグは、現在は UI 操作と API 経由での設定が可能ですが、tfe provider での対応は進行中です
- terraform 1.10 以降では、terraform block の cloud block で key-value 形式のタグを指定して Workspace に接続できます
この機能により、Workspace の管理がより柔軟になり、組織的なタグ付け規則の実装や環境の識別がしやすくなります。
ベータ版の機能のため今後変更される可能性もありますが、大規模な環境管理において有用な仕組みとなるでしょう。