模板渲染
你在解决什么问题
模板渲染把已加载的 Chart 和合并后的 values 转成 Kubernetes 清单。HelmSharp 在测试中用 Helm CLI 输出作为兼容性参照,而应用代码直接调用托管渲染器。
安装哪些包
powershell
dotnet add package HelmSharp.Chart --version 1.1.0
dotnet add package HelmSharp.Engine --version 1.1.0完整最小代码
csharp
public static async Task<string> RenderForTargetClusterAsync(
string chartPath,
CancellationToken cancellationToken)
{
var chart = await HelmChartLoader.LoadAsync(chartPath, cancellationToken);
var values = await HelmValues.BuildAsync(
chart,
valuesFiles: null,
valuesContent: null,
setValues: null,
setFileValues: null,
setStringValues: null,
setJsonValues: null,
cancellationToken: cancellationToken);
var renderer = new HelmTemplateRenderer(
chart,
releaseName: "preview",
releaseNamespace: "platform",
values: values,
kubeVersion: "1.30.0",
apiVersions:
[
"monitoring.coreos.com/v1",
"policy/v1"
],
isUpgrade: false);
return renderer.Render();
}关键 API 为什么这样用
HelmTemplateRenderer 向模板暴露 .Release、.Chart、.Values、.Capabilities、.Files、.Template、命名模板、include、tpl 和常见 Helm/Sprig 函数。kubeVersion 和 apiVersions 用于预览目标集群的输出。
生产环境注意事项
- 已知目标集群时显式传入
kubeVersion和apiVersions。 - 用户可见的说明用
RenderNotes()单独渲染。 - 使用
HelmClient.TemplateAsync且IncludeCRDs = true可获得类命令输出。
下一步
需要安装、升级、历史或回滚行为时阅读 发布工作流。