私はn回拡大したいk8sリソース用の汎用テンプレートを持っています(好奇心が強い場合は、mongoクラスタのn個のメンバーを作成でき、statefulsetリソースを使用して各メンバーに安定したネットワーク名)。kubernetes-helmテンプレートで変数を使用できますか?
明らかに、ループを通過するたびに異なる値が必要です。私はSprig "until"関数によって生成された一連のインデックスをループしています。しかし、ループの$インデックスは "。"に設定されていません。名前空間。だから私の_helpers.tplファイル内の私の定義されたテンプレート内の現在の反復を参照することができません。ここ
は(私はそれのほとんどを略しています)/フルK8SリソースYAMLワットテンプレートの例である:{{- define "mytest" -}}
---
apiVersion: apps/v1beta1
kind: StatefulSet
abbreviated...
containers:
- name: mongod-$index
abbreviated...
{{- end -}}
、発信者:
{{ range $index, $e := until .Values.mongod_count }}
{{include "mytest" .}}
{{ end}}
私はちょうど得る:未定義の変数「$インデックス
{{ $foo := "somevalue" }}
{{ define "my_extra_labels" }} bla {{ .Values.test }}_{{$foo}}{{end}}
{{ template "mytest" . }}
:「
は、私は私の(呼び出し側)テンプレートでこのように、あまりにもブロックして試してみました
そして、この私の_helpers.tpl
{{/* Test stuff */}}
{{- define "mytest" -}}
hello: world_how_are_{{ block "my_extra_labels" . }}{{ end }}
{{- end -}}
に変数$ fooが "定義" は、体内で定義されていません。
このテンプレートスコープは、現時点でのシナリオを解決するためにどのように使用するのかがわからないほど制限があると感じています。
"。"変数に変数を追加する方法はありますか?名前空間?もしそうなら(私の指を横切る)、何らかの方法で名前空間をマージする方法があるので、.Valuesと.Chart変数にはまだアクセスできますか?