当我在 hele 的模板文件中传递参数时,值文件中的数据丢失
data from values file lost when I pass parameter in template file in hele
这就是我将变量传递给模板文件的方式
{{ template "fluentd-config" (dict "replica" "bbcc" "pattern" "aabb" ) }}
这是模板文件
{{- define "fluentd-config" -}}
image: {{ .Values.fluentd.kinesis_image }}
myname: {{ .replica }}
pattern: {{ .pattern }}
{{- end -}}
当我 运行 它时,.Values.fluentd.kinesis_image
消失了。请让我知道如何解决它。谢谢
在 Go text/template
模板中,特殊变量 .
是模板的参数。还要记住,语法 .foo
表示在对象 .
中查找字段 foo
。所以在这种情况下,模板参数取代了 Helm 全局对象; .Values
尝试在您作为参数传递的字典中查找它。
一个解决方案是在调用站点也传递 .Values
(如果您需要任何其他 top-level Helm 对象,您还需要手动传递它们):
{{ template "fluentd-config" (dict "replica" "bbcc" "pattern" "aabb" "Values" .Values) }}
我使用的一个更复杂的模式是将列表作为模板参数传递,然后从中提取字段。您可以使用 Sprig list functions to construct and deconstruct the list. (You could do something similar with dict
来命名参数,这在语法上可能更简单。)
{{- define "fluentd-config" -}}
{{- $top := index . 0 -}}
{{- $params := index . 1 -}}
image: {{ $top.Values.fluentd.kinesis_image }}
myname: {{ $params.replica }}
pattern: {{ $params.pattern }}
{{- end -}}
{{- $params := dict "replica" "bbcc" "pattern" "aabb" -}}
{{ template "fluentd-config" (list . $params) }}
这就是我将变量传递给模板文件的方式
{{ template "fluentd-config" (dict "replica" "bbcc" "pattern" "aabb" ) }}
这是模板文件
{{- define "fluentd-config" -}}
image: {{ .Values.fluentd.kinesis_image }}
myname: {{ .replica }}
pattern: {{ .pattern }}
{{- end -}}
当我 运行 它时,.Values.fluentd.kinesis_image
消失了。请让我知道如何解决它。谢谢
在 Go text/template
模板中,特殊变量 .
是模板的参数。还要记住,语法 .foo
表示在对象 .
中查找字段 foo
。所以在这种情况下,模板参数取代了 Helm 全局对象; .Values
尝试在您作为参数传递的字典中查找它。
一个解决方案是在调用站点也传递 .Values
(如果您需要任何其他 top-level Helm 对象,您还需要手动传递它们):
{{ template "fluentd-config" (dict "replica" "bbcc" "pattern" "aabb" "Values" .Values) }}
我使用的一个更复杂的模式是将列表作为模板参数传递,然后从中提取字段。您可以使用 Sprig list functions to construct and deconstruct the list. (You could do something similar with dict
来命名参数,这在语法上可能更简单。)
{{- define "fluentd-config" -}}
{{- $top := index . 0 -}}
{{- $params := index . 1 -}}
image: {{ $top.Values.fluentd.kinesis_image }}
myname: {{ $params.replica }}
pattern: {{ $params.pattern }}
{{- end -}}
{{- $params := dict "replica" "bbcc" "pattern" "aabb" -}}
{{ template "fluentd-config" (list . $params) }}