if 语句出错

Jor*_*rdi 3 go-templates kubernetes kubernetes-helm

这是我的templates/deployment.yaml代码片段:

volumes:
  - name: notebooks
  {{- if .Values.persistence.enabled }}
    persistentVolumeClaim:
      claimName: "sdfsdf"
  {{- else }}
    emptyDir: {}
  {{- end -}}
  - name: logs
  {{- if .Values.persistence.enabled }}
    persistentVolumeClaim:
      claimName: "sdfsdfdsf"
  {{- else }}
    emptyDir: {}
  {{- end -}}
  - name: conf
  {{- if .Values.persistence.enabled }}
    persistentVolumeClaim:
      claimName: "sdfsdfsdfsdfsd"
  {{- else }}
    emptyDir: {}
  {{- end -}}
Run Code Online (Sandbox Code Playgroud)

目前,我得到:

& helm template zeppelin ./
Error: YAML parse error on zeppelin/templates/deployment.yaml: error converting YAML to JSON: yaml: line 95: block sequence entries are not allowed in this context
Run Code Online (Sandbox Code Playgroud)

它让我:

此上下文中不允许块序列条目

我尝试清理一下代码:

  volumes:
    - name: notebooks
      persistentVolumeClaim:
        claimName: "sdfsdf"
    - name: logs
      persistentVolumeClaim:
        claimName: "sdfsdfdsf"
    - name: conf
      persistentVolumeClaim:
        claimName: "sdfsdfsdfsdfsd"
Run Code Online (Sandbox Code Playgroud)

它是正确渲染的。

声明有什么问题吗if

edb*_*ead 5

您的 if/else 语句中有一些额外的修饰,会破坏 yaml 结构。

工作示例:

volumes:
  - name: notebooks
  {{- if .Values.persistence.enabled }}
    persistentVolumeClaim:
      claimName: "sdfsdf"
  {{- else }}
    emptyDir: {}
  {{- end }}
  - name: logs
  {{- if .Values.persistence.enabled }}
    persistentVolumeClaim:
      claimName: "sdfsdfdsf"
  {{- else }}
    emptyDir: {}
  {{- end }}
  - name: conf
  {{- if .Values.persistence.enabled }}
    persistentVolumeClaim:
      claimName: "sdfsdfsdfsdfsd"
  {{- else }}
    emptyDir: {}
  {{- end }}
Run Code Online (Sandbox Code Playgroud)

有关控制空白的更多信息请参见此处