本文介绍了舵图中的多个环境变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经创建了常见的舵图。在values.yml文件中,我有一组环境变量,它们需要设置为部署.yaml文件的一部分。
值文件的代码段。
env:
name: ABC
value: 123
name: XYZ
value: 567
name: PQRS
value: 345
在部署.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 }}
值:
env:
ENV_VAR: value
envSecrets:
SECRET_VAR: k8s-secret-name
优点:
语法非常简单
键很容易合并。这在创建具有共享秘密的CronJobs时非常有用。我能够使用以下内容轻松覆盖"global"值:
{{- range $key, $secret := merge (default dict .envSecrets) $.Values.globalEnvSecrets }}
缺点:
这仅适用于与环境变量名称完全匹配的密钥,但这似乎是典型的用例。
这篇关于舵图中的多个环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!