【Helm】helmfile使ってみる

2021.12.15
2024.03.24
Kubernetes
HelmHelmfile

本ページはAmazonアフィリエイトのリンクを含みます。

はじめに

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

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

【Helm入門】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

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

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チャートを宣言的に管理できる

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee