【问题标题】:Nested default value in a helm chart头盔图中的嵌套默认值
【发布时间】:2021-07-22 19:23:30
【问题描述】:

我在掌舵图中有以下集团:

value: {{.Values.service.container.SubBloc.myKey |  default "mydefault"  }}

如果在我的值文件中我定义了一个 SubBloc 但不是我的“mykey”,则默认值会很好,如下所示:

service:
  container:
    SubBloc: 
      Key2: Value2
    resources:
      ...
    

但是,如果我根本没有定义 SubBloc,就像这里:

service:
  container:
    resources:
      ...

那么 helm chart 是不可解析的。

有没有办法解析“默认嵌套值”?

【问题讨论】:

    标签: kubernetes-helm


    【解决方案1】:

    在代码级别,如果a 是字典(即使它不包含b),则字段查找a.b 有效,但如果a 为nil 则无效。我发现在这里有用的一种技术是设置一个应该包含父字典的变量,但在父字典上使用default 以确保它永远不会为零:

    {{- $subBloc := .Values.service.container.SubBloc | default dict }}
    value: {{ $subBloc.myKey |  default "mydefault" }}
    

    如果上层也可能不存在,则需要对值树的每一层重复此技术。通常可以安全地假设图表的values.yaml 中的任何内容都存在(尽管可以将事物显式覆盖为 nil)。将图表设计为具有较浅的值树以简化此设置会很有帮助。

    【讨论】:

      猜你喜欢
      • 2013-10-07
      • 2020-12-07
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      • 2014-08-12
      • 2017-12-09
      • 1970-01-01
      • 2018-02-20
      相关资源
      最近更新 更多