在掌舵的两个图表之间共享配置图

时间:2019-01-04 20:22:38

标签: kubernetes kubernetes-helm

我试图弄清楚如何在掌舵的两个图表之间共享数据。

我已经在一张图表中为配置映射设置了一个唯一的YAML图表。我们将图表称为cm1。像这样定义它的名称:

name:  {{ .Release.Name }}-maps

然后,我设置了两个图表,这些图表部署了一些容器,这些容器想要访问c1中configmap中的数据。我们称它们为c1和c2。 c1有一个requirements.yaml,该图表引用cm1和c2的图表。现在,我有一个父图表试图将所有图表组合在一起,我们称其为p1。 p1在requirements.yaml中定义c1和c2。我helm install --name k1 p1并出现错误:

错误:发行版k1失败:配置映射“ k1-maps”已存在。

我认为,当头盔构建其依赖关系树时,它将看到在首次加载图表cm1时已经定义了k1-maps。

在两个图表之间共享配置映射的最佳实践是什么?

1 个答案:

答案 0 :(得分:2)

您尚未提供有关图表内容的大量信息,但听起来c1和c2都在定义并尝试安装configmap。 Helm并不真的对依赖项有什么特别的了解,只是知道也要安装它们。如果被告知,它将很乐意尝试(失败)第二次安装该图表。

应该仅在父图表的一部分中创建和安装configmap。即使C1和C2都没有定义,也应该能够按名称引用。