Timoni 是 Kubernetes 的包管理器,由 CUE 提供支持并受到 Helm 的启发。
Timoni 项目致力于改进编写 Kubernetes 配置的用户体验。Timoni 没有像 Helm 那样将 Go 模板与 YAML 混合在一起,也没有像 Kustomize 那样将 YAML 分层,而是依靠cuelang 的类型安全、代码生成和数据验证功能来提供创建、打包和向 Kubernetes 交付应用程序的更好体验。
概念
- 模块- 包含 Kubernetes CUE 模板和配置架构的应用程序定义,作为 OCI 工件分发。
- 实例- 引用 Kubernetes 集群上部署的模块和工作负载的应用程序实例化。
- Bundle - 将多个模块和配置捆绑到一个可部署单元中的应用程序组合。
- OCI Artifact - 用于将模块和捆绑包分发到容器注册表的打包格式。
应用程序打包和分发
Timoni 使软件供应商能够使用类型安全的 Kubernetes 模板和面向最终用户的丰富自定义选项来定义复杂的应用程序部署,打包为Modules 。
打包在模块中的应用程序配置 作为开放容器计划 (OCI) 工件分发,位于容器注册表中的应用程序映像旁边。Timoni 模块具有语义版本和加密签名。
借助 Timoni,平台工程师可以管理 Kubernetes 控制器的生命周期,包括 CRD 的升级。模块作者可以 从 YAML 文件导入 CRD 架构 ,并将 Kubernetes 自定义资源合并到其应用程序部署中。
应用程序生命周期管理
借助 Timoni,用户可以管理部署在 Kubernetes 上的应用程序的整个生命周期。从高度定制的安装到无缝升级、端到端测试、安全回滚和卸载。
借助 Timoni,用户可以将微服务和分布式单体捆绑到可部署单元中。Timoni Bundle提供了一种管理跨集群应用程序交付的声明式方法,其中机密和其他特定于环境的配置值在安装或升级期间动态加载。