Deployment Helm:将多行环境变量传递给部署

Deployment Helm:将多行环境变量传递给部署,deployment,environment-variables,yaml,kubernetes-helm,Deployment,Environment Variables,Yaml,Kubernetes Helm,我需要将一个私有RSA密钥作为ENV var传递给我的部署文件,但目前无法这样做 containers: env: - name: MY_PRIVATE_KEY value: |+ {{ .Values.fpm.dot_env.MY_PRIVATE_KEY}} 我尝试过使用toYaml使用indent,而不使用indent(这没有错误,但是我的env var以|-)开头 有什么想法吗 这是我从代码中得到的错误: Error: UPGRADE FA

我需要将一个私有RSA密钥作为ENV var传递给我的部署文件,但目前无法这样做

containers:
  env:
      - name: MY_PRIVATE_KEY
        value: |+
        {{ .Values.fpm.dot_env.MY_PRIVATE_KEY}}
我尝试过使用toYaml使用indent,而不使用indent(这没有错误,但是我的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 ':'

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

  • 使用YAML
    |
    保留换行符
  • 在第一列启动Go模板
    {{…}
    宏;及
  • 使用
    indent
    函数缩进块的每一行,包括第一行
  • (您经常会看到修剪最后一行换行符的
    |-
    ;为此,我可以想象想要保留最后一行换行符
    |+
    ,或者干脆保留最后一行换行符
    |
    ;最后两行之间的区别在于是否保留了末尾多余的空行。)


    (通常对于实际机密,最好将其存储在Kubernetes Secret对象中。这些值在Kubernetes API中以base64编码,因此当您在Helm中声明机密对象时,应使用
    。| b64enc
    而不是此
    缩进
    配方。)

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

  • 使用YAML
    |
    保留换行符
  • 在第一列启动Go模板
    {{…}
    宏;及
  • 使用
    indent
    函数缩进块的每一行,包括第一行
  • (您经常会看到修剪最后一行换行符的
    |-
    ;为此,我可以想象想要保留最后一行换行符
    |+
    ,或者干脆保留最后一行换行符
    |
    ;最后两行之间的区别在于是否保留了末尾多余的空行。)


    (通常对于实际机密,最好将其存储在Kubernetes Secret对象中。这些值在Kubernetes API中以base64编码,因此当您在Helm中声明机密对象时,您将使用
    。| b64enc
    而不是此
    缩进
    配方。)

    最后我解决了B64编码密钥的问题,从我的后端解码


    谢谢。

    最后我解决了我的问题,B64编码我的密钥,B64从后端解码它


    谢谢。

    {…
    的行需要多缩进一级。带
    {…
    的行需要多缩进一级。
    containers:
      env:
          - name: MY_PRIVATE_KEY
            value: |+
    {{ .Values.fpm.dot_env.MY_PRIVATE_KEY | indent 12 }}