Je sais que c'est une sorte d'erreur de structure syntaxe/yaml, mais le message est si cryptique que je n'ai aucune idée de ce que le problème est:
Error: render error in "mychart/templates/ingress.yaml": template: mychart/templates/ingress.yaml:35:37: executing "mychart/templates/ingress.yaml" at <.Values.network.appP...>: can't evaluate field Values in type interface {}
Ceci est dans mes valeurs.YAML:
network:
appPort: 4141
Ceci est l'ingress.YAML:
{{- $fullName := include "mychart.fullname" . -}}
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
app.kubernetes.io/name: {{ include "mychart.name" . }}
helm.sh/chart: {{ include "mychart.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- Host: {{ .Host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ . }}
backend:
serviceName: {{ $fullName }}
servicePort: {{ .Values.network.appPort }}
{{- end }}
{{- end }}
Pourquoi ne fonctionne pas {{ .Values.network.appPort }}
travailler? J'ai utilisé des valeurs avec cette même structure dans d'autres endroits
pour YAML, il est également nécessaire d'avoir le parent immédiat de toute valeur optionnelle.
Comme si vous essayez de faire un chèque "a.b.c" dans certains YAML pendant la construction de la barre, c'est une erreur similaire. Il est nécessaire d'avoir A.B au moins dans les valeurs par défaut.YAML.
Résolu en allant des détails dans - https://github.com/helm/helm/issues/5435