如何在 Helm 中使用 environment/secret 变量?
How to use environment/secret variable in Helm?
在我的 helm 图表中,我有一些文件需要输入凭据
例如
<Resource
name="jdbc/test"
auth="Container"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://{{ .Values.DB.host }}:{{ .Values.DB.port }};selectMethod=direct;DatabaseName={{ .Values.DB.name }};User={{ Values.DB.username }};Password={{ .Values.DB.password }}"
/>
我创建了一个秘密
Name: databaseinfo
Data:
username
password
然后我创建环境变量来检索我 deployment.yaml:
中的那些秘密
env:
- name: DBPassword
valueFrom:
secretKeyRef:
key: password
name: databaseinfo
- name: DBUser
valueFrom:
secretKeyRef:
key: username
name: databaseinfo
在我的 values.yaml 或这个其他文件中,我需要能够引用这个 secret/environment 变量。我尝试了以下但它不起作用:
values.yaml
DB:
username: $env.DBUser
password: $env.DBPassword
您无法使用 helm 将任何模板中的传递变量传递给 values.yaml
。刚从 values.yaml
到模板。
您要找的答案由 mehowthe 发布:
deployment.yaml =
env:
{{- range .Values.env }}
- name: {{ .name }}
value: {{ .value }}
{{- end }}
values.yaml =
env:
- name: "DBUser"
value: ""
- name: "DBPassword"
value: ""
然后
helm install chart_name --name release_name --set env.DBUser="FOO" --set env.DBPassword="BAR"
在我的 helm 图表中,我有一些文件需要输入凭据 例如
<Resource
name="jdbc/test"
auth="Container"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://{{ .Values.DB.host }}:{{ .Values.DB.port }};selectMethod=direct;DatabaseName={{ .Values.DB.name }};User={{ Values.DB.username }};Password={{ .Values.DB.password }}"
/>
我创建了一个秘密
Name: databaseinfo
Data:
username
password
然后我创建环境变量来检索我 deployment.yaml:
中的那些秘密env:
- name: DBPassword
valueFrom:
secretKeyRef:
key: password
name: databaseinfo
- name: DBUser
valueFrom:
secretKeyRef:
key: username
name: databaseinfo
在我的 values.yaml 或这个其他文件中,我需要能够引用这个 secret/environment 变量。我尝试了以下但它不起作用: values.yaml
DB:
username: $env.DBUser
password: $env.DBPassword
您无法使用 helm 将任何模板中的传递变量传递给 values.yaml
。刚从 values.yaml
到模板。
您要找的答案由 mehowthe 发布:
deployment.yaml =
env:
{{- range .Values.env }}
- name: {{ .name }}
value: {{ .value }}
{{- end }}
values.yaml =
env:
- name: "DBUser"
value: ""
- name: "DBPassword"
value: ""
然后
helm install chart_name --name release_name --set env.DBUser="FOO" --set env.DBPassword="BAR"