Kin*_*ing 5 yaml kubernetes kubernetes-helm
在 helm 的 values.yaml 文件中,我试图用引号创建一个值,但是当我运行它时,它给出了不同的结果
值.yaml
annotation: '"ports": {"88":"sandbox-backendconfig"}}'
{{ .Values.annotation }}
Run Code Online (Sandbox Code Playgroud)
当我进行空运行时显示什么
"ports": {"88":"sandbox-backendconfig"}}
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它周围的单引号也显示出来
SHC*_*SHC 15
检查下面的方法,
值.yaml
annotation: '"ports": {"88":"sandbox-backendconfig"}}'
Run Code Online (Sandbox Code Playgroud)
模板
{{ .Values.annotation | squote }}
Run Code Online (Sandbox Code Playgroud)
这应该可以解决您的问题。
squote将在推导出的值周围加上单引号。
Dav*_*aze 10
当 Helm YAML 解析器读入values.yaml文件时,它发现 的值annotation:是一个单引号字符串,因此它保留了没有外引号的值的内容。
正如 YAML 规范所建议的,您可以通过将引号加倍来在单引号字符串中包含单引号。将其设为双引号字符串并使用反斜杠转义可能更熟悉。第三种可能性是将它变成一个块 scalar,这会将值放在单独的行上,但根本不需要任何转义。
annotation: '''"ports": {"88":"sandbox-backendconfig"}}'''
annotation: "'\"ports\": {\"88\":\"sandbox-backendconfig\"}}'"
annotation: >-
'"ports": {"88":"sandbox-backendconfig"}}'
Run Code Online (Sandbox Code Playgroud)
我不确定您要在什么上下文中使用它,但如果这是一种更结构化的格式,您可以使用 HelmtoYaml或toJson函数为您构建注释值。
# values.yaml
ports:
'88': sandbox-backendconfig
Run Code Online (Sandbox Code Playgroud)
# templates/some-resource.yaml
annotations: {{ printf "\"ports\": %s" (toJson .Values.ports) | squote }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8505 次 |
| 最近记录: |