Helm Chart合并字典:仅保留静态字典包含的键
Helm Chart 合并字典:仅保留静态字典键并允许动态覆盖
你可以使用Helm模板的range、set和default函数组合成单行方案,只保留静态字典中存在的键,同时用动态字典的值覆盖对应键的静态值:
{{ $merged := dict }}{{ range $k, $v := $static }}{{ $_ := set $merged $k (default $v (index $dynamic $k)) }}{{ end }}{{ $merged | toYaml | indent 2 }}
逻辑说明
- 先初始化一个空字典
$merged - 遍历静态字典
$static的所有键值对:- 对每个键
$k,用index $dynamic $k尝试获取动态字典中的对应值 - 如果动态字典没有该键,
default函数会回退使用静态字典的原始值$v - 用
set函数将处理后的键值对存入$merged字典
- 对每个键
- 最后将合并后的字典转为YAML并缩进2格
用你给出的示例测试,最终输出会是:
FIRST_NAME: John LAST_NAME: last
完全符合需求——既覆盖了FIRST_NAME的值,又自动丢弃了动态字典中静态字典没有的KEY_TO_REMOVE键。
内容的提问来源于stack exchange,提问作者Yaron U.
相关产品推荐
相关产品推荐

