我试图弄清楚如何在掌舵的两个图表之间共享数据。
我已经在一张图表中为配置映射设置了一个唯一的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。
在两个图表之间共享配置映射的最佳实践是什么?
答案 0 :(得分:2)
您尚未提供有关图表内容的大量信息,但听起来c1和c2都在定义并尝试安装configmap。 Helm并不真的对依赖项有什么特别的了解,只是知道也要安装它们。如果被告知,它将很乐意尝试(失败)第二次安装该图表。
应该仅在父图表的一部分中创建和安装configmap。即使C1和C2都没有定义,也应该能够按名称引用。