在掌舵值上添加单引号

时间:2019-11-30 20:55:20

标签: kubernetes yaml kubernetes-helm

在我的掌舵人values.yaml文件中,我试图用引号创建一个值,但是当我运行它时,它会给出不同的结果

values.yaml

annotation: '"ports": {"88":"sandbox-backendconfig"}}'

{{ .Values.annotation }}

空试时显示什么

"ports": {"88":"sandbox-backendconfig"}}

我如何也显示周围的单引号

2 个答案:

答案 0 :(得分:2)

当Helm YAML解析器读取values.yaml文件时,它会看到annotation:的值是single-quoted string,因此它保留了值的内容而没有外部引号。

如YAML规范所建议,您可以通过将引号加倍来在单引号字符串中包含单引号。将其设置为double-quoted string并使用反斜杠转义可能会更熟悉。第三种可能性是将其设置为block scalar,它将把值放在单独的行上,但根本不需要任何转义。

annotation: '''"ports": {"88":"sandbox-backendconfig"}}'''
annotation: "'\"ports\": {\"88\":\"sandbox-backendconfig\"}}'"
annotation: >-
  '"ports": {"88":"sandbox-backendconfig"}}'

我不确定您要在哪个上下文中使用它,但是如果这是一种更结构化的格式,则可以使用Helm的toYamltoJson函数来建立注释值为你。

# values.yaml
ports:
  '88': sandbox-backendconfig
# templates/some-resource.yaml
annotations: {{ printf "\"ports\": %s" (toJson .Values.ports) | squote }}

答案 1 :(得分:1)

检查以下方法,

Values.yaml-> 注释:'“ ports”:{“ 88”:“ sandbox-backendconfig”}}'

模板-> {{.Values.annotation | squote}}

这应该可以解决您的问题。

注意:(双引号会将单引号引起来。)