Проблемы в файле Deployment.yaml - PullRequest
1 голос
/ 10 февраля 2020

Я получил ошибку в моем файле Deoloyment.ysml. Я сделал ENV в этом файле и назначить значения в файле значений. Я получил синтаксическую ошибку в этом файле

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.Spe c: v1.DeploymentSpe c. Шаблон: v1.PodTemplateSpe c .Spe c: v1.PodSpe c .Контейнеры: [] v1.Container: v1.Container .Env: [] v1.EnvVar: v1.EnvVar.Value: ReadString: ожидает "или n, но найдено 8, обнаружена ошибка в # 10 байт ... |," значение ": 8080}]," ima |. .., больший контекст ... |, "value": "AA"}, {"name": "AKIRA_HTTP_PORT", "value": 8080}], "image": "dr.xenon.team/websites/akira -фронт | ...

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

Ответ на вашу проблему доступен в документации Helm. QUOTE STRINGS, НЕ QUOTE INTEGERS .

Когда вы работаете со строковыми данными, всегда безопаснее цитировать чем строки, оставляя их пустыми словами:

name: {{ .Values.MyName | quote }}

Но при работе с целыми числами не заключайте в кавычки значения. Это может во многих случаях вызывать ошибки синтаксического анализа внутри Kubernetes.

port: {{ .Values.Port }}

Это замечание не относится к значениям переменных env, которые, как ожидается, будут строковыми, даже если они представляют целые числа:

env:
 - name: HOST
   value: "http://host"
 - name: PORT
   value: "1234"

Я предполагаю, что вы установили порт значение AKIRA_HTTP_PORT внутри кавычек, поэтому вы получаете сообщение об ошибке.

Вы можете прочитать документы о Функции шаблона и конвейеры .

1 голос
/ 10 февраля 2020

С AKIRA_HTTP_PORT: «8080» в values.yaml, в переменные env напишите:

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

Должно работать

...