微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何覆盖子图表的 Release.namespace?

如何解决如何覆盖子图表的 Release.namespace?

我有一个包含 4 个子图表的父图表,其中我想将 1 个特定子图表部署到不同的命名空间,并且该子图表中的所有模板文件都引用 {{ .Release.Namespace. }}。他们有什么方法可以修改.Release.Namespace。来自父图表的子图表?

解决方法

我认为使用您无法控制的普通 Helm 和图表是不可能的。

当图表依赖于子图表时,可以自定义的可能性很小。父图表可以为子图表提供一组默认值,但不计算任何值,并且这些值可以被运行 helm install 的人覆盖。

当且仅当子图专门用于部署到备用命名空间中

# Every object in the subchart must have this configuration
metadata:
  namespace: {{ .Values.namespace | default .Release.Namespace }}

然后您可以将该值提供给子图表;但这不是默认配置。

我的一般经验是,Helm 的“伞形图”在几个重要方面不够灵活。有更高级的工具,如 HelmfileHelmsman,它们提供了一个带有全套选项的多个 Helm 图表的单命令安装(Helmsman 更简单,Helmfile 几乎可以在任何地方使用 Helm 风格的模板,这是更强大也更复杂)。如果您需要安装四个图表,三个在一个命名空间中,一个在另一个中,这些工具可能会更好地工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。