Kubernetes 在helm中选择替代依赖项

Kubernetes 在helm中选择替代依赖项,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我有一个需要某种数据库的应用程序的掌舵图。 mysql或postgresql都可以 我想让图表用户选择将其中一个作为依赖项安装,如下所示: dependencies: - name: mysql version: 0.10.2 repository: https://kubernetes-charts.storage.googleapis.com/ condition: mysql.enabled - name: postgresql version: 3.11.5 repo

我有一个需要某种数据库的应用程序的掌舵图。 mysql或postgresql都可以

我想让图表用户选择将其中一个作为依赖项安装,如下所示:

dependencies:
- name: mysql
  version: 0.10.2
  repository: https://kubernetes-charts.storage.googleapis.com/
  condition: mysql.enabled
- name: postgresql
  version: 3.11.5
  repository: https://kubernetes-charts.storage.googleapis.com/
  condition: postgresql.enabled
然而,这使得两者都可以启用

有没有简单的方法确保只选择一个


我想用一个变量选择
[mysql,postgres,manual]
中的一个,如果选择了它,则依赖于特定的数据库。-有什么方法可以做到这一点吗?

我认为没有直接的方法可以做到这一点。特别是,它看起来像
requirements.yaml
条件:
字段只接受布尔值(或布尔值列表),而不是任意表达式。发件人:

条件字段包含一个或多个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 -}}