使用全局变量时,helm 子图是否依赖于父图?

Rya*_*Mes 5 kubernetes-helm

在helm subcharts 和 globals 的文档中,他们列出了 4 个细节,其中 2 个是我想要重点关注的

  1. 子图被视为“独立”,这意味着子图永远不能显式依赖于其父图。
  2. 因此,子图无法访问其父图的值。
  3. 父图表可以覆盖子图表的值。
  4. Helm 有一个所有图表都可以访问的全局值的概念。

从例子来看,1和4似乎是矛盾的。如果我在父图表中创建一个全局变量,然后在子图表中引用它,这不会在父图表和子图表之间创建依赖关系吗?

Edu*_*llo 7

子图表仍将被视为“独立”。使用全局值将创建对values.yaml父图表的依赖关系(而不是对父图表本身的显式依赖关系)。

\n\n

--values为了克服这个问题,您必须在安装各个子图表时显式传递父值(通过标志)。例如:

\n\n

假设以下结构:

\n\n
$ tree parent/\nparent/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 charts\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 child\n\xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Chart.yaml\n\xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 templates\n\xe2\x94\x82           \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 configmap.yaml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Chart.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 values.yaml\n
Run Code Online (Sandbox Code Playgroud)\n\n

要单独安装child子图,您必须使用:

\n\n

helm install ./parent/charts/child/ --values ./parent/values.yaml

\n\n

helm 项目中有一个公开讨论(#4767 )来改进这一点。

\n