我正在编写一个使用stable/redis图表作为子图的舵图。
我需要覆盖我的图表中和redis图表中用于两个微服务的存储类名称。
我正在使用头盔2.12.3
我希望能够根据模板指定redis.master.persistence.storageClass,就像这样
storage:
storageClasses:
name: azurefile
redis:
usePassword: false
master:
persistence:
storageClass: {{ $.Values.storage.storageClasses.name }}
除了,据我所知,values.yaml不支持模板
由于这是一个公共图表,我无法修改它以依赖于the documentation中所述的全局值
我考虑在我的图表中使用{{ $.Values.redis.master.persistence.storageClass }}
而不是{{ $.Values.storage.storageClasses.name }}
,但这会:
在我的values.yaml文件中,我有:
storage:
storageClasses:
name: azurefile
redis:
master:
persistence:
storageClass: azurefile
我想在values.yaml中指定一个可以在图表部署时覆盖的值。
例如像这样
helm install --set storage.storageClasses.name=foo mychart
而不是
helm install --set storage.storageClasses.name=foo --set redis.master.persistence.storageClass mychart
正如您所正确提到的,helm值文件是纯yaml文件,不能包含任何模板。对于您的用例,您还需要为值文件使用模板系统,这基本上意味着您还可以随时生成值文件。我建议你去看看helmfile。这使您可以跨多个图表和应用程序环境共享值文件。