【Helm】helmfile使ってみる
はじめに
Helmfileについてざっくり解説し、シンプルな例で実際に使ってみたいと思います。
Helmについては下記で解説しています。
【Helm入門】Helm使ってみる
はじめに これからHelmを使ってみたい人に向けて、**Helmとはどんなものなのか**ざっくり
Helmfileとは
Helmfileとは、Helmチャートを宣言的にデプロイするツールです。
Helmfileを利用することで以下のようなことが可能になります。
- チャート設定のバージョン管理
- CI/CDの適用
- 複数チャートの管理
Helmfileのインストール
Helmfileのインストールをします。
まずはhelmのプラグインであるhelm-diff
をインストールします。
1helm plugin install https://github.com/databus23/helm-diff
次にHelmfileをインストールします。
1brew install helmfile
Helmfileの作成
helmfile.yaml
を作成します。
helmfile.yaml
では、デプロイするチャートやnamespace、チャート名、values.yamlファイルなどが定義できます。
今回使用するチャートは下記のPrometheusです。
helm-charts/charts/prometheus at main · prometheus-community/helm-charts
Prometheus community Helm charts. Contribute to prometheus-community/helm-charts development by creating an account on GitHub.
helmfile.yaml
は以下の通りです。
1releases:
2 - name: prometheus
3 namespace: default
4 chart: stable/prometheus
5 values:
6 - ./values.yaml
values.yamlファイル
values.yaml
を作成します。設定できる値は下記から確認できます。
charts/stable/prometheus at master · helm/charts
⚠️(OBSOLETE) Curated applications for Kubernetes. Contribute to helm/charts development by creating an account on GitHub.
values.yaml
は下記の通りです。
1bac:
2 create: false
3alertmanager:
4 enabled: false
Helmfileの適用
用意したファイルは下記の通りです。
1.
2├── helmfile.yaml
3└── values.yaml
上記のファイルがあるディレクトリで下記のコマンドを実行することで、Helmチャートのインストールが可能です。
1helmfile apply
コマンドひとつでチャートがインストールされているのが確認できます。
1❯ helm list
2NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
3prometheus default 1 2021-12-15 22:30:01.637083 +0900 JST deployed prometheus-11.12.1 2.20.1
4
5❯ kubectl get service
6NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
7prometheus-kube-state-metrics ClusterIP 10.97.10.43 <none> 8080/TCP 37s
8prometheus-node-exporter ClusterIP None <none> 9100/TCP 37s
9prometheus-pushgateway ClusterIP 10.100.98.3 <none> 9091/TCP 37s
10prometheus-server ClusterIP 10.98.240.24 <none> 80/TCP 37s
Helmfileで差分チェック
helmfile
コマンドで差分も確認できるので試してみます。
まずはvalues.yaml
を以下のように変更してみます。
1bac:
2 create: false
下記コマンドで差分が確認できます。
1helmfile diff
Helmfileで削除
最後にHelmfileでインストールしたチャートを一括で削除します。
下記で削除できます。
1helmfile delete
まとめ
- HelmfileでHelmチャートを宣言的に管理できる