Как передать всю строку JSON в значение диаграммы Хелма? - PullRequest
0 голосов
/ 04 января 2019

Как передать всю строку JSON в значение диаграммы Хелма?

У меня есть values.yml, где значение конфигурации должно содержать весь JSON с конфигурацией приложения

...
config: some JSON here
...

и мне нужно передать это значение в секретный шаблон, а затем смонтировать его как том в модуль Kubernetes.

{{- $env := default "integration" .Values.env}}
apiVersion: v1
kind: Secret
metadata:
  name: {{ .Release.Name }}-{{ $env }}
type: Opaque
data:
  config.json: {{ .Values.config | b64enc | quote }}

Однако очевидный подход к передаче строки в одинарных кавычках, такой как '{"redis": "localhost:6379"}', терпит неудачу, потому что Helm по какой-то причине удаляет все двойные кавычки в строке (даже если я их избегаю), поэтому я получаю {redis: localhost:6379}, который не является допустимым JSON .

Есть ли еще какая-нибудь возможность, как передать конфигурацию в модуль сразу, не загружая файлы шаблонов с функцией tpl и делая все необходимые поля доступными через values.yml отдельно?

1 Ответ

0 голосов
/ 04 января 2019

Если .Values.config содержит json, вы можете использовать его в своем шаблонном секрете с {{ .Values.config | toJson | b64enc | quote }}. Может показаться странным использовать toJson для преобразования json в json, но helm изначально не рассматривает его как json, пока вы не скажете это. См. Вопрос SO Как мне использовать переменные json в файле yaml (Helm) для примера.

...