使用环境变量运行Helm Chart时出错

时间:2019-12-13 14:46:28

标签: kubernetes-helm

我正在为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

1 个答案:

答案 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"