在 helm include(或模板)中使用变量作为名称
Using a variable in helm include (or template) for the name
我设计了我的 helm 图表,它使用模板来设置我的 kubernetes 部署的某些部分。每个云提供商的模板:
一个GCE模板,一个AWS模板等
该模板随后包含在 Helm 图表的部署部分中。
现在有一个很好的方法可以做到这一点:
根据其适用的云提供商命名每个模板,并使用 values.yaml 中的变量来指示它。
还有一种不太漂亮的方法是使用一堆 if 语句。
我想使用漂亮的方式,因为它需要更少的维护和下游代码,但无法使以下工作:
{{- include {{.Values.resources.cloudProvider}} .}}
在此声明中,{{.Values.resources.cloudProvider}}
包含我的云提供商名称(aws、gce 等)
我得到的错误是:
Error: parse error in "testModel/templates/deployment.yaml":
template: testModel/templates/deployment.yaml:28:
unexpected "{" in operand
我测试的另一种方法是:
{{- include (.Values.resources.cloudProvider) .}}
给出:
Error: render error in "testModel/templates/deployment.yaml": template:
testModel/templates/deployment.yaml:29:23:
executing "testModel/templates/deployment.yaml"
at <.Values.resources.c...>: invalid value; expected string
有没有办法在包含模板时使用变量作为模板名称?
我正在使用 helm 2.4.2。这项工作通过更改行
{{- include {{.Values.resources.cloudProvider}} .}}
至:
{{- include .Values.resources.cloudProvider .}}
您还可以使用变量:
{{- $provider := .Values.resources.cloudProvider -}}
{{ - include $provider . }}
我设计了我的 helm 图表,它使用模板来设置我的 kubernetes 部署的某些部分。每个云提供商的模板:
一个GCE模板,一个AWS模板等
该模板随后包含在 Helm 图表的部署部分中。
现在有一个很好的方法可以做到这一点: 根据其适用的云提供商命名每个模板,并使用 values.yaml 中的变量来指示它。
还有一种不太漂亮的方法是使用一堆 if 语句。
我想使用漂亮的方式,因为它需要更少的维护和下游代码,但无法使以下工作:
{{- include {{.Values.resources.cloudProvider}} .}}
在此声明中,{{.Values.resources.cloudProvider}}
包含我的云提供商名称(aws、gce 等)
我得到的错误是:
Error: parse error in "testModel/templates/deployment.yaml":
template: testModel/templates/deployment.yaml:28:
unexpected "{" in operand
我测试的另一种方法是:
{{- include (.Values.resources.cloudProvider) .}}
给出:
Error: render error in "testModel/templates/deployment.yaml": template:
testModel/templates/deployment.yaml:29:23:
executing "testModel/templates/deployment.yaml"
at <.Values.resources.c...>: invalid value; expected string
有没有办法在包含模板时使用变量作为模板名称?
我正在使用 helm 2.4.2。这项工作通过更改行
{{- include {{.Values.resources.cloudProvider}} .}}
至:
{{- include .Values.resources.cloudProvider .}}
您还可以使用变量:
{{- $provider := .Values.resources.cloudProvider -}}
{{ - include $provider . }}