第一次渲染
你在解决什么问题
如果应用只需要 Kubernetes YAML,用于预览、校验、策略检查、GitOps 或漂移检测,就先走只渲染路径。
安装哪些包
powershell
dotnet add package HelmSharp.Chart --version 1.1.0
dotnet add package HelmSharp.Engine --version 1.1.0完整最小代码
csharp
public static async Task<RenderedChartPreview> RenderFirstChartAsync(
string chartPath,
string valuesPath,
CancellationToken cancellationToken)
{
var chart = await HelmChartLoader.LoadAsync(chartPath, cancellationToken);
var values = await HelmValues.BuildAsync(
chart: chart,
valuesFiles: [valuesPath],
valuesContent: null,
setValues: new Dictionary<string, string>
{
["image.tag"] = "1.25.3",
["replicaCount"] = "2"
},
setFileValues: null,
setStringValues: null,
setJsonValues: null,
cancellationToken: cancellationToken);
var renderer = new HelmTemplateRenderer(chart, "demo", "default", values);
return new RenderedChartPreview(
Manifest: renderer.Render(),
Notes: renderer.RenderNotes());
}关键 API 为什么这样用
HelmChartLoader.LoadAsync 加载 Chart 元数据、values、templates、CRDs、文件、依赖和子 Chart。HelmValues.BuildAsync 按 Helm 风格合并 values。HelmTemplateRenderer.Render() 返回清单,RenderNotes() 返回 NOTES.txt。
生产环境注意事项
- 从服务边界传入绝对 chart 路径,便于复现问题。
- 保存每次预览使用的 values 输入。
- 排查差异时可使用 对比工具 或 Helm CLI 基准输出测试。
下一步
阅读 值配置(Values),正确建模用户覆盖项。