добавление одинарных кавычек к значению руля - PullRequest
1 голос
/ 30 ноября 2019

В моем файле values.yaml для helm я пытаюсь создать значение с кавычками, но когда я его запускаю, он дает другой результат

values.yaml

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

{{ .Values.annotation }}

что показывает, когда я делаю пробный прогон

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

как я могу сделать так, чтобы одинарные кавычки вокруг него показывали

1 Ответ

2 голосов
/ 01 декабря 2019

Когда синтаксический анализатор Helm YAML читает в файле values.yaml, он видит, что значение annotation: представляет собой строку в одинарных кавычках , и поэтому сохраняет содержимое значения без внешних кавычек. .

Как предполагает спецификация YAML, вы можете включить одинарные кавычки в строку в одинарных кавычках, удвоив кавычку. Может быть более привычным сделать эту строку в двойных кавычках и использовать экранирование с обратной косой чертой. Третья возможность состоит в том, чтобы превратить это в блочный скаляр , который поместит значение в отдельную строку, но вообще не потребует экранирования.

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

ЯНе знаю, в каком контексте вы пытаетесь это использовать, но если это более структурированный формат, вы можете использовать функции toYaml или toJson Хелма, чтобы создать для вас значение аннотации.

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