进程内渲染
Web 服务、控制器、桌面工具、CI 扩展或内部平台都可以直接从 .NET 代码得到 Helm 风格输出。
你的 .NET 应用需要 Helm chart 的输出,但不希望在运行时依赖 helm 命令。常见场景包括部署预览、策略检查、GitOps 生成、内部平台发布、控制器渲染,或者任何需要先看清 YAML 再决定是否提交到集群的流程。
HelmSharp 提供的是托管 SDK 路径:加载 chart,构建 values,渲染 manifests;需要时再继续做 Kubernetes 发布操作。
var chart = await HelmChartLoader.LoadAsync("/charts/my-chart", ct);
var renderer = new HelmTemplateRenderer(chart, "demo", "default", values);
var manifests = renderer.Render();核心感觉就是这样:chart 进来,manifests 出去,全程在你的进程里。
需要 template、install、upgrade、uninstall、rollback、status、package、repo 等一组操作时,用 HelmSharp.Action。
using HelmSharp.Action;
var client = new HelmClient(optionsProvider);
var result = await client.TemplateAsync(new HelmTemplateRequest
{
ReleaseName = "demo",
Namespace = "default",
Chart = "/charts/my-chart",
SetValues = new Dictionary<string, string>
{
["image.tag"] = "1.2.3",
["replicaCount"] = "2"
}
});
Console.WriteLine(result.StandardOutput);optionsProvider 用来集中管理 namespace、field manager、kubeconfig 和环境策略,不需要在第一次阅读示例时展开。
大多数应用从高层包开始:
dotnet add package HelmSharp.Action如果只需要渲染,可以依赖更小的层:
dotnet add package HelmSharp.Chart
dotnet add package HelmSharp.Engine当前 golden suite 已经在 podinfo、metrics-server、external-dns、ingress-nginx 和 cert-manager 这 5 个公共 chart 上渲染 129/129 个模板,没有 parser exception。这是 HelmSharp 扩展兼容性的基线,不只是手写小样例。
目前已覆盖 chart 加载、values 合并、托管模板渲染、chart 打包、repository helper、Kubernetes apply/delete/wait helper,以及基于 Kubernetes Secrets 的 release history。
HelmSharp 仍然是边界清晰的 SDK。部分高级 Sprig 行为、精确输出格式、OCI 认证、provenance 校验、少见资源 readiness、插件执行等仍在计划或推进中。如果你的 chart 依赖某个 Helm 边缘行为,先看兼容性页面。