舵图中的Helm requirements.yaml条件范围

时间:2020-10-15 12:43:18

标签: kubernetes charts kubernetes-helm

我有单独的 zookeeper 图表。我也有单独的 kafka 图表。条件条件zookeeper.enabled的kafka图表的requirements.yaml中对zookeeper图表有依赖性。默认情况下,在卡夫卡图表的values.yaml中

explode(...).reset_index(drop=True)

在构建时的平均卡夫卡图包括卡夫卡图和Zookeeper图,运行时Zookeeper将根据上述条件进行部署。

现在,我想要一些新的总括图,我们称之为 TLC图。在需求中,我将依赖于zookeeper图表以及kafka图表。而且我在下面的TLC的values.yaml中定义

zookeeper:
  enabled: true

以便禁用kafka内部Zookeeper部署。我期望在部署TLC时得到kafka和zookeeper,但是收到有关zookeeper服务存在的错误。发生这种情况的原因是,它试图部署内部卡夫卡Zookeeper以及TLC要求中定义的Zookeeper。

所以我的问题是为什么zookeeper.enabled的条件不起作用,我从TLC覆盖了它,因此我希望它不会部署内部Zookeeper。

1 个答案:

答案 0 :(得分:0)

好的,解决了这个问题。

我在以下条件下将添加到卡夫卡图表Requirements.yaml

dependencies:
  - name: zookeeper
    version: ...
    repository: ...
    condition: kafka.zookeeper.enabled,zookeeper.enabled

代替

dependencies:
  - name: zookeeper
    version: ...
    repository: ...
    condition: zookeeper.enabled

这样,我可以确定当kafka图表用作TLC的子图时,由于 kafka.zookeeper.enabled 条件,内部的Zookeeper可以被禁用。