【Helm】helmfile使ってみる

はじめに

Helmfileについてざっくり解説し、シンプルな例で実際に使ってみたいと思います。

Helmについては下記で解説しています。

【Helm入門】Helm使ってみる
はじめにこれからHelmを使ってみたい人に向けて、Helmとはどんなものなのかざっくり解説し、実際にローカルで動かしてイメージを掴んでみたいと思います。HelmとはHelmとは、Kubernetes用のパッケージマネージャーです。...

Helmfileとは

Helmfileとは、Helmチャートを宣言的にデプロイするツールです。

Helmfileを利用することで以下のようなことが可能になります。

  • チャート設定のバージョン管理
  • CI/CDの適用
  • 複数チャートの管理

Helmfileのインストール

Helmfileのインストールをします。

まずはhelmのプラグインであるhelm-diffをインストールします。

helm plugin install https://github.com/databus23/helm-diff

次にHelmfileをインストールします。

brew 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は以下の通りです。

releases:
  - name: prometheus
    namespace: default
    chart: stable/prometheus
    values:
      - ./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は下記の通りです。

bac:
  create: false
alertmanager:
  enabled: false

Helmfileの適用

用意したファイルは下記の通りです。

.
├── helmfile.yaml
└── values.yaml

上記のファイルがあるディレクトリで下記のコマンドを実行することで、Helmチャートのインストールが可能です。

helmfile apply

コマンドひとつでチャートがインストールされているのが確認できます。

❯ helm list
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
prometheus      default         1               2021-12-15 22:30:01.637083 +0900 JST    deployed        prometheus-11.12.1      2.20.1

❯ kubectl get service
NAME                            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
prometheus-kube-state-metrics   ClusterIP   10.97.10.43    <none>        8080/TCP   37s
prometheus-node-exporter        ClusterIP   None           <none>        9100/TCP   37s
prometheus-pushgateway          ClusterIP   10.100.98.3    <none>        9091/TCP   37s
prometheus-server               ClusterIP   10.98.240.24   <none>        80/TCP     37s

Helmfileで差分チェック

helmfileコマンドで差分も確認できるので試してみます。

まずはvalues.yamlを以下のように変更してみます。

bac:
  create: false

下記コマンドで差分が確認できます。

helmfile diff

Helmfileで削除

最後にHelmfileでインストールしたチャートを一括で削除します。

下記で削除できます。

helmfile delete

まとめ

  • HelmfileでHelmチャートを宣言的に管理できる

参考

タイトルとURLをコピーしました