Какую версию Helm вы используете?
Похожая проблема была в репозитории Kubernetes на GitHub:
Невозможно использовать условие в "requirements.yaml" № 2111
Решением было обновить Helm до v2.2.0 +. В этой версии была добавлена поддержка условий.
Примечание об обновлении Helm 2 до Helm 3:
Chart apiVersion обновлена до версии 2 для следующих изменений спецификации:
- Динамически связанные зависимости диаграмм перемещены в Chart.yaml ( Требования.yaml удалены, а требования - ›зависимости)
- Библиотечные диаграммы (вспомогательные / общие диаграммы) теперь могут быть добавлены как динамически связанные зависимости диаграмм.
- У диаграмм есть поле метаданных типа, чтобы определить диаграмму как приложение или диаграмму библиотеки. Это приложение по умолчанию, что означает, что его можно отобразить и установить.
- Чарты Helm 2 (apiVersion = v1) все еще можно установить
В документации Helm или репозиторий, есть объяснение того, как работает условие: (я добавил несколько комментариев, чтобы облегчить чтение)
Условие - поле условия содержит один или несколько путей YAML (разделенных запятыми).
Теги - поле тегов представляет собой YAML-список меток, которые нужно связать с этой диаграммой.
# parentchart/requirements.yaml
dependencies:
- name: subchart1
repository: http://localhost:10191
version: 0.1.0
condition: subchart1.enabled, global.subchart1.enabled
tags:
- front-end #(chart should be disabled because the tags.front-end is “false” in values.yaml file , but ...)
- subchart1 #(subchart1.enabled condition path is present in values.yaml file and it has "true" value...)
#(this condition, so it overrides tag front-end and this chart will be enabled)
- name: subchart2
repository: http://localhost:10191
version: 0.1.0
condition: subchart2.enabled,global.subchart2.enabled
#(as soon as no one from these paths is exists in values.yaml this condition has ho effect)
tags:
- back-end #(chart should be enabled because the tags.back-end is “true” in values.yaml file)
- subchart2 #(and there is no condition path found in values.yaml to override it)
Если этот путь условия существует в values
верхнего родителя и разрешается в логическое значение, диаграмма будет включена или отключена в зависимости от этого логического значения. Оценивается только первый действительный путь, найденный в списке, и если пути не существуют, условие не действует.
В верхних родительских значениях все диаграммы с тегами можно включить или отключить, указав тег и логическое значение.
# parentchart/values.yaml
subchart1:
enabled: true #(this could be found from requirements as subchart1.enabled and override tags in this case)
tags:
front-end: false #(this disables charts with tag front-end)
back-end: true #(this enables charts with tag back-end)
Логика и последовательность условий и тегов описаны в Теги и разрешение условий а>:
- Условия (если они заданы в значениях) всегда имеют приоритет над тегами. Первый существующий путь условий побеждает, а последующие для этого графика игнорируются.
- Теги оцениваются как «если какой-либо из тегов диаграммы верен, включить диаграмму».
- Значения тегов и условий должны быть установлены в верхних родительских значениях.
- Теги: ключ в значениях должен быть ключом верхнего уровня. Глобальные и вложенные теги: таблицы в настоящее время не поддерживаются.
Вы также можете установить теги и условия в командной строке:
helm install --set tags.front-end=true --set subchart2.enabled=false
person
VASャ
schedule
08.06.2018
condition: external_apache.enabled
, но уверены ли вы, что файл получает значения из values.yaml? - person Vishal Biyani   schedule 08.06.2018Error: found in requirements.yaml, but missing in charts/ directory: subchart1
Версия helm -v2.11.0
. - person zzxwill   schedule 29.12.2018