在 HELM 中为 DEV、PRESTAGING、STAGING 和 PROD 设置单独的环境变量值

Rad*_*ive 6 environment-variables kubernetes-helm

我目前正在使用 Helm 图表进行部署。我基本上想做的是为不同的环境设置环境变量。

用例:

我正在使用 Helm 部署一个 Node JS 应用程序,并基于环境变量 NODE_ENV 的值,该值将在部署时设置,我希望加载特定的配置文件。

例子:

  env:
    - name: NODE_ENV
      value: production
    ...
Run Code Online (Sandbox Code Playgroud)

我正在浏览 HELM 图表,但我无法解释我们如何使用模板/deployment.yaml、values.yaml 和 deployment.yaml 来建立相同的图表。

笔记:

它是相同的环境变量,将根据部署环境保存不同的值。

任何帮助都会有所帮助。

Dav*_*aze 11

您可以使用模板来设置环境变量的值:

- name: NODE_ENV
  value: {{ .Values.env | quote }}
Run Code Online (Sandbox Code Playgroud)

您的图表values.yaml文件应提供一个默认值:

env: production
Run Code Online (Sandbox Code Playgroud)

当您实际部署图表时,您可以提供一个额外的 YAML 值文件(或多个)

helm install --name my-chart ./charts/my-chart -f values.dev.yaml
Run Code Online (Sandbox Code Playgroud)

然后该 YAML 文件可以提供覆盖图表默认值的值

env: development
mysqlHost: mysql-dev.example.com
Run Code Online (Sandbox Code Playgroud)