我正在使用helm install
命令安装一个头盔图。我有values.yaml
,它从用户那里获得一些输入。 values.yaml
中的一个键是action,它只能取三个预定义值(比如action1,action2和action3)作为输入。除此之外的任何其他值均无效。
当用户在values.yaml
中提供值到action字段并触发helm install
命令时,我需要检查的第一件事是如果操作键是否具有有效值。如果操作值无效,我希望发布失败并显示正确的错误消息。
例如:如果用户已经给出action: action4
,这是无效的,并且释放应该失败,因为.Values.action
只能是action1,action2或action3。
我如何能够实现这个用例以及考虑到helm结构应该最好处理这个验证的文件?
我能够通过以下更改来实现用例。在_helpers.tpl中添加了以下代码
{{- define "actionValidate" -}}
{{ $action := .Values.actions }}
{{- if or (eq $action "action1") (eq $action "action2") (eq $action "action3") -}}
true
{{- end -}}
{{- end -}}
从.tpl文件中调用此函数,如下所示: -
{{ include "actionValidate" . | required "Action value is incorrect. The valid values are 'action1', 'action2', 'action3' " }}
Helm使用Go模板,因此您可以添加一些自定义技巧。阅读以下资源:https://github.com/helm/helm/blob/master/docs/charts_tips_and_tricks.md。您可以检查一些已经提供的功能是否足够好,例如required
。