我正在为Kubernetes部署创建Helm Chart(v3)。 在deployment.yaml中,我定义了一些环境变量
spec:
...
env:
- name: GRAPHITE_ENABLED
value: {{ .Values.env.graphiteEnabled }}
- name: GRAPHITE_HOSTNAME
value: {{ .Values.env.graphiteHostname }}
,并在values.yaml中指定这些环境变量的值
env:
graphiteEnabled: "false"
graphiteHostname: "localhost"
使用此命令运行图表时
helm install --debug api-test ./rest-api
引起以下错误:
错误:不能将版本“ v1beta1”中的部署视为部署:v1beta1.Deployment.Spec:v1beta1.DeploymentSpec.Template:v1.PodTemplateSpec.Spec:v1.PodSpec.Containers:[] v1.Container:v1。 Container.Env:[] v1.EnvVar:v1.EnvVar.Value:ReadString:期望为“或n,但找到f
答案 0 :(得分:0)
原来是由值"false"
引起的。
在--dry-run
之后,我看到生成的值的输出是
- name: GRAPHITE_ENABLED
value: false
但是环境变量必须用引号定义。
使用quote
function作为values.yaml中的值可以解决此问题
- name: GRAPHITE_ENABLED
value: {{ .Values.env.graphiteEnabled | quote }}
产生了以下输出
- name: GRAPHITE_ENABLED
value: "false"