Yaml 在helm中合并两个值文件

Yaml 在helm中合并两个值文件,yaml,kubernetes-helm,Yaml,Kubernetes Helm,我希望在helm中合并两个值文件 secrets.yaml: serviceMonitor: endpoints: - module: oracledb port: http scheme: http url: "http://user:password@ip:port/xxx" 我有另一个values.yaml文件,它有多个端点。我想合并这两个值文件。我尝试使用append函数来完成此

我希望在helm中合并两个值文件

secrets.yaml:

    serviceMonitor:
       endpoints:
         - module: oracledb
           port: http
           scheme: http
           url: "http://user:password@ip:port/xxx" 

我有另一个values.yaml文件,它有多个端点。我想合并这两个值文件。我尝试使用append函数来完成此操作:{{$endpoints:=append.Values.serviceMonitor.endpoints.Values.oracle\u db.serviceMonitor.endpoints}}当我执行一个干运行时,我看到它同时拾取两个值,但不会合并。有人见过这个吗

在当前的头盔版本3中,不支持合并值

此Github问题中讨论了此功能:

这里有一句重要的话

如果实现了这一点,那么它应该是可选的,即。E合并模式应指定为命令行标志。其他任何事情都将是一个突破性的改变,我认为,在大多数情况下,这是不可取的。问题是您将无法覆盖列表的默认值


请参阅:

在传递值文件之前,可以使用python脚本合并这些值文件。下面是我正在使用的代码片段

import yaml
from deepmerge import always_merger

fileA = “tmp.yaml"
fileB = “feature.yaml"

with open(fileA,'r+') as f:
   fileAdictionary= yaml.load(f)

with open(fileB,'r+') as f:
   fileBdictionary = yaml.load(f)

result = always_merger.merge(fileAdictionary, fileBdictionary)
with open(‘newFile.yaml’,'w+') as f:
   yaml.dump(result,f)