如何从Helm模板中获取dependencies.child-chart.version

41次阅读
没有评论

问题描述

在使用Helm模板时,想要从子模板中获取dependencies.child-chart.version的值。他在描述中提供了一个目录树,并给出了相关的文件内容。他想知道是否有一种方法可以在子模板中访问到dependencies.child-chart.version的值,或者是否有其他方法可以实现这个目标。

解决方案

请注意以下操作注意版本差异及修改前做好备份。
根据Helm的文档,子模板被视为“独立的”,这意味着子模板不能显式地依赖于其父模板。因此,子模板无法访问其父模板的值。但是,父模板可以为子模板覆盖值。Helm有一个全局值的概念,可以被所有模板访问到。
因此,我认为最好的方法是将任何共享的值放在global部分下。
以下是一个示例,演示了如何在子模板中访问到dependencies.child-chart.version的值:

# environments/staging/values.yaml
my-service:
  image:
    tag: 79947968d75f9b728b321b070d12eaacd12636ca-SNAPSHOT
global:
  my-service:
    version: 79947968d75f9b728b321b070d12eaacd12636ca-SNAPSHOT
# services/my-service/helm/templates/deployment.yaml
...
spec:
  containers:
  - name: {{ .Chart.Name }}
    image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
    version: "{{ .Values.global.my-service.version }}"
...

在上面的示例中,我们将共享的值dependencies.child-chart.version放在了global部分下。然后,在子模板中,我们可以通过.Values.global.my-service.version来访问到这个值。
这样,你就可以在子模板中获取到dependencies.child-chart.version的值了。
如果你有其他问题,请随时提问。

正文完