Helm: Использование переменных в значениях YAML файла - PullRequest
0 голосов
/ 30 октября 2019

Мне интересно, как лучше всего передать ввод в файл values.yaml с помощью шаблона.

У меня есть родительская диаграмма (она называется myapp * 1006). * для этого примера) определяется, который имеет следующие зависимости:

myapp / needs.yaml

dependencies:
- name: internaldep
  condition: internaldep.enabled
  repository: file://../internaldep
  version: 0.1.0
- name: kafka
  condition: kafka.enabled
  repository: https://charts.bitnami.com
  version: 6.1.6

В моем случае оба internaldep диаграмма (которая раскручивает внутреннее приложение, используемое моей компанией) и диаграмма kafka (поддерживаемая Bitnami здесь ) зависят от Zookeeper.

Из-заэто, обе диаграммы в своем собственном праве раскручивают Zookeeper, имея зависимость в своих соответствующих диаграммах, как:

kafka / needs.yaml и internaldep / needs.yaml

dependencies:
- name: zookeeper
  version: 5.1.X
  repository: https://charts.bitnami.com
  condition: zookeeper.enabled

Чтобы избежать раскрутки двух установок Zookeeper, я решил просто раскрутить один Zookeeper и использовать этот один экземпляр для обоих приложений, так кактакие:

myapp / needs.yaml

dependencies:
- name: internaldep
  condition: internaldep.enabled
  repository: file://../internaldep
  version: 0.1.0
- name: kafka
  condition: kafka.enabled
  repository: https://charts.bitnami.com
  version: 6.1.6
+ - name: zookeeper
+   version: 5.1.X
+   repository: https://charts.bitnami.com
+   condition: zookeeper.enabled

I'vмы сталкиваемся с проблемой. Диаграмма kafka определяет серверы Zookeeper для использования на основе следующего блока кода:

- name: KAFKA_CFG_ZOOKEEPER_CONNECT
  {{- if .Values.zookeeper.enabled }}
  value: {{ template "kafka.zookeeper.fullname" . }}
  {{- else }}
  value: {{ .Values.externalZookeeper.servers | quote }}
  {{- end }}

Поскольку я устанавливаю .Values.zookeeper.enabled в false (потому что я хочу использовать только one Установка Zookeeper для обоих приложений), это означает, что я должен передать DNS-имена, где Zookeeper можно найти через .Values.externalZookeeper.servers.

Однако, когда я пытаюсьсделать это в файле values.yaml :

kafka:
  externalZookeeper:
    servers: {{ .Release.Name }}-kafka-headless

Я получаю сообщение об ошибке:

error converting YAML to JSON: yaml: line 82: did not find expected key

Есть ли более разумный способ сделать это?

...