当前位置: 首页 > 知识库问答 >
问题:

舵图模板:如果值不存在,默认为真

漆雕稳
2023-03-14

我试图声明,如果变量为 true 或不存在(即,var 的默认值为 true),则 helm 模板中的代码块应该存在。以下作品:

    {{- if or .Values.livenessProbe (not (hasKey .Values "livenessProbe")) }}
    ...
    {{- end }}

这看起来相当复杂,有什么更简单的吗?我尝试了几种方法使用default函数,但它们都导致忽略该值(无论是否存在,true或false,块总是被渲染):

    {{- if (default true .Values.livenessProbe) }}
    ...
    {{- end }}

共有3个答案

贺雪松
2023-03-14

在双引号中使用 false 值,因此 helm 中的默认值会将其视为字符串而不是 null。以下设置对我有用。

valuekey: "false"
和谦
2023-03-14

我得到的更简单的解决方案是这样做

list nil true | has .Values.value
漆雕唯
2023-03-14

请参见https://helm . sh/docs/chart _ template _ guide/function _ list/# default,了解为什么< code>default不能按预期工作:布尔值false被视为“空”,因此当value为false时,默认返回默认值,即忽略实际值!

我还发现了 https://github.com/helm/helm/issues/3308,这表明很多人被这个绊倒了。看看这个问题中的其他解决方案,我觉得我的(作为问题的一部分发布)实际上是最简单的,相当不幸。模式是这样的:

{{- if or .Values.myVar (not (hasKey .Values "myVar")) }}
...
{{- end }}

它基本上说“如果值为真,则呈现块,或者如果值为假,因为键不存在”。

 类似资料:
  • 问题内容: 我想将图像设置为背景,但是图像名称可能是或。 如果默认背景不存在,是否有任何非JavaScript方法可创建后备图像。 问题答案: 如果不涉及透明度并且它们占据了所有可用空间或具有相同的大小,则可以使用多个背景: 如果第一个未退出,则将显示第二个。

  • 我正在为一个自定义应用程序编写一个指导图,我们需要在我的组织内的不同环境中使用该应用程序。这个应用程序在Kubernetes中有一些部分(这就是为什么我要编写Helm图表),在K8S之外有一些部分,更具体地说,是我用Terraform编写的AWS中的各种资源。

  • 我正在尝试使用mongoengine(0.6.0)驱动程序将mongo(V4.0.3)db与django(V1.11)连接起来。它显示连接不存在。 回溯(最近调用的最后一次): 文件“manage.py”第22行,execute_from_command_line(sys.argv)文件“/usr/local/lib/python2.7/dist-packages/django/core/mana

  • 问题内容: 我有一个模板绑定,使用Angular的日期过滤器显示名为“ date”的模型属性,该属性是一个日期。 到目前为止,一切都很好。但是,目前,如果日期字段中没有值,则绑定不显示任何内容。但是,如果没有日期,我希望显示字符串“ Various”。 我可以使用二进制运算符获取基本逻辑: 但是我无法使其与日期过滤器一起使用: 如何在日期过滤器旁边使用二元运算符? 问题答案: 原来我要做的就是将表

  • 根据enable_if结构的定义: 我想知道怎么做 特别是: 在

  • 理想情况下,输入文件应为以下架构: 理想输出: 理想情况下,Key1、key2、key3 应该在那里,但在某些情况下,其中一个或全部可能不存在。示例场景: 输出: 因此,即使该字段不存在,也不要忽略这些字段,只需将其替换为空字符串。通常Jolt转换会忽略不存在的字段。 请帮我解决这个问题。