我正在尝试使用 Helm 命名模板,我计划将其包含在多个不同的上下文中,并且该模板具有许多对于所有上下文都相同的值。
每当我将上下文传递给命名模板template或include调用命名模板时,对的引用都.Values不起作用,这是可以理解的,因为我显式设置了较低的上下文。
在的 Helm 文档with中,它声称有一个“全局”变量$,允许引用全局.Values,例如, {{ $.Values... }}。这不起作用(下面的示例显示了错误)。
我还尝试定义变量(使用:=)并“封闭”该变量定义中的包含内容(通过缩进 - 我不知道这是否重要)以使该变量在命名模板中可用,但这也不起作用。
我还尝试将它们放入“全局变量”中,如此处所述,这更像是一个子图,但这也不起作用。
因此,我已经没有 Helm 技巧来完成这项工作,并且遗憾的是必须多次重新定义这些相同的变量 - 这使得整个命名模板解决方案有点不那么优雅 - 或者只是回到大部分重复部分 -参数化模板。
我缺少什么?
$ helm version
Client: &version.Version{SemVer:"v2.9+unreleased", GitCommit:"", GitTreeState:"clean"}
Run Code Online (Sandbox Code Playgroud)
值.yaml:
---
commonSetting1: "common1"
commonSetting2: "common2"
context1:
setting1: "c1s1"
setting2: "c1s2"
context2:
setting1: "c2s1"
setting2: "c2s2"
Run Code Online (Sandbox Code Playgroud)
部署.yaml:
---
{{- define "myNamedTemplate" }}
- name: {{ .setting1 }}
image: …Run Code Online (Sandbox Code Playgroud)