测试values.yaml中定义的helm元素是否存在

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

我是 helm 新手,目前遇到一种情况,我需要测试 values.yaml 中定义的 2 个参数是否存在,如果存在,则使用 Sample.yaml 中相同的值。

注意 - 这肯定会出现其中一个。

例如:

我正在测试这两个值:

1 - {{ .Values.probes.xyz.readiness.initialDelaySeconds }}
2 - {{ .Values.readiness.xyz.initialDelaySeconds }}

在sample.yaml中,我必须根据存在来实现上述参数之一:

initialDelaySeconds: <one of the above values needs to be implemented based on the existence>

我知道这是一个简单的

if else
条件,但我无法实施。 任何帮助将不胜感激。

kubernetes-helm
2个回答
1
投票

对于您想要使用某个值(如果已设置)和其他值(如果未设置)的逻辑,Helm

default
函数通常是一个很好的匹配。

{{- $v1 := .Values.probes.xyz.readiness.initialDelaySeconds }}
{{- $v2 := .Values.readiness.xyz.initialDelaySeconds }}
initialDelaySeconds: {{ $v1 | default $v2 }}

如果您有多个这样的设置,您还可以执行诸如

merge
两个值项字典一起操作之类的操作。

{{- $readiness := merge dict .Values.probes.xyz.readiness .Values.readiness.xyz }}
initialDelaySeconds: {{ $readiness.initialDelaySeconds }}

0
投票
{{- if .Values.probes.xyz.readiness.initialDelaySeconds }}
initialDelaySeconds: {{ .Values.probes.xyz.readiness.initialDelaySeconds }}
{{ else if .Values.readiness.xyz.initialDelaySeconds }}
initialDelaySeconds: {{ .Values.readiness.xyz.initialDelaySeconds }}
{{- end }}

舵流控制

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