You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Helm中合并仓库YAML文件与Values配置定制Infinispan?

实现Infinispan默认配置与Values自定义配置的合并

核心思路

要把仓库里的默认配置文件和Values中的自定义配置合并,关键是将YAML格式的文件内容转成Helm可操作的字典结构,再与Values中的配置字典合并,最后转回YAML输出。

具体实现代码

在你的ConfigMap模板中,替换原来的{{- .Files.Get "infinispan-config.yaml" }},改用以下代码:

{{- # 读取默认配置文件并转成字典 }}
{{- $defaultConfig := .Files.Get "infinispan-config.yaml" | fromYaml }}
{{- # 获取Values中的自定义配置,若未配置则用空字典避免报错 }}
{{- $customConfig := .Values.config.infinispan | default dict }}
{{- # 合并两个字典:自定义配置优先级更高,会覆盖默认配置的同名键 }}
{{- $finalConfig := merge $defaultConfig $customConfig }}
{{- # 将合并后的字典转回YAML字符串 }}
{{- toYaml $finalConfig }}

效果演示

假设你的默认infinispan-config.yaml内容如下:

default-property: default-value
nested:
  inner-key: original-value

values-dev.yaml中的自定义配置:

config:
  infinispan:
    my-custom-property: dev-value
    nested:
      inner-key: updated-value
      new-inner-key: added-value

最终生成的ConfigMap内容会是:

default-property: default-value
my-custom-property: dev-value
nested:
  inner-key: updated-value
  new-inner-key: added-value

注意事项

  • 确保默认的infinispan-config.yaml是合法的YAML格式,否则fromYaml解析会失败导致模板报错
  • 合并是递归进行的,嵌套的配置节点也会被智能合并,无需手动处理深层结构
  • 如果Values中没有config.infinispan节点,default dict会提供一个空字典作为兜底,避免合并操作报错

内容的提问来源于stack exchange,提问作者usr-local-ΕΨΗΕΛΩΝ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 01:43:27