我创建了常见的舵图。在值.yml文件中,我有一组环境变量需要设置为deployment.yaml 文件的一部分。
值文件的片段。
env:
name: ABC
value: 123
name: XYZ
value: 567
name: PQRS
value: 345
在deployment.yaml中,当引用值时,仅设置姓氏/值,其他值将被覆盖。如何读取/设置部署文件中的所有名称/值?
我已经经历了几次关于如何处理设置敏感环境变量的迭代。如下是我迄今为止想出的最简单的解决方案:
模板:
{{- if or $.Values.env $.Values.envSecrets }}
env:
{{- range $key, $value := $.Values.env }}
- name: {{ $key }}
value: {{ $value | quote }}
{{- end }}
{{- range $key, $secret := $.Values.envSecrets }}
- name: {{ $key }}
valueFrom:
secretKeyRef:
name: {{ $secret }}
key: {{ $key | quote }}
{{- end }}
{{- end }}
values:
env:
ENV_VAR: value
envSecrets:
SECRET_VAR: k8s-secret-name
Pros:
语法非常简单
键很容易合并。当使用共享密钥创建 CronJobs 时,这非常有用。我可以使用以下内容轻松覆盖“全局”值:
{{- range $key, $secret := merge (default dict .envSecrets) $.Values.globalEnvSecrets }}
Cons:
这只适用于与环境变量名称完全匹配的密钥,但这似乎是典型的用例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)