Deoloyment.ysml文件中的问题

问题描述 投票:0回答:2

我在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 | .. 。

kubernetes kubernetes-helm
2个回答
1
投票

[使用AKIRA_HTTP_PORT:values.yaml中的“ 8080”,在环境变量中写入:

env:
  - name:  AKIRA_HTTP_PORT
    value: {{ .Values.website.port | quote }}

它必须工作


0
投票

您的问题的答案在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的文档。

© www.soinside.com 2019 - 2024. All rights reserved.