根据需求取决于子图。Yaml导致呈现模板。我知道我可以使用别名来拥有子图的多个副本,但是是否有一种方法可以防止子图默认呈现,而不是included
作为模板,沿着以下行:
{{- $root := . }}
{{- range $i, $service := .Values.services }}
---
{{ $k8sDeployment := (include "MY_SUBCHART_NAME" (dict "top" $root "deployment" $service)) | fromYaml }}
{{ include "deployment" (dict "top" $root "deployment" $k8sDeployment) }}
---
{{ $k8sService := (include "MY_SUBCHART_NAME2" $service) | fromYaml }}
{{ include "service" (dict "top" $root "service" $k8sService) }}
{{- end -}}
不行,没办法。Helm依赖项(Helm 2和Helm 3中的依赖项)仅作为以相同的Helm发布名称安装在集群中的东西工作。如果不使用post-renderer之类的东西来操作生成的YAML,就无法只包含依赖关系图的一部分,也无法用不同的参数重新包含它的Kubernetes对象。
可以想象子图是专门为这种方式设计的。子图必须提供您试图调用的模板,其templates/*.yaml
文件将在if
块内调用具有标准值的模板,然后您的父图可以依赖于具有禁用其正常输出值的子图。然而,大多数图表不是这样构建的。