首页 > 解决方案 > 如何最好地说明 helm 图表中需要一个值?

问题描述

我现在正在这样做:

value: {{ required "A valid .Values.foo entry required!" .Values.foo }}

但是在我看来,为模板中的所有必需值提供相同的信息是很麻烦的并且会使模板混乱。

有没有更好的方法可以在模板之外定义它 \ 或者在模板本身中定义它的更简洁的方法?

标签: kubernetes-helm

解决方案


您可以通过利用将无法通过所需检查range的事实来做某事。null因此,在您的 values.yaml 中,您可以将这一部分用于所需的环境变量:

reqEnv:
 - name: "VAR1"
   value: null
 - name: "VAR2"
   value: null

然后在部署的 env 部分中,您将拥有:

{{- range .Values.reqEnv }}
          {{ .name }}: {{ required "A value must be entered for all reqEnv entries" .value }}
{{- end }}

然后用户会得到一个错误,除非他们reqEnv在他们的值文件中设置该部分的所有必需值或作为参数。不幸的是,这样做你失去的是缺少哪个 var 的细节。这可能就是为什么官方 helm 图表似乎更喜欢以 required您已经使用的方式使用。


推荐阅读