Helmfileは、[[Helm]]のGemfileのようなもの。
[HelmfileでKubernetesマニフェストやKustomization、Helm Chartなどで構成されるアプリケーションを効率的に管理する | Think IT(シンクイット)](https://thinkit.co.jp/article/18009)
#### Install
```shell-session
$ sudo curl -s -L -o /usr/local/bin/helmfile https://github.com/roboll/helmfile/releases/download/v0.139.9/helmfile_linux_amd64
$ sudo chmod +x /usr/local/bin/helmfile
```
#### helm-diff
```shell-session
$ helmfile apply
Adding repo litmuschaos https://litmuschaos.github.io/litmus-helm/
"litmuschaos" has been added to your repositories
Comparing release=chaos, chart=litmuschaos/litmus
in ./helmfile.yaml: command "/usr/sbin/helm" exited with non-zero status:
PATH:
/usr/sbin/helm
ARGS:
0: helm (4 bytes)
1: diff (4 bytes)
2: upgrade (7 bytes)
3: --reset-values (14 bytes)
4: --allow-unreleased (18 bytes)
5: chaos (5 bytes)
6: litmuschaos/litmus (18 bytes)
7: --version (9 bytes)
8: ~1.13.6 (7 bytes)
9: --namespace (11 bytes)
10: litmus (6 bytes)
11: --detailed-exitcode (19 bytes)
ERROR:
exit status 1
```
[GitHub - roboll/helmfile: Deploy Kubernetes Helm Charts](https://github.com/roboll/helmfile#apply) によると、validationのために、helm-diffプラグインが必要とのこと。
```shell-session
helm plugin install https://github.com/databus23/helm-diff
```
#litmus のインストール例はこちら。
```yaml
repositories:
- name: litmuschaos
url: https://litmuschaos.github.io/litmus-helm/
releases:
- name: chaos
namespace: litmus
chart: litmuschaos/litmus
version: ~1.15.0
```