问题描述
在使用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
的值了。
如果你有其他问题,请随时提问。
正文完