我在Deoloyment.ysml文件中出错。我已经在该文件中创建了env,并在values文件中分配了值。我在此文件中出现语法错误
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
labels:
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/name: {{ include "name" . }}
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/name: {{ include "name" . }}
template:
metadata:
labels:
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/name: {{ include "name" . }}
spec:
containers:
- name: {{ .Release.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
resources: {}
env:
- name: MONGODB_ADDRESS
value: {{ .Values.mongodb.db.address }}
- name: MONGODB
value: "akira-article"
- name: MONGODB_USER
value: {{ .Values.mongodb.db.user | quote }}
- name: MONGODB_PASS
valueFrom:
secretKeyRef:
name: {{ include "name" . }}
key: mongodb-password
- name: MONGODB_AUTH_DB
value: {{ .Values.mongodb.db.name | quote }}
- name: DAKEN_USERID
value: {{ .Values.mongodb.db.userId | quote }}
- name: DAKEN_PASSWORD
valueFrom:
secretKeyRef:
name: {{ include "name" . }}
key: daken-pass
- name: JWT_PRIVATE_KEY
valueFrom:
secretKeyRef:
name: {{ include "name" . }}
key: jwt-Privat-Key
- name: WEBSITE_NAME
value: {{ .Values.website.Name }}
- name: WEBSITE_SHORT_NAME
value: {{ .Values.website.shortName }}
- name: AKIRA_HTTP_PORT
value: {{ .Values.website.port }}
ports:
- containerPort: {{ .Values.service.port }}
我收到此错误:
错误:版本“ v1”中的部署不能作为部署处理:v1.Deployment.Spec:v1.DeploymentSpec.Template:v1.PodTemplateSpec.Spec:v1.PodSpec.Containers:[] v1.Container:v1.Container.Env:[] v1.EnvVar:v1.EnvVar.Value:ReadString:期望“或n,但发现8,在#10个字节中发现错误... |,“ value”:8080}],“ ima | ...,更大的上下文... |,“值”:“ AA”},{“名称”:“ AKIRA_HTTP_PORT”,“值”:8080}],“图像”:“ dr.xenon.team/websites/akira-fronte | .. 。
[使用AKIRA_HTTP_PORT:values.yaml中的“ 8080”,在环境变量中写入:
env:
- name: AKIRA_HTTP_PORT
value: {{ .Values.website.port | quote }}
它必须工作
您的问题的答案在Helm文档QUOTE STRINGS, DON’T QUOTE INTEGERS中。
[使用字符串数据时,引用字符串总是比将字符串留为裸字更安全:
name: {{ .Values.MyName | quote }}
但是当使用整数不引用值时。在许多情况下,这可能会导致Kubernetes内部解析错误。
port: {{ .Values.Port }}
此注释不适用于应该为字符串的环境变量值,即使它们表示整数:
env: - name: HOST value: "http://host" - name: PORT value: "1234"
我假设您已将AKIRA_HTTP_PORT
的端口值放在引号内,这就是为什么您会收到错误的原因。
您可以阅读有关Template Functions and Pipelines的文档。