Yoke
Yoke
软件
软件描述
Yoke 项目是一套用于以不同于现行方式处理包管理的工具。过去,Kubernetes 资源及其包的表示仅由 YAML 及 YAML 模板主导,如今我们能够使用代码进行工作,并受益于原生控制能力……
官方网站
访问软件的官方网站了解更多信息
yokecd.github.io
安全链接HTTPS
什么是 Yoke?
Yoke 项目是一套用于以不同于现有方式管理软件包的工具。过去,Kubernetes 资源及其包的表示形式仅由 YAML 及其模板主导,而现在我们可以通过代码进行操作,并利用原生控制流、类型检查、编译器保证、测试、代码检查工具等软件工程的基础工具。
它包含:
- 一个客户端包管理器,用于将代码包部署到 Kubernetes。
- 一个 ArgoCD 配置管理插件,使 ArgoCD 能够处理代码包。
- 一个服务端控制器,允许你创建自定义资源定义(CRD),在 Kubernetes 中原生表示包。
- Go 包,用于从 Helm Chart 迁移到 Yoke Flights(代码包)。
Yoke 与其他 Kubernetes 包管理器(如 Helm 和 Timoni)的主要区别在于其描述包的方式。在 Yoke 中,包被称为“飞行”(Flights),相当于 Helm 中的“图表”(Charts)。与 Helm 和 Timoni 使用 YAML、CUE 或其他数据/配置语言定义包不同,Yoke 采用通用编程语言来描述 Kubernetes 包。
在 Yoke 中,Flight 是生成目标 Kubernetes 资源(以 JSON 或 YAML 格式)并输出至标准输出的程序。Flight 通常被打包为 WebAssembly(wasm)可执行文件,Yoke 内嵌 Wazero——一个无依赖的 Go 语言 wasm 运行时——来执行这些程序。
共享包即共享代码。包组件可通过各自语言生态系统的包管理器(如 npm、cargo 或 Go modules)分发和版本化。任何可编译为 wasm 的语言在 Yoke 中均获得第一类支持。若所选语言无法编译为 wasm,仍可调用程序并将输出直接传给 Yoke,但该方法存在局限性,包括潜在的可移植性和安全问题。
