YAML helm chart 如何转义和签名
YAML helm chart how to escape & sign
我在 yaml 中有一个像这样的 helm 图表:
env:
- name: EmailHeader
value: {{ .Values.npsweb.email.support.header | quote }}
在我的值文件中,我是这样的:
npsweb:
email:
support:
header: <html><body><img src='https://nps.dev.nuancepowershare.com/smr/images/weblogo.png' alt='SMR LOGO' /><hr />
但是它说Anchor lt;html><body><img is never used
。我试着用双引号括起来,但仍然没有被拾取。
这是什么问题,我该如何解决?
您需要明确引用该字符串。有几种方法可以做到这一点,所以选择合适的方法:
header-with-single-quotes: '<.../>'
header-with-double-quotes: "<.../>"
header-as-block-scalar: |-
<html>...</html>
header-as-block-scalar-with-whitespace: |-
<html>
<body>
...
</body>
</html>
所有这些形式都是相同的,除了最后一个将包含嵌入的换行符和 spaces。 (由于您的值包含单引号,因此单引号形式会不太方便。)您还可以考虑 storing the HTML content in a file 并使用 .Files.Get
读取它(尽管 Helm 不包含模板函数用于转义 HTML).
您现有的 values.yaml
文件有什么问题? YAML 有一个 anchor 的概念;您可以为文档的一部分提供这样的标签,并从文档的其他地方引用它。值开头的'&'字符标记一个锚点,到第一个space的文本是锚点的名称。
在 Kubernetes 中不多,但在 Docker Compose 中,您会经常看到可重用的环境变量块:
# (This is a Docker Compose file, not Kubernetes, as a YAML example)
version: '3.8'
x-environment: &environment # <-- anchor
DB_HOST: db
services:
db: { image: postgres }
application:
build: .
environment: *environment # <-- reference to anchor
worker:
build: .
command: ./worker
environment: *environment # <-- same reference to anchor
我在 yaml 中有一个像这样的 helm 图表:
env:
- name: EmailHeader
value: {{ .Values.npsweb.email.support.header | quote }}
在我的值文件中,我是这样的:
npsweb:
email:
support:
header: <html><body><img src='https://nps.dev.nuancepowershare.com/smr/images/weblogo.png' alt='SMR LOGO' /><hr />
但是它说Anchor lt;html><body><img is never used
。我试着用双引号括起来,但仍然没有被拾取。
这是什么问题,我该如何解决?
您需要明确引用该字符串。有几种方法可以做到这一点,所以选择合适的方法:
header-with-single-quotes: '<.../>'
header-with-double-quotes: "<.../>"
header-as-block-scalar: |-
<html>...</html>
header-as-block-scalar-with-whitespace: |-
<html>
<body>
...
</body>
</html>
所有这些形式都是相同的,除了最后一个将包含嵌入的换行符和 spaces。 (由于您的值包含单引号,因此单引号形式会不太方便。)您还可以考虑 storing the HTML content in a file 并使用 .Files.Get
读取它(尽管 Helm 不包含模板函数用于转义 HTML).
您现有的 values.yaml
文件有什么问题? YAML 有一个 anchor 的概念;您可以为文档的一部分提供这样的标签,并从文档的其他地方引用它。值开头的'&'字符标记一个锚点,到第一个space的文本是锚点的名称。
在 Kubernetes 中不多,但在 Docker Compose 中,您会经常看到可重用的环境变量块:
# (This is a Docker Compose file, not Kubernetes, as a YAML example)
version: '3.8'
x-environment: &environment # <-- anchor
DB_HOST: db
services:
db: { image: postgres }
application:
build: .
environment: *environment # <-- reference to anchor
worker:
build: .
command: ./worker
environment: *environment # <-- same reference to anchor