web-dev-qa-db-ja.com

Helmに複数のvalues.yamlファイルを使用できますか

Helmチャートに複数のvalues.yamlファイルを含めることはできますか?

mychart/templates/internalValues.yamlmychart/templates/customSettings.yamlなどのようなものですか?

values.yamlファイルのプロパティにアクセスするには、{{ .Values.property1 }}を使用します。これらのカスタムvalues.yamlファイルのプロパティをどのように参照しますか?

14
James Isaac

Helmはデフォルトで、チャートのルートディレクトリにあるvalues.yamlファイルのみを使用します。

インストール時に追加の値ファイルをロードするように要求できます。たとえば、異なる環境の異なるデータベースを指す設定がある場合:

helm install . -f values.production.yaml

追加の設定をファイルとしてバンドルし、 Helmにバンドルされたファイルの読み取りを要求する によって、同様の効果を得ることができます。 Helmには Yamlテンプレート関数から文書化されていない が用意されており、ファイルを解析できるため、原則として次のようなことができます。

{{- $v := $.Files.Get "more-values.yaml" | fromYaml }}
foo: {{ $v.bar }}
17
David Maze

はい、Helmで複数の値ファイルを持つことができます。 --valuesフラグを使用するだけです(または-f)。

例:

helm install ./path --values ./internalValues.yaml --values ./customSettings.yaml

--setを使用して単一の値を渡すこともできます。

例:

helm install ./path --set username=ADMIN --set password=${PASSWORD}

公式ドキュメントから :

インストール中に構成データを渡す方法は2つあります。

--values(または-f):オーバーライドでYAMLファイルを指定します。これは複数回指定でき、右端のファイルが優先されます

--set(およびそのバリアント--set-stringおよび--set-file):コマンドラインでオーバーライドを指定します。

両方を使用する場合、-set値はより高い優先度で--valuesにマージされます。 --setで指定されたオーバーライドは、configmapに保持されます。 --setされた値は、helm get valuesを使用して特定のリリースで表示できます。 --setされた値は、-reset-valuesを指定してhelm upgradeを実行することによりクリアできます。

12
Ethan Strider