問題

PCのHDD容量が減ってきたので調査したら、terraformのworkspaceが10個くらいあり、それぞれのworkspaceの .terraformディレクトリが、20GBくらい容量を食っていたという状況

1
2
3
4
5
6
7
8
9
$ ncdu
-----
23.9 GiB [######################] /workspace1/.terraform/
23.0 GiB [##################### ] /workspace2/.terraform/
21.7 GiB [################### ] /workspace3/.terraform/
20.5 GiB [################## ] /workspace4/.terraform/
20.3 GiB [################## ] /workspace5/.terraform/

:

さらに掘っていくと、 .terraformディレクトリ配下にある、aws providerのディレクトリがこうなっていた

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
workspace/
└── .terraform/providers/
└── registry.opentofu.org
└── hashicorp
├── aws
│ ├── 5.100.0 # 1個あたり700MBくらいある
│ ├── 5.81.0
│ ├── 5.82.2
│ ├── 5.83.1
│ ├── 5.84.0
│ ├── 5.86.1
│ ├── 5.89.0
│ ├── 5.92.0
│ ├── 5.94.1
│ ├── 5.95.0
│ ├── 5.96.0
│ ├── 6.10.0
│ └── 6.11.0
└── tls
├── 4.0.6
└── 4.1.0

過去に使っていたバージョンのaws providerが、どんどん溜まっていっている状態

さらに、これが3環境(Dev,Stg,Prod)×workspaceの数だけあり、そら重い、という事で削除したい

調べた

調べた感じでは、これを terraformtofuコマンドで削除する公式な方法が無いっぽい(GPT談)

対処法

これが一番シンプルだと思った

1
2
3
4
5
// .terraformディレクトリを削除
$ rm -rf .terraform/

// もう一度initし直す
$ terraform init

これで、不要なバージョンのproviderが削除され、必要なバージョンだけが再度ダウンロードされます