如何根据values.yaml中的输入失败helm release

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

我正在使用helm install命令安装一个头盔图。我有values.yaml,它从用户那里获得一些输入。 values.yaml中的一个键是action,它只能取三个预定义值(比如action1,action2和action3)作为输入。除此之外的任何其他值均无效。

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

例如:如果用户已经给出action: action4,这是无效的,并且释放应该失败,因为.Values.action只能是action1,action2或action3。

我如何能够实现这个用例以及考虑到helm结构应该最好处理这个验证的文件?

kubernetes kubernetes-helm
2个回答
3
投票

我能够通过以下更改来实现用例。在_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' " }}

1
投票

Helm使用Go模板,因此您可以添加一些自定义技巧。阅读以下资源:https://github.com/helm/helm/blob/master/docs/charts_tips_and_tricks.md。您可以检查一些已经提供的功能是否足够好,例如required

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