我正在为我想要在 k8 集群中运行的作业创建一个 helm 图表。当您执行
helm create
时,它会创建我不需要的模板。
$ helm create new-job
Creating new-job
$ tree new-job/
new-job/
├── Chart.yaml
├── charts
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── hpa.yaml
│ ├── ingress.yaml
│ ├── service.yaml
│ ├── serviceaccount.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
3 directories, 10 files
有没有办法只创建只包含 job.yaml 的模板?
Helm 可以选择使用自定义“启动器”:
helm create --starter /path/to/starter/chart my-chart
helm create
没有什么神奇的。 只要图表有 Chart.yaml
文件 和 templates
子目录,Helm 就可以安装它。 如果您愿意,您可以 mkdir
一个空目录并使用您最喜欢的文本编辑器从头开始创建 Chart.yaml
文件。
# Chart.yaml, with only the required fields
apiVersion: v2
name: my-chart
version: '0.0.1'
mkdir my-chart; cd my-chart
$EDITOR Chart.yaml
mkdir templates
$EDITOR templates/job.yaml
helm install --generate-name .
你也可以往另一个方向走;从
helm create
模板开始,删除所有不需要的部分。 值得注意的是,您可能需要保留 _helpers.tpl
中的一些通用有用的内容。 (事实证明,保留 ServiceAccount 在某些情况下很有用,如果您使用 Istio,即使您不接受入站连接,它也希望您拥有一个 Service。)