在values.yaml
的全局部分中包括子图的安装是最佳实践。例子..
根级别values.yaml
global:
foo: bar
subchartA:
enable: true
或最佳做法是如图所示将子图移出全局部分。
global:
foo: bar
subchartA:
enable: true
请简要说明原因。谢谢
答案 0 :(得分:2)
子图表配置设置必须位于global:
块之外的顶层。
在样式级别,每个图表都应可独立安装,无论是否用作子图表。像stable/mysql图表之类的例子就是一个合理的例子:您可以手动helm install mysql stable/mysql --set mysqlPassword=...
,而无需提及global
。这意味着,当您将其包含为依赖项时,其设置必须位于values.yaml
文件中子图的键下。
在机械层面上,运行子图表时,subchartA
设置会提升为.Values
,然后将原始global:
与之合并(请参阅{{3} }。因此子图本身需要了解差异
{{/* Option 1 */}}
{{ .Values.global.subchartA.enabled }}
{{/* Option 2 (within subchartA) */}}
{{ .Values.enabled }}
,并且在顶层,您需要使用与随附图表兼容的表格。
(如果浏览Subcharts and Globals,您会发现global
很少使用; rabbitmq
允许您声明global.imagePullSecrets
,但是很接近它。)>