go-tfeを使ってHCP Terraform内の利用していないWorkspaceを一括削除するツールを作ってみた
以前、HCP Terraform内の利用していないワークスペースを一括削除するスクリプトを作成しました。
HCP Terraform・Terraform Enterprise API用のGoクライアント go-tfe
を使って実装してみました。
作成したツール
ワークスペースを削除してみる
インストール及び、ビルドの方法等詳細は上記リポジトリのREADME.mdをご参照ください。
実際にツールを使ってワークスペースを削除してみます。
テスト用に空のワークスペースを用意しました。
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 個
コンソール上からも削除できたことを確認できました。
おわりに
HCP Terraform内の利用していないワークスペースを一括削除するツールについてでした。
Goで実装することでgo-tfe(HCP Terraform・Terraform Enterpriseのクライアント)
やCobra(CLIアプリケーション作成用のライブラリ)
等便利なライブラリを使えて、効率的に開発できました。
使いながらアップデートしていきたいと思います。