HelmfileはKubernetesクラスタのHelm releasesを管理するツールです。 helmfile.yaml
にデプロイしたいHelm chartを書いて helmfile sync
を実行するだけでインストールやアップグレードを冪等にやってくれるので便利です。
例えば、Kubernetes DashboardとHeapsterをクラスタに配置したい場合は以下のYAMLを書くだけでOKです。
releases: - name: kubernetes-dashboard namespace: kube-system chart: stable/kubernetes-dashboard - name: heapster namespace: kube-system chart: stable/heapster values: - rbac: create: true
設定値を変更したい場合はYAMLを変更して helmfile sync
を実行すると反映されます。
これまで、Helm chartに設定値を渡したい場合は設定値をkey=valueの形式で記述する必要がありました。Helmコマンドは設定値をYAMLで書けるのに、Helmfileではkey=valueのリストで書く必要がありました。例えばこんな感じです。
releases: - name: kubernetes-dashboard-proxy namespace: kube-system chart: int128.github.io/kubernetes-dashboard-proxy set: - name: ingress.enabled value: true - name: ingress.hosts[0] value: {{ requiredEnv "KUBE_DASHBOARD_DOMAIN" }}
Helmfile 0.16.0から設定値をインラインで書けるようになりました。これによりYAMLの可読性が大きく改善しました。
releases: - name: kubernetes-dashboard-proxy namespace: kube-system chart: int128.github.io/kubernetes-dashboard-proxy values: - ingress: enabled: true hosts: - {{ requiredEnv "KUBE_DASHBOARD_DOMAIN" }}
もしHelmコマンドとvalues.yamlファイルで構成管理を行っている場合、それらを1つの helmfile.yaml
にまとめると管理しやすくなります。ぜひ試してみてください。
See also
- GitHub - roboll/helmfile: Deploy Kubernetes Helm Charts
- Inline values support by int128 · Pull Request #139 · roboll/helmfile · GitHub
- Read dynamic type values from YAML in Golang - @int128
- 作者: Kelsey Hightower,Brendan Burns,Joe Beda,松浦隼人
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/03/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る