【发布时间】:2021-05-20 14:10:34
【问题描述】:
我正在从 Docker 迁移到 Helm3。我的 Docker 部署使用 .env 文件加载环境变量,请参阅reference。在迁移过程中,我需要同时支持旧方式和新方式,所以如果可以避免的话,我不想更改 .env 格式。
这是我的示例 .env 文件:
key1=value1
key2=value2
然后在我的 Helm3 deployment.yaml 中我需要:
kind: Deployment
spec:
template:
spec:
containers:
env:
- name: key1
value: "value1"
- name: key2
value: "value2"
.env 文件是 helm 项目根目录,所以我希望我可以根据 question 做类似的事情,但不知道如何继续:
{{- $files := .Files }}
#Not sure how to select just one file?
{{- range tuple ".env" }}
#Split file by newlines and =
{{- range $line := splitList "\n" $files.Get . }}
{{/* Break the line into words */}}
{{- $kv := splitList "=" $line -}}
{{- $k := first $kv -}}
{{ $k }}: {{ last $kv | quote }}
{{- end }}
{{- end }}
【问题讨论】:
-
不能引用
templates目录下的.Files;您需要将文件移动到其他地方。 Helm 文档中的Accessing Files Inside Templates 包含有关.Files的更多信息,包括如何检索特定文件。 -
谢谢 - 在下面改进了我的答案
标签: docker kubernetes environment-variables kubernetes-helm