Helm 升级失败并出现错误:期望“或 n,但发现 t

van*_*ert 10 kubernetes-helm

我正在尝试向我的 helm chart 添加一个新 pod,它通过了验证(helm lint)但在部署的最后阶段失败:

Mon Dec 16 10:01:58 2019 INFO running helm install/upgrade for xyz-stg
UPGRADE FAILED 错误:“”无效:补丁:无效值:“{\”apiVersion\”:\“apps/v1\”,\ "kind\":\"Deployment\",\"metadata\"
(...)
ReadString: 期望 " 或 n,但发现 t,在 ...| 的 #10 字节中发现错误,"value":true} ,{"nam|..., 更大的上下文...|"value":"stg"}, (...)
错误:升级失败:“”无效:补丁:无效值:“{\”apiVersion\ ":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\": (...)
ReadString: expects " or n, but found t, error found in #10 byte ...|,"value":true},{"nam|...,更大的上下文 ...|"value":"stg"}, (...) Mon Dec 16 10:02:09 2019 错误 xyz-stg 的升级/安装失败

我不知道这个错误是什么意思,也不知道如何调试它。这听起来像是一些语法缩进错误,但我所做的只是:从其他工作 pod 复制粘贴 pod 配置并更改所有名称。

小智 10

我遇到了类似的问题,显然 Kubernetes 的 Pod 规范要求将环境变量值强制转换为字符串,因此整数需要通过引用deployment.yaml传递。以下。

value: {{ .Values.environment.TEMP | quote}}
Run Code Online (Sandbox Code Playgroud)

在那之后它会工作得很好。希望能帮助到你

  • 我发现“True”或“False”值也需要引用 (3认同)

小智 5

添加双引号并使用以下更改更新 deployment.yaml

在 deploymeny.yaml 文件中

        value: {{ .Values.environment.TEMP }}
        value: {{ quote .Values.environment.TEMP }}
Run Code Online (Sandbox Code Playgroud)

在 Values.yaml 文件中

环境:TEMP:“真实”