Kubernetes helm 循环浏览舵图文件并输入值

Kubernetes helm 循环浏览舵图文件并输入值,kubernetes-helm,helmfile,Kubernetes Helm,Helmfile,我的目录结构如下: helm |-->mappings |--> foo foo1.yaml foo2.yaml |-->templates mapping.yaml values.yaml where.yaml 有一个值,由于环境的原因,我需要将其作为变量,如{{.Values.data.hostname} 在mapping.yaml中 {{- $files := .Files }} {{- range .Values.mappin

我的目录结构如下:

helm
|-->mappings
   |--> foo
         foo1.yaml foo2.yaml
|-->templates 
     mapping.yaml
  values.yaml
where.yaml 有一个值,由于环境的原因,我需要将其作为变量,如
{{.Values.data.hostname}

在mapping.yaml中

{{- $files := .Files }}

{{- range .Values.mappings.foo }}
{{- $genericfilepath := printf "mappings/foo/%s.yaml" . }}
{{ $files.Get $genericfilepath }}

{{- end }}
当前,mapping.yaml文件在指定目录中循环并加载yaml文件,但是我无法访问Values变量

我也尝试过subchart,其中values.yaml文件将位于helm/mappings/foo/values.yaml下,但它也无法解析,或者我不完全理解subchart是否是解析文件路径的正确解决方案,
是一个特殊的“上下文”变量,而像
.Files
.Values
这样的引用实际上是从
检索字段。例如,您可以编写一个示例模板:

{{- $dot := . -}}
# These both print the same value
dot-values-foo: {{ .Values.foo }}
dollars-dot-values-foo: {{ $dot.Values.foo }}
的一种特殊方式是,
range
语句在遍历集合时为每个项设置
。在您的示例中:

{{/* . is the top item; .Values is valid */}}
{{- range .Values.mappings.foo }}
{{/* . is one of the items in `mappings.foo` */}}
{{- end }}
{{/* . is the top item again */}}
如果我需要将
用于像这样的特殊目的,我倾向于将原始的顶部项保存在变量中,然后我可以引用该变量中的字段

{{- $top := . }}
{{- range .Values.mappings.foo }}
{{- $genericfilepath := printf "mappings/foo/%s.yaml" . }}
{{ $top.Files.Get $genericfilepath }}
{{ index $top.Values.enabled . }}
{{- end }}