LoginSignup
0
0

More than 3 years have passed since last update.

Helm chart repositoryの見方&使い方

Posted at

はじめに

kubenetes を使う状況において、デプロイには Helm を使うことが多いのではないでしょうか。
また、公式のHelm Chartにはお世話になる方も多いのではないでしょうか。

ただ、この Chart の使い方、初見では分かり辛くないですか?
Helm 初心者だった私は見方が分からず色々と遠回りをしました。。。
ということで、私の理解した repository (主に Configuration) の見方の知見を記載します。

書くこと

Github の repository の個人的見方

書かないこと

Helm のコマンドなどの使い方

repository の見方

nginx-ingressをサンプルに記載します。

Configuration とは

Helm に与える設定値のことが記載されています(が、与え方とか記載があったりなかったりなんですよね。。。)。
なので、どのように与えるかを記載します。
何がどのような設定なのかは各 Chart の Description をご参照のこと。

引数として値を与える方法

nginx-ingress には以下記載がありました。

helm install stable/nginx-ingress --name my-release \
--set controller.metrics.enabled=true

上記のように、 --set key=valueとして与える方法があります。
ただ、個人的にはどのように値を与えたか把握できるように、次のファイルから値を与える方法が良いと思います。

ファイルから値を与える方法

値を yaml ファイルで与える方法があります。
サンプルとなる yaml ファイルは、values.yamlにあります。
このvalues.yamlをベースに、対応するkeyに対して値を設定し、values.yamlを作り、以下コマンドで与えることができます。

helm install stable/nginx-ingress --name my-release \
-f values.yaml

記載されている Configuration に関して

templates との関係

Helm を作ったことのある方はご承知だと思いますが。。。
values.yamlは、templates内のファイルで使われる形になります。

例えば、

controller:
  name: controller

であれば、以下ファイルの {{ .Values.controller.name }} で参照されています。
https://github.com/helm/charts/blob/master/stable/nginx-ingress/templates/controller-deployment.yaml#L66

未定義部分

Configuration に記載はないが、templates 内のファイルでは使用するように定義されていることもあります。
なので 「該当する設定 key がないなー」と思われた方は templates 内の該当しそうなファイルを確認することをお勧めします。

参考

https://helm.sh/docs/topics/chart_repository/
https://github.com/helm/charts/tree/master/stable/nginx-ingress

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0