微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 yaml 管道传递的 Helm Concat 模板参数

如何解决从 yaml 管道传递的 Helm Concat 模板参数

我有几个 yaml 文件,我尝试对其进行概括。

我有util.tpl

{{- define "pod-test" -}}
{{- if eq .Values.appName.properties.name  "m1" }}
x: {{.Values.appName.properties.x }}
{{- end }}

我想让 appName 中的 Values.appName.properties.x 字符串动态化。

我从目标 YAML 调用此模板

{{- include "pod-test" . (list "app-name") | indent 2}}

但我找不到连接到类似内容方法

 {{- $arg1 := index . 0 }}
    {{.Values.{{ $arg1 }}.properties.x }}

这行不通,最好的方法是什么?

解决方法

不会在掌舵上工作。相反,您可以使用 index 函数。从此:

{{ .Values.{{ .app-name }}.properties.x }}

为此:

{{ (index .Values .app-name).properties.x }}

请记住,.Values[.app-name] 应该存在,否则它会抛出错误,因为它会尝试从 nil 对象访问属性。您可以做的是将其包含在检查属性是否存在的 if 块中。

{{ if has .Values .index }}
  {{ (index .Values .app-name).properties.x }}
{{ end }}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。