我有一个可以使用内部数据库或外部数据库的头盔图 . 这些值是互斥的 . 如果一个值为true,则另一个值应为false .
Is there a way to enforce mutual exclusivity so a user doesn't accidentally enable both?
使用内置数据库的示例(redis)
helm install foo --set redis.enabled=true --set corvus.enabled=false
Examaple使用外部数据库(corvus)
helm install foo --set redis.enabled=false --set corvus.enabled=true --set corvus.location=foobar
我考虑过不使用2个单独的值 redis.enabled
corvus.enabled
而是使用像 database
这样的单个值,可以设置为 internal
或 external
,但是因为requriements.yaml中的helm条件只能对布尔值执行逻辑,所以我不相信这个有可能 .
dependencies:
- name: redis
version: 4.2.7
repository: https://kubernetes-charts.storage.googleapis.com
condition: redis.enabled,global.redis.enabled
1 回答
您可以使用一些Sprig模板魔法来强制配置键互斥 . 对于您的情况,您可以将以下类型的块添加到任何Chart的模板中 .
当两个配置值都被评估为true时,这将导致Chart安装失败 .