有没有快速制作 helm chart 的工具?

2023-05-09 11:28:31 +08:00
 lambdazx

场景

最近需要做很多 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

想问下各位有没有其它更好的推荐?

1898 次点击
所在节点    Kubernetes
5 条回复
ni9ht
2023-05-09 11:51:09 +08:00
create 命令可以指定 -p, --starter ,通过脚手架快速创建 chart ,可以找一些符合你要求的脚手架或者自己封装一个。详情见官方说明: https://helm.sh/docs/helm/helm_create/
lambdazx
2023-05-09 12:28:24 +08:00
@ni9ht 感谢,这个有看过,能解决大部分问题。
不过编写 starter 也和写 chart template 差不多,还是有点复杂,更希望有一种工具或者 SDK ,能够用编程的方式抽象出来 API ,用来自动创建出 chart ,人工写 template 还是有点难受。
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 就行
lambdazx
2023-05-09 14:31:24 +08:00
@zhouu 这个不错,用 helm 的方式解决了问题,感谢。
iminto
2023-05-09 14:39:49 +08:00
以前还真干过用 java 代码结合模板引擎生成 helm 的事情,其实就是点体力活

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/938541

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX