【发布时间】:2022-08-09 14:44:53
【问题描述】:
我有一个我正在尝试编写的 Helm Umbrella Chart,它依赖于 2 个图表(为简单起见)。图表 A 和图表 B。图表 A 和图表 B 都定义了对图表 C 的依赖关系。当我编写 Umbrella 图表时,我指定了对图表 A 和 B 的依赖关系。当我尝试安装我的 Umbrella 图表时出现错误:
错误:安装失败:serviceaccounts \"chart-c\" 已经存在
我猜这是因为 Chart A 和 Chart B 都在尝试安装 Chart C 应用程序。如何在我的伞形图中管理这些依赖关系?
-
我的理解是,如果伞形图表依赖于 A 和 B,然后 A 和 B 都依赖于 C,Helm 的通常行为是只安装一次 C,所有这些都作为同一版本的一部分。您是否单独安装了这些图表?在图表对象命名中,您是否包含 Helm
{{ .Release.Name }}或使用包含它的帮助模板? -
我没有单独安装任何图表。在图表名称中,我没有使用 `{{ .Release.Name }} 它只是硬编码(在本例中为 mysql)。
-
虽然图表中会有很多细节,但您可以尝试编辑问题以包含minimal reproducible example 吗?很难判断重复的服务帐户可能来自何处。在本地,您可以尝试在父图表上运行
helm template,这将写出呈现的 YAML,并可能会提示您重复服务帐户的来源。 -
感谢您使用
helm template的建议 - 这样做时,我当然会看到 2 个 mysql 服务帐户都命名为release-name-mysql。我不确定这是否是写入解决方案,但我所做的是在重复对象周围添加 if 块,然后在我的伞值文件中关闭重复项。
标签: kubernetes-helm helm3