通过 .Files.Get 将文本注入模板时,Helm 模板中出现错误?

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

我很难确定渲染的 Helm Chart 模板的一部分是否在技术上有缺陷并且将来可能会让我失望。有问题的 YAML 现在被 Helm (lint) 和 Kubernetes 接受用于部署。

背景

据我所知,在 YAML 中任何有效使用多行块式指示符“|”都应该跟在换行符之后,然后是从下一行开始的所需内容。

foo: |
  [start content indented two spaces]

问题

就我而言,Helm 正在生成以下内容,Helm linting 和 Kubernetes 都接受了这些内容。请注意我注入的文件中的#与“|”在同一行

  common.runtime.properties: |    #
    #
    app.flag.enabled=true

生成上述内容的模板如下所示:

  common.runtime.properties: |
{{- .Files.Get (printf "envconfig/%s/my.properties" .Values.configEnvironment) | indent 4 }}

文件被正确读入,没有任何特殊字符。对我来说,无论我使用哪个版本的管道指示器,上述情况都是不可能发生的。

上面的格式真的有效吗? YAML 规范没有具体解决这个问题,但所有示例都有一个换行符跟在 block chomping 指示符 |.

我查看了 YAML 规范和许多文章,我可以找到与上述匹配的主题。

kubernetes templates deployment yaml kubernetes-helm
© www.soinside.com 2019 - 2024. All rights reserved.