Helm技术问题:如何在清单文件中引用对象列表
在Helm模板中完整引用Values里的Canary Steps对象
你要直接把Values文件里的deploymentStrategy.canary.steps完整渲染到Deployment清单里,完全不用写嵌套的range循环,直接用Helm的toYaml过滤器就能搞定,既简洁又能保证结构完整。
正确的模板代码
{{- .Values.deploymentStrategy.canary.steps | toYaml | nindent 10 }}
代码说明
toYaml:把Values里的Go数据结构直接转换成标准YAML格式字符串,完整保留原有的层级和格式nindent 10:自动给生成的YAML内容添加10个空格的缩进,你可以根据清单里实际需要的层级调整这个数字(比如如果是在某个数组里,缩进可能要调大或调小)
对比原有写法的问题
你之前写的嵌套range完全是多余的,不仅代码啰嗦,还可能在渲染嵌套结构时出现缩进错乱、格式变形的问题。直接用上面的写法就能完美输出和Values里一模一样的steps数组。
比如渲染后会直接得到:
- setCanaryScale: weight: 10 - setWeight: 90 - pause: duration: "60m" - setWeight: 50 - pause: duration: "10m"
内容的提问来源于stack exchange,提问作者kabilan
相关产品推荐
相关产品推荐

