【发布时间】:2021-07-07 03:41:39
【问题描述】:
我正在尝试部署我的 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。我认为这是一个格式问题,但是无论我在哪里看,格式看起来都是正确的。
【问题讨论】:
-
你的
volumes块应该低于envFrom一个 - 后者是你的容器的一部分以及 @berk-soysal 所说的。
标签: kubernetes