最近需要做很多 helm chart ,现在的制作流程如下:
helm create app
tree app
app
├── Chart.yaml
├── charts
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── hpa.yaml
│ ├── ingress.yaml
│ ├── service.yaml
│ ├── serviceaccount.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
4 directories, 10 files
然后手动删掉 templates 里面不需要的资源,或者添加一些需要的资源,比如 (statefulset ,rbac role, rolebinding )等等。
上述过程比较重复,而且要添加其他的资源特别麻烦,比如服务是 statefulset 或者 daemonset 部署的,就要把 deployment.yaml 删掉,在 statefulset 里面添加相关的模版。
手动做这些事情很没有效率,想问下有没有工具能够生成 helm chart 的工具?比如能提前定义 templates 里面需要的 K8s 资源,还有 values.yaml 里面字段的定义。
目前了解到这个 java 的库好像能做这个事情: https://dekorate.io/docs/helm 。
想问下各位有没有其它更好的推荐?
1
ni9ht 2023-05-09 11:51:09 +08:00
create 命令可以指定 -p, --starter ,通过脚手架快速创建 chart ,可以找一些符合你要求的脚手架或者自己封装一个。详情见官方说明: https://helm.sh/docs/helm/helm_create/
|
2
lambdazx OP @ni9ht 感谢,这个有看过,能解决大部分问题。
不过编写 starter 也和写 chart template 差不多,还是有点复杂,更希望有一种工具或者 SDK ,能够用编程的方式抽象出来 API ,用来自动创建出 chart ,人工写 template 还是有点难受。 |
3
zhouu 2023-05-09 14:08:07 +08:00
或者使用类似于 k8s-at-home 的 common chart? [bjw-s/helm-charts]( https://github.com/bjw-s/helm-charts) 提供 values 文件指定镜像、控制器、service 就行
|
5
iminto 2023-05-09 14:39:49 +08:00
以前还真干过用 java 代码结合模板引擎生成 helm 的事情,其实就是点体力活
|