【发布时间】:2020-10-21 03:48:33
【问题描述】:
我正在关注 Helm 文档 here 中的 Helm 库图表示例。
原始示例在库图中有一个通用的ConfigMap,定义如下:
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name | printf "%s-%s" .Chart.Name }}
data: {}
{{- end -}}
{{- define "mylibchart.configmap" -}}
{{- include "mylibchart.util.merge" (append . "mylibchart.configmap.tpl") -}}
{{- end -}}
我正在制作一个图表,该图表需要我使用 if 语句来启用或禁用特定资源。在此示例中,它是一个配置映射,但它可以是一个 HPA 或蓝/绿图表中的部署。
当我添加 If 语句如下:
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name | printf "%s-%s" .Chart.Name }}
data: {}
{{- end -}}
{{- define "mylibchart.configmap" -}}
{{- if .Values.configMapEnabled }}
{{- include "mylibchart.util.merge" (append . "mylibchart.configmap.tpl") -}}
{{- end -}}
{{- end -}}
其中.Values.configMapEnabled 存在于 values.yaml 文件中,并设置为true。
其他一切都与文档中的描述保持一致,即我使用一个简单的图表将库图表作为依赖项包含在内,然后运行:
helm install mydemo mychart/ --debug --dry-run
我收到以下错误:
helm.go:84: [debug] template: mychart/templates/configmap.yaml:1:4: executing "mychart/templates/configmap.yaml" at <include "mylibchart.configmap" (list . "mychart.configmap")>: error calling include: template: mychart/charts/mylibchart/templates/_configmap.yaml:9:14: executing "mylibchart.configmap" at <.Values.configMapEnabled>: can't evaluate field Values in type []interface {}
为什么不对 Values 字段进行评估?这似乎是一个范围界定问题,但我无法解决。
【问题讨论】:
标签: kubernetes kubernetes-helm