Мне интересно, как лучше всего передать ввод в файл 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
Есть ли более разумный способ сделать это?