我有一个生成部署的 helm 模板 我需要为图表作为参数获取的 3 个值的每个组合单独部署
helm upgrade -i release_name folder --set a=x --set b=y --set c=z
所以我需要发布名称作为基于 a,b,c {.Values.a},{.Values.b}{.Values.c}
有没有办法做这样的事情? 到目前为止,我发现的最好方法是生成发布名称并传递参数的外部 python 脚本。
我知道我可以反过来拆分
$parts := split "." .Release.Name
$parts._0
并将其用作参数,但我真的很想避免它。
答案 0 :(得分:1)
您可以使用 Helm Named Template 定义一个函数,该函数为所需值生成版本名称。然后,您可以在资源 YAML 中使用该模板函数。
例如,让我们在 _helpers.tpl
文件中定义一个函数。
{{- define "release.name" -}}
{{- list .Values.a .Values.b .Values.c | join "-" }}
{{- end }}
现在,使用此模板函数作为资源 YAML 文件中的发布名称。例如,
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: {{ include "release.name" . }}
labels:
app: {{ .Release.Name }}
chart: ni-filecleaner
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}