Yaml 在helm中合并两个值文件
我希望在helm中合并两个值文件 secrets.yaml: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函数来完成此
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)