仅用 20 行 TypeScript(Deno)就能代替 Kustomize

2023-02-13 20:48:13 +08:00
 james

公司重度使用 Kustomize 来管理所有的 Kubernetes 资源文件,代码库里有几百个目录和_kustomization.yaml_。但使用 Kustomize 有许多痛点,日益不满 Kustomize 中的黑魔法( hack )。另外,运维人员要求程序员写 Kustomize 自定义的垃圾「领域内语言」( DSL )真是对程序员的侮辱。

最后在某个周末,自己动手写出了KubeScript。它具有以下优点。

  1. 优良的编码体验,包括基于类型的代码补全和文档。
  2. 依托 TypeScript 的富表达力,便于构建可复用的模块,适于多团队的大型编程。
  3. 类型安全。

你也许会问,它与某某项目有什么区别?我都列在这个文档了。

此项目才开源不久,肯定有许多不足之外。

1810 次点击
所在节点    分享创造
7 条回复
defunct9
2023-02-13 21:11:27 +08:00
请问一下会有 node_module 弄一堆东西的现象吗
james
2023-02-13 21:12:12 +08:00
@defunct9 因为使用了 Deno 而不是 npm ,所以不会。
leozzf
2023-02-13 22:45:48 +08:00
Deno 的包管理是咋样的,跟 Java 差不多吗,一个 module 一个 zip ?
huijiewei
2023-02-13 23:06:56 +08:00
@leozzf 和 go 好像有点像
james
2023-02-13 23:50:51 +08:00
@leozzf 对,跟浏览器里加载 js 差不多。也类似 Go 的方式,直接引一个 URL 。非常简单又好用。你看这个[文件]( https://github.com/in-fun/KubeScript/blob/main/deps.ts) 就包括了 KubeScript 的所有外部依赖。
chronos
2023-02-15 17:33:38 +08:00
很有意思的项目,kustomize 的语法 hack 不好写。helm 虽然还可以,但始终是模板语法,自定义能力略弱。拿 helm 部署一整套微服务项目,写了一大堆的公共模板,相当麻烦。
killerirving
2023-02-16 14:52:09 +08:00
有点像 Pulumi ,楼主可以体验下

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

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

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

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

© 2021 V2EX