Я не думаю, что есть простой способ сделать это.В частности, похоже, что поле requirements.yaml
condition:
принимает только логическое значение (или их список), а не произвольное выражение.Из документации Helm :
Поле условия содержит один или несколько путей YAML (разделенных запятыми).Если этот путь существует в значениях верхнего родительского элемента и разрешается в логическое значение, диаграмма будет включена или отключена на основе этого логического значения.Только первый действительный путь, найденный в списке, оценивается, и если пути не существуют, условие не оказывает влияния.
(Механизм тегов, описанный ниже, очень похож и не помогает).
Когда дело доходит до написания спецификации развертывания, у вас более нормальная условная система, и вы можете проверить, что установлено только одно из значений;поэтому я не думаю, что вы можете предотвратить установку избыточных баз данных, но вы по крайней мере будете использовать только одну из них.Вы также можете поместить в свой файл NOTES.txt
предупреждение об этом факте.
{{ if and .Values.mysql.enabled .Values.postgresql.enabled -}}
WARNING: you have multiple databases enabled in your Helm values file.
Both MySQL and PostgreSQL are installed as part of this chart, but only
PostgreSQL is being used. You can update this chart installation setting
`--set mysql.enabled=false` to remove the redundant database.
{{ end -}}