如何根据 values.yaml 中的输入使 helm 发布失败

Sau*_*bh 6 kubernetes kubernetes-helm

我正在使用helm install命令安装舵图。我有values.yaml它需要用户的一些输入。其中的一个键values.yamlaction,它只能采用三个预定义的值(比如action1action2action3)作为输入。除此以外的任何其他值均无效。

当用户向操作字段提供值values.yaml并触发helm install命令时,我需要检查的第一件事是操作键是否具有有效值。如果操作值无效,我希望发布失败并显示正确的错误消息。

例如:如果用户给出了action: action4,则这是无效的并且发布应该失败,因为.Values.action只能是action1action2action3

考虑到 helm 结构,我如何实现这个用例以及哪个文件最适合处理这个验证?

Sau*_*bh 11

我能够通过以下更改实现用例。在 _helpers.tpl 中添加以下代码

{{- define "actionValidate" -}}
  {{ $action := .Values.actions }}
  {{- if or (eq $action "action1") (eq $action "action2") (eq $action "action3") -}}
    true
  {{- end -}}
{{- end -}}
Run Code Online (Sandbox Code Playgroud)

从 .tpl 文件调用此函数,如下所示:-

{{ include "actionValidate" .  | required "Action value is incorrect. The valid values are 'action1', 'action2', 'action3' " }}
Run Code Online (Sandbox Code Playgroud)