You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s Deployment添加PURPOSE环境变量时出现YAML转JSON错误

Kubernetes Deployment环境变量配置错误修复

问题原因

YAML解析失败是因为数组结构缩进错误:env是一个数组类型字段,你通过toYaml渲染的.Values.envVariables已经是数组内的条目(每个条目以- name:开头),但新增的PURPOSE变量没有和这些渲染出的条目处于同一层级,反而被当成了容器的独立属性,导致YAML结构混乱。

修复后的配置

调整PURPOSE变量的缩进,让它成为env数组的一员,和渲染出的环境变量条目对齐:

apiVersion: apps/v1 

kind: Deployment
metadata:
  name: {{ .Values.scheduler.name }}
spec:
  selector:
    matchLabels:
      app: {{ .Values.scheduler.name }}
  template:
    metadata:
      labels:
        app: {{ .Values.scheduler.name }}
    spec:
      containers:
      - name: {{ .Values.scheduler.name }}
        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
        ports:
          - containerPort: {{ .Values.scheduler.targetPort }}
        imagePullPolicy: Always 
        env: 
          {{- toYaml .Values.envVariables | nindent 10 }}
          - name: PURPOSE 
            value: "SCHEDULER"

关键说明

  • 原代码中- name: PURPOSE和env:处于同一层级,YAML解析器会把它识别为容器的新属性,而非env数组的元素,这是错误的核心原因。
  • 调整缩进后,PURPOSE变量和values.yaml中读取的环境变量同属env数组,结构符合Kubernetes YAML规范,解析即可正常完成。

内容的提问来源于stack exchange,提问作者Leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:01:07