我正在写一张使用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
答案 0 :(得分:0)
正如您正确提到的那样,掌舵值文件是纯Yaml文件,不能包含任何模板。对于您的用例,您还需要对价值文件使用模板系统,这基本上意味着您还在旅途中生成价值文件。我建议您看看helmfile。这使您可以在多个图表和应用程序环境之间共享值文件。