Skip to content

架构

HelmSharp 是对部分 Helm 行为的托管 .NET 实现。它加载 Chart 输入、渲染模板,并且无需启动 helm 可执行文件即可驱动发布操作。

按操作责任选择层级

层级职责适用场景
HelmSharp.Chart加载 Chart 并合并 values。需要将 Chart 输入作为 .NET 对象处理。
HelmSharp.Engine将模板渲染为清单文本。应用需要预览、校验或提交 YAML。
HelmSharp.Action协调渲染、hook、Kubernetes 变更和 release 历史。服务负责安装、升级、回滚或卸载。
HelmSharp.Kube提交、删除和等待已有清单文本。已经拥有 YAML,不需要 Helm 生命周期行为。
HelmSharp.Release建模 release revision,并使用内置的 Secret 存储实现。需要 release 记录或默认 Kubernetes 持久化。
HelmSharp.Storage定义 release 存储扩展契约。要为自定义持久化实现 IHelmReleaseStoreIHelmReleasePurgeStore

数据流

仅渲染的应用使用 ChartEngine:加载 Chart、构造生效 values、配置 release 和 capabilities 输入,然后返回 YAML。不需要 Kubernetes 客户端或 release 记录。

生命周期应用从 HelmSharp.Action 进入。HelmClient 使用相同的 Chart 和渲染层,然后通过 Kube 执行 hook 和资源提交,并通过 Release 存储记录结果。这是部署服务应选择的层级。

为什么 HelmSharp 不启动 Helm CLI

进程内运行让应用获得强类型请求对象、直接错误处理、可控的存储和 HTTP 行为,也不依赖本地可执行文件。这不意味着 HelmSharp 是命令行模拟器。依赖 Helm 边缘行为前,请查看兼容性约定

后续阅读

基于 MIT License 发布。