Helm:将多行env变量传递给部署

问题描述 投票:0回答:1

我需要将私用RSA密钥作为ENV var传递到我的部署文件,但目前无法执行。

containers:
  env:
      - name: MY_PRIVATE_KEY
        value: |+
        {{ .Values.fpm.dot_env.MY_PRIVATE_KEY}}

我已经尝试过使用toYaml进行缩进,没有缩进(这没有错误,但是我的env var以|-开头...

任何想法?

这是我从该代码中得到的错误:

Error: UPGRADE FAILED: YAML parse error on broker-api/templates/deployment.yaml: error converting YAML to JSON: yaml: line 59: could not find expected ':'
deployment environment-variables yaml kubernetes-helm
1个回答
0
投票

[如果您要在Helm图表的Kubernetes工件中嵌入多行字符串,最简单的方法是

  1. 使用YAML|block scalar form保留换行符;
  2. 在第一列中启动Go模板{{ ... }}宏;和
  3. 使用sprig indent函数缩进块的每一行,包括第一行。

((您经常会看到|-会修剪最后的换行符;为此,我可以想像是要保留最后的换行符|+还是仅保留简单的|;最后两者之间的区别在于是否在末尾添加了多余的空行是否保留结束。)

containers:
  env:
      - name: MY_PRIVATE_KEY
        value: |+
{{ .Values.fpm.dot_env.MY_PRIVATE_KEY | indent 12 }}

(通常,对于实际机密,最好将它们存储在Kubernetes Secret对象中。这些值是在Kubernetes API中以base64编码的,因此当您在Helm中声明Secret对象时,应使用... | b64enc代替此indent食谱。

© www.soinside.com 2019 - 2024. All rights reserved.