【问题标题】:helm - overwrite all values in a specific key in the values fileshelm - 覆盖值文件中特定键中的所有值
【发布时间】:2022-09-27 19:49:43
【问题描述】:

我有 2 个包含许多条目的值文件。我想使用 - \"helm template . -f values.yaml -f values-prod.yaml\' 覆盖特定键的所有条目

例如:

values.yaml

key:
  a: 1
  b: 2
  c: 3

key2:
  d: 4
  f: 5
values-prod.yaml

key:
 c: 33

我希望生成的 values.yaml 是:

key:
  c: 33

key2:
  d: 4
  f: 5

我知道我可以为我要删除的所有子键设置一个键的值为 null 并且会删除它,但我想知道是否有更好的方法。

    标签: kubernetes-helm


    【解决方案1】:

    那没有。如果您认为有可能希望在某些或许多环境中取消设置该值,最好的方法是不在图表的 values.yaml 文件中为其提供默认值。

    # values.yaml
    key:
      c: 3
    
    # values-dev.yaml
    key:
      a: 1
    
    # values-prod.yaml
    key:
      c: 33
    

    您可能知道 Helm default 模板函数和普通 if 条件,但您也可以在代码中提供这些默认值,一方面可以让您计算它们,但另一方面会使它们更难覆盖.

    # Use `key2.c` if it's set, but `key.c` otherwise
    data:
      c: {{ .Values.key2.c | default .Values.key.c | default "no c value" | quote }}
    

    (如果 values.yaml 文件是 Helm 图表中的文件,在 Chart.yaml 文件旁边,Helm 会自动将其包含在选项列表中的第一个位置,并且您不需要 helm install -f values.yaml 选项。)

    【讨论】:

      猜你喜欢
      • 2020-12-29
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多