覆盖 helm 子图表中的值

Gau*_*rma 4 kubernetes kubernetes-helm

我已使用 nginx-ingress 控制器作为子图表,并且我想覆盖子图表中的controller.service.nodePorts.http。我尝试了一些东西,但似乎没有任何作用。这是我尝试过的

  • 在 helm install 命令期间使用 --setcontroller.service.nodePorts.http=32080
  • 在我的图表的 value.yaml 中声明此路径

我还查看了用于覆盖子图表值的舵文档,但似乎没有一个起作用。

我可能缺少什么要点吗?提前致谢...

ita*_*ysk 6

当覆盖子图的值时,您需要将这些配置嵌套在子图的名称下。例如在values.yaml中:

mysubchart:
  x: y
Run Code Online (Sandbox Code Playgroud)

在您的情况下,如果您将 nginx 控制器图表导入为nginx-controller,您可以将其添加到主图表中:

nginx-controller:
  controller:
    service:
      nodePorts:
        http: "32080"
Run Code Online (Sandbox Code Playgroud)

此主题包含在 helm 文档中:https://github.com/helm/helm/blob/master/docs/chart_template_guide/subcharts_and_globals.md#overriding-values-of-a-child-chart

  • 感谢您的回复。我尝试了提到的解决方案,但它仍然不起作用。我检查了图表的名称,它是 nginx-ingress,但是在 values.yaml 中更新它也不会设置控制器的值。我还检查了命令: helm install --dry-run --debug mychart 输出中的值已更新,但当我执行 helm install 时,它没有反映它。 (2认同)