我有一个非常基本的 Helm 库图表,只有 1 个文件:
├── Chart.yaml
├── charts
└── templates
├── _jobs.yaml
{{- define "library.jobs.tpl" -}}
apiVersion: batch/v1
kind: Job
metadata:
name: job-1
...
---
apiVersion: batch/v1
kind: Job
metadata:
name: job-2
...
---
apiVersion: batch/v1
kind: Job
metadata:
name: job-3
...
{{- end -}}
在下游图表中,我在
library.yaml
中这样使用它:
{{- template "library.jobs" -}}
问题是
helm template
仅渲染第一个文档/对象 (job-1
) 而不是其余的。
$ helm template -s templates/library.yaml .
---
# Source: mychart/templates/library.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: job-1
...
$
这是为什么呢?我是否遗漏了什么或者这是 Helm 中的潜在错误?
解决办法是
{{- define "library.jobs.tpl" -}}
---
apiVersion: batch/v1
所以我在模板定义的开头遗漏了一个
---
。