我们使用 Helm Charts 在 Kubernetes 集群的多个环境中部署服务。现在,对于每个环境,都有一个变量列表,例如数据库 url、docker 图像标签等。在所有 Helm 模板文件对于所有环境都保持相同的情况下,定义 Helm 相关 values.yaml 的最明显和正确的方法是什么除了上面提到的一些参数。
问问题
781 次
1 回答
8
一种方法是使用 helm 现在允许的多个值文件。假设您有以下值文件:
值1.yaml:
image:
repository: myimage
tag: 1.3
values2.yaml
image:
pullPolicy: Always
这些都可以在 helm 的命令行中使用:
$ helm install -f values1.yaml,values2.yaml <mychart>
在这种情况下,这些值将被合并到
image:
repository: myimage
tag: 1.3
pullPolicy: Always
您可以通过为“helm install”命令提供“--dry-run --debug”选项来查看将使用的值。
秩序很重要。如果两个文件中出现相同的值,则 values2.yaml 中的值将优先,因为它是最后指定的。每个图表还附带一个值文件。这些值将用于您自己的值文件中未指定的任何内容,就好像它是您提供的值文件列表中的第一个一样。
在您的情况下,您可以在 values1.yaml 中指定所有常用设置,并根据需要使用 values2.yaml 覆盖它们。
于 2017-09-22T13:23:05.557 回答