![Helm:如何将元素添加到默认值列表中?](https://linux22.com/image/773263/Helm%EF%BC%9A%E5%A6%82%E4%BD%95%E5%B0%86%E5%85%83%E7%B4%A0%E6%B7%BB%E5%8A%A0%E5%88%B0%E9%BB%98%E8%AE%A4%E5%80%BC%E5%88%97%E8%A1%A8%E4%B8%AD%EF%BC%9F.png)
这可能是一个非常简单的问题,但不知为何我无法通过谷歌找到答案。
假设我们有一个 Helm 图表,其中包含一些默认值,例如:
parameters:
- parameterName: parameter1
value: value1
- parameterName: parameter2
value: value2
我需要在我的额外值文件中向此列表添加一个元素。当然,我可以将默认值复制到我的额外值文件中,然后向其中添加我的额外参数:
parameters:
- parameterName: parameter1
value: value1
- parameterName: parameter2
value: value2
- parameterName: parameterN
value: valueN
我不喜欢这个想法,因为当这个 Helm 图表的维护者更改他们的默认设置时,我的默认设置将会覆盖而不是遵循他们。
parameterN
将我的添加到默认值的正确方法是什么?
提前致谢?
答案1
根据https://github.com/helm/helm/issues/6569,这是不可能的。这是设计使然,因为列表被设计为不可变数据。该 github 问题上的答案建议使用映射而不是列表,如果这在您的情况下是可能的。
答案2
你可以使用 Kustomize 来实现这一点,并安装一个 json9602 patch,具体描述如下https://skryvets.com/blog/2019/05/15/kubernetes-kustomize-json-patches-6902/#append-to-a-list将 Kustomize 与 Helm 结合起来的一个好方法:https://austindewey.com/2020/07/27/patch-any-helm-chart-template-using-a-kustomize-post-renderer/。