如何通过helm template --set命令设置内嵌YAML中的值?
问题解答
不行,仅靠helm template --set命令没法直接实现这个需求。核心原因是:你的temp.yaml是作为多行字符串(通过|-标记)嵌入在Helm模板的config字段下的,它本质是一个字符串值,不是Helm能识别的嵌套YAML结构。--set只能操作模板里结构化的YAML节点,没法穿透到字符串内部修改其中的内容。
要实现动态设置server的值,推荐两种靠谱方案:
方案一:把temp.yaml改成结构化配置
把原本的内嵌字符串拆成Helm的嵌套字段,这样就能用--set直接修改:config: temp.yaml: instances: - server: {{ .Values.serverUrl }} port: 443对应的
--set命令:helm template --set serverUrl=server_url ./your-chart方案二:在字符串里用Helm变量占位
保留内嵌字符串的形式,但把server的值换成Helm模板变量,再通过--set给变量传值:config: temp.yaml: |- instances: - server: {{ .Values.serverUrl }} port: 443同样用这条命令传值:
helm template --set serverUrl=server_url ./your-chart
这两种方法都能满足你的需求,比硬怼--set修改字符串内容要靠谱得多。
内容的提问来源于stack exchange,提问作者MEHMET MERT BEZIRGAN
相关产品推荐
相关产品推荐

