我需要将 RSA 私钥作为 ENV var 传递到我的部署文件,但目前无法执行此操作。
containers:
env:
- name: MY_PRIVATE_KEY
value: |+
{{ .Values.fpm.dot_env.MY_PRIVATE_KEY}}
我尝试过缩进,不缩进,使用 toYaml (这没有错误,但我的环境变量以 |- 开头)...
有什么想法吗?
这是我从该代码中得到的错误:
Error: UPGRADE FAILED: YAML parse error on broker-api/templates/deployment.yaml: error converting YAML to JSON: yaml: line 59: could not find expected ':'
最佳答案
如果您尝试在 Helm 图表的 Kubernetes 工件中嵌入多行字符串,最简单的方法是
- 使用 YAML
|
block scalar form保留换行符; - 在第一列启动 Go 模板
{{ ... }}
宏;和 - 使用sprig
indent
函数缩进 block 的每一行,包括第一行。
(您经常会看到 |-
修剪最后的换行符;为此,我可以想象想要保留最后的换行符 |+
或只是简单的 |
;最后两者之间的区别在于是否保留末尾的额外空行。)
containers:
env:
- name: MY_PRIVATE_KEY
value: |+
{{ .Values.fpm.dot_env.MY_PRIVATE_KEY | indent 12 }}
(通常对于实际的 secret ,最好将它们存储在 Kubernetes Secret 对象中。这些值在 Kubernetes API 中以 base64 编码,因此当您在 Helm 中声明 Secret 对象时,您可以使用 ... | b64enc
而不是这个缩进
配方。)
关于deployment - Helm : Pass a multiline env variable to deployment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60155630/