Helm Subcharts 值与命名模板获取 null

问题描述 投票:0回答:1

使用helm版本3.7.2。

我尝试了很多方法来实现命名模板来覆盖很多情况,例如: 我有一个包含其他子图的伞图结构。我希望能够在子图 #1 中定义命名模板并将其包含在子图 #2 中的其他命名模板中。

我尝试了很多方法来实现这一点,我发现效果很好的方法是:(简单的例子)

我尝试了很多方法来实现这一点,我发现效果很好的方法是:(简单的例子)

在子图 #1 中:

{{- define "subchart1.ports" -}} 5678 {{- end -}}

在子图 #2 中:

... port: {{ include "subchart1.ports" .Subcharts.subchart1Name }} ...

并且成功了!我读过关键字“.Subcharts”可以公开子图表之间的范围...我知道在父图表和子图表之间还有另一种方法,但我正在谈论在子图表之间实现这一点。

问题是当我做同样的事情但只提到一个值时..案例:

在子图 #1 中:

{{- define "subchart1.ports" -}} {{ .Values.service.port }} {{- end -}}


在子图 #2 中:

... port: {{ include "subchart1.ports" .Subcharts.subchart1Name }} ...


在任何其他“常规”命名模板中,假设定义并包含在同一图表中,我没有这个问题,并且我得到了值的内容。我已经确保设置了这个值,我什至通过 helm template 命令看到它...但是在我描述的情况下,使用 .Subchart 并在子图表之间共享它我没有得到该值的内容...我得到 null(当我通过管道将其传输到 Yaml 时..)。

如果有更好的方法来实现它,我会很高兴听到或对我的案例有任何见解。

谢谢!

kubernetes-helm
1个回答
0
投票
经过深入检查,据我所知并在源代码中看到,使用 .Subcharts 的能力是在伞中的子图表之间,而不是在子图表到包含 .Subcharts 的根/主/全局图表之间伞。它还与 tpl 文件和模板相关,只要不在子图表之间,就无法从模板指向更高的级别。

© www.soinside.com 2019 - 2024. All rights reserved.