私は私たちのサービスのためのヘルムチャートを書き始めています。kubernetesのhelmのサブチャートのテンプレートに定義されている値を参照する方法は?
私は彼らがどのように動作するか、それらと何をするのかわからない2つのことがあります。
最初に:リリース名。チャートをインストールするときに、ヘルムがリリースを作成するために使用する名前を指定します。このリリース名は、チャートのインストールを適切に分離するためにチャート内で参照されることがよくあります。例えば、Postgresのチャートが含まれています
metadata:
name: {{ template "postgresql.fullname" . }}
それはkubernetesで最後に "myrelease-PostgreSQLの" ように見えるん:そのサービスのために使用されている
{{- define "postgresql.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
。 良いリリース名は何ですか?これには一般的に何が使用されていますか?バージョン?または、ubuntuのリリースのようなコードネーム?
第2:参照値。
マイ・チャートでは、サブグラフとしてpostgresqlを使用しています。私は、postgresqlサービスの名前の値が作成される方法を複製したくありません(上記のsnippedを参照)。
サブチャートまたはそのテンプレートのサービス名を参照できる方法はありますか?{{template "postgresql.fullname"}。 }}親のグラフに?私はそれをデータベースホストとしてサービスに渡す必要があります(これはすべてをハードコードすれば動作しますが、それはこれの意味ではありません)。
は、私が試した: env:
- name: DB_HOST
value: {{ template "mychart.postgresql.fullname" . }}
しかし、エラーメッセージにそのリードは:
template "mychart.postgresql.fullname" not defined
私はodooチャートのように、同様のことをやってチャートの例を見てきました。しかしここでは、postgresqlホスト名の作成方法のロジックがコピーされ、テンプレート内の独自の定義が作成されます。
サブチャートの名前にアクセスする方法はありますか?または値やテンプレートによって定義されますか?
ありがとうございます!いくつかの掘削後
更新:テンプレートはチャートの間で共有されているSubcharts and Globalsによる 。
それでは、私にできることはこれです:
_helpers.tplの私のチャートでは、私は(上書き)Postgresのブロックを追加します。
{{- define "postgresql.fullname" -}}
{{- $name := .Values.global.name -}}
{{- printf "%s-%s" $name "postgresql" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
サブチャートがあるときにこの値が使用されています配備された。サブチャートでは異なるので、ここではすべての値やチャート名を参照することはできません。そのため、グローバル値を使用しました。
このように私はサブチャートで作成されたサービスの価値を知っています。
ない、これは、これを行うための最善の方法である場合を確認します - ここで説明するようにあなたが親グラフの値で値サブチャートのを上書きすることができます/
返信いただきありがとうございます!しかし、これは何が起こっているかではありません。サブチャートは、kubeappsのpostgresqlチャートです。 services-nameはvalues.yamlによって構成されません。チャート名とリリース名に基づいて作成されます。だから私は、その結果のサービス名を私のチャートで参照するようにしたい。コミュニケーションが必要なので、チャートをまとめて並べ替えます。私は部分的にサービス名を指定することができますが、長さが制限されているので、結果として得られるサービス名を読みたいだけです。私は、postgresのチャートは、その仕方の一種であると仮定します - それは間違っている可能性があります:/ – wemu