4

我们使用 Helm Charts 在 Kubernetes 集群的多个环境中部署服务。现在,对于每个环境,都有一个变量列表,例如数据库 url、docker 图像标签等。在所有 Helm 模板文件对于所有环境都保持相同的情况下,定义 Helm 相关 values.yaml 的最明显和正确的方法是什么除了上面提到的一些参数。

4

1 回答 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 回答