kubernetes - 无效的 Kubernetes YAML 规范。此处不允许映射值
问题描述
我正在尝试部署我的 Kubernetes 应用程序,但它不断抛出错误:
Exception while processing templates/deployment.yaml
ERROR 2021-06-17 14:57:05 Invalid Kubernetes YAML Spec. mapping values are not allowed here
ERROR 2021-06-17 14:57:05 in 'string', line 27, column 24:
ERROR 2021-06-17 14:57:05 valueFrom:
从这个错误中,我至少可以将其缩小到我的 deployment.yaml 文件。对于“valueFrom”错误,我可以将其跟踪到“env:”部分。从那里我认为这是一个格式问题。
部署.yaml
{{- if .Values.env.config}}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{.Values.name}}
data:
{{.Values.env.config | toYaml | indent 2}}
---
{{- end}}
{{- if .Values.env.secrets}}
apiVersion: v1
kind: Secret
metadata:
name: {{.Values.name}}
stringData:
{{.Values.env.secrets | toYaml | indent 2}}
---
{{- end}}
{{- if .Values.dockercfg}}
apiVersion: v1
kind: Secret
metadata:
name: {{.Values.name}}-dockercfg
annotations:
harness.io/skip-versioning: true
data:
.dockercfg: {{.Values.dockercfg}}
type: kubernetes.io/dockercfg
---
{{- end}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{.Values.name}}-deployment
spec:
replicas: {{int .Values.replicas}}
selector:
matchLabels:
app: {{.Values.name}}
template:
metadata:
labels:
app: {{.Values.name}}
tags.datadoghq.com/env: {{.Values.environment_name}}
tags.datadoghq.com/service: {{.Values.name}}
tags.datadoghq.com/version: "{{.Values.version}}"
spec:
{{- if .Values.dockercfg}}
imagePullSecrets:
- name: {{.Values.name}}-dockercfg
{{- end}}
serviceAccountName: {{.Values.name}}-service-account
containers:
- name: {{.Values.name}}
image: {{.Values.image}}
env:
- name: FILE_SYSTEM_ID
valueFrom:
configMapKeyRef:
name: efs-provisioner
key: file.system.id
- name: AWS_REGION
valueFrom:
configMapKeyRef:
name: efs-provisioner
key: aws.region
- name: PROVISIONER_NAME
valueFrom:
configMapKeyRef:
name: efs-provisioner
key: provisioner.name
- name: DD_AGENT_HOST
valueFrom:
fieldRef:
fieldPath: status.hostIP
volumeMounts:
- name: pv-volume
mountPath: /usr/local/share/mapserver
volumes:
- name: pv-volume
nfs:
server: {{.Values.EFS_ID}}.efs.{{.Values.AWS_REGION}}.amazonaws.com
path: /
{{- if or .Values.env.config .Values.env.secrets}}
envFrom:
{{- if .Values.env.config}}
- configMapRef:
name: {{.Values.name}}
{{- end}}
{{- if .Values.env.secrets}}
- secretRef:
name: {{.Values.name}}
{{- end}}
{{- end}}
我是使用 Kubernetes 和 YAML 的新手。我相信这是一个格式问题,但是无论我在哪里看,格式看起来都是正确的。
解决方案
看起来这是一个缩进问题:
- name: FILE_SYSTEM_ID
valueFrom:
configMapKeyRef:
应该
- name: FILE_SYSTEM_ID
valueFrom:
configMapKeyRef:
推荐阅读
- r - 模拟非齐次泊松点过程并检索协变量系数
- react-native - 使用 React Native 实时搜索 API 结果
- javascript - 代理无法解决角度 8 中的 CORS 错误
- excel - 使用共享驱动器的 Excel 模型
- javascript - 如何在 JSPdf 中设置文本颜色的不透明度
- sql-server - 更新语句的 Savechanges 在实体框架核心 3.1 中给出错误
- php - 如何使用 PHP 限制/分页我的 MongoDB 搜索结果?
- java - 在 Docker 中安装卷时无法访问 jarfile 错误
- r - 相关矩阵添加调整后 p 值的附加列
- python - Fasttext 量化无监督模型