Helm:在values.yaml中设置环境变量

问题描述 投票:0回答:1

我们有很多

key: value
对,我们希望将其设置为 Kubernetes 中运行的 Java 应用程序的 环境 变量(不是 Spring 变量)。它们的名称和数量因应用程序而异,并且针对不同环境设置的值也不同。

因此我们想使用 Helm

values.yaml
values-dev.yaml
values-staging.yaml
等文件来管理设置。

解决方案应该是这样,当变量或其值发生变化时,只需更改

values-xxx.yaml
文件,而不需要更改其他内容。

values.yaml
看起来像这样:

env:
  VARIABLE_1: VALUE_1
  VARIABLE_2: VALUE_2
  VARIABLE_3: VALUE_3
  # many key-value pairs like this
kubernetes yaml kubernetes-helm
1个回答
0
投票

要正确制作 Kubernetes 容器设置系统环境变量

deployment.yaml
应该如下所示:

...
spec:
  containers:
    - name: MY_CONTAINER_NAME
      ...
      env:
        - name: VARIABLE_1
          value: VALUE_1
        - name: VARIABLE_2
          value: VALUE_2
        - name: VARIABLE_3
          value: VALUE_3

所以问题是我们应该将什么模板放入

deployment.yaml
中,以便它呈现如上所示。

deployment.yaml中使用Helm 流程控制

字典功能

{{- range $key, $value := .Values.env }}
- name: {{ $key }}
  value: {{ $value | quote }}
{{- end }}

并且拥有像这样的

values.yaml

env:
  VARIABLE_1: VALUE_1
  VARIABLE_2: VALUE_2
  VARIABLE_3: VALUE_3

它确实被渲染为

- name: VARIABLE_1
  value: VALUE_1
- name: VARIABLE_2
  value: VALUE_2
- name: VARIABLE_3
  value: VALUE_3

这里是 Helm Playground 中的解决方案,因此您可以进一步尝试它。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.