Kubernetes 将YAML转换为JSON时出错:未在管道中找到预期的键-错误
我在部署管道中遇到以下错误Kubernetes 将YAML转换为JSON时出错:未在管道中找到预期的键-错误,kubernetes,yaml,kubernetes-helm,Kubernetes,Yaml,Kubernetes Helm,我在部署管道中遇到以下错误 Error: YAML parse error on cnhsst/templates/deployment.yaml: error converting YAML to JSON: yaml: line 38: did not find expected key 与此错误对应的yml文件如下: apiVersion: apps/v1 kind: Deployment metadata: name: {{ template "fullname"
Error: YAML parse error on cnhsst/templates/deployment.yaml: error converting YAML to JSON: yaml: line 38: did not find expected key
与此错误对应的yml文件如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "fullname" . }}
namespace: {{ .Values.namespace }}
labels:
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
replicas: {{ .Values.replicas }}
selector:
matchLabels:
app: {{ template "fullname" . }}
release: "{{ .Release.Name }}"
# We dont need a large deployment history limit as Helm keeps it's own
# history
revisionHistoryLimit: 2
template:
metadata:
namespace: {{ .Values.namespace }}
labels:
app: {{ template "fullname" . }}
release: "{{ .Release.Name }}"
annotations:
recreatePods: {{ randAlphaNum 8 | quote }}
spec:
containers:
- name: {{ template "fullname" . }}
image: {{ template "docker-image" . }}
imagePullPolicy: Always
ports:
# The port that our container listens for HTTP requests on
- containerPort: {{ default 8000 .Values.portOverride }}
name: http
{{- if .Values.resources }}
resources:
{{ toYaml .Values.resources | indent 10 }}
{{- end }}
{{- if and (.Values.livenessProbe) (.Values.apipod)}}
livenessProbe:
{{ toYaml .Values.livenessProbe | indent 10 }}
{{- end }}
{{- if and (.Values.readinessProbe) (.Values.apipod)}}
readinessProbe:
{{ toYaml .Values.readinessProbe | indent 10 }}
{{- end }}
imagePullSecrets:
- name: regcred
securityContext:
runAsNonRoot: true
runAsUser: 5000
runAsGroup: 5000
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- {{ template "fullname" . }}
topologyKey: failure-domain.beta.kubernetes.io/zone
我被这个问题困扰了几个小时。我读过很多文章,尝试过在线工具试图找出语法错误,但不幸的是没有运气。如果有人能够指出这个问题,那就太好了。您可以在
regcred
下看到不匹配的缩进:
imagePullSecrets:
-姓名:regcred
#您可以在regcred
下看到不匹配的缩进:
imagePullSecrets:
-姓名:regcred
#只是在黑暗中拍摄:只有空行37。这个空行可能是错误的原因吗?我尝试删除这个空行,但在检查它时仍然显示相同的错误,我不是YAML专家。你确定Yamlint.com与kubernetes helm兼容吗?我试着在门楣上粘贴一些来自《赫尔姆博士》的例子:这个门楣几乎总是出错。只是在黑暗中拍摄:只有空行37。这个空行可能是错误的原因吗?我尝试删除这个空行,但在检查它时仍然显示相同的错误,我不是YAML专家。你确定Yamlint.com与kubernetes helm兼容吗?我试着在门楣上粘贴一些来自《赫尔姆文档》的例子:这个门楣几乎总是出错。
$ helm template --debug my-chart . 2>&1| sed -e '1,/^apiVersion:/d' | sed -ne 38p
securityContext: