go-tfeを使ってHCP Terraform内の利用していないWorkspaceを一括削除するツールを作ってみた

go-tfeを使ってHCP Terraform内の利用していないWorkspaceを一括削除するツールを作ってみた

2025.09.10

以前、HCP Terraform内の利用していないワークスペースを一括削除するスクリプトを作成しました。

https://dev.classmethod.jp/articles/hcp-terraform-delete-empty-workspaces/

HCP Terraform・Terraform Enterprise API用のGoクライアント go-tfeを使って実装してみました。

https://dev.classmethod.jp/articles/go-tfe-hcp-tf-tutorial/

作成したツール

https://github.com/msato0731/hcptf-empty-ws-cleaner

ワークスペースを削除してみる

インストール及び、ビルドの方法等詳細は上記リポジトリのREADME.mdをご参照ください。

実際にツールを使ってワークスペースを削除してみます。

テスト用に空のワークスペースを用意しました。

sato-masaki-ws-delete-test___HCP_Terraform.png

DRY RUNで削除対象を確認します。

			
			# ビルドしたバイナリをパスの通ったディレクトリに移動して実行しています
hcptf-empty-ws-cleaner

		
			
			hcptf-empty-ws-cleaner
=== DRY RUNモード ===
削除対象のワークスペースを確認します(実際には削除されません)
実際に削除するには --force フラグを使用してください

プロジェクト情報を取得中...
プロジェクトID: prj-hogehoge
ワークスペース一覧を取得中...
削除対象のワークスペース:
  - delete-test-1 (ID: ws-hogehoge, リソース数: 0)
  - delete-test-2 (ID: ws-hogehoge, リソース数: 0)
  - delete-test-3 (ID: ws-hogehoge, リソース数: 0)
合計 3 個のワークスペースが削除対象です

=== DRY RUN完了 ===
実際に削除するには --force フラグを付けて実行してください

		

テスト用のワークスペースが削除対象になっていることを確認できました。

--forceオプションを付けて削除します。

			
			hcptf-empty-ws-cleaner --force

		
			
			警告: --forceフラグが指定されました。実際に削除を実行します。
プロジェクト情報を取得中...
プロジェクトID: prj-hoge
ワークスペース一覧を取得中...
削除対象のワークスペース:
  - delete-test-1 (ID: ws-hogehoge, リソース数: 0)
  - delete-test-2 (ID: ws-hogehoge, リソース数: 0)
  - delete-test-3 (ID: ws-hogehoge, リソース数: 0)
合計 3 個のワークスペースが削除対象です

警告: 削除されたワークスペースは復元できません
? 本当に削除しますか? Yes
ワークスペース削除を開始...
削除中: delete-test-1 ... 成功
削除中: delete-test-2 ... 成功
削除中: delete-test-3 ... 成功

=== 削除完了 ===
成功: 3
		

コンソール上からも削除できたことを確認できました。

sato-masaki-ws-delete-test___HCP_Terraform.png

おわりに

HCP Terraform内の利用していないワークスペースを一括削除するツールについてでした。

Goで実装することでgo-tfe(HCP Terraform・Terraform Enterpriseのクライアント)Cobra(CLIアプリケーション作成用のライブラリ)等便利なライブラリを使えて、効率的に開発できました。

使いながらアップデートしていきたいと思います。

Share this article

FacebookHatena blogX

Related articles