Choose a package and API
Choose packages by the operation your application needs to perform. Rendering loads chart content and values, then returns manifest text. Release operations also require Kubernetes credentials and maintain lifecycle history.
Choose by task
| Goal | Start with | Main types | Do not choose it when… |
|---|---|---|---|
| Render a chart | HelmSharp.Chart + HelmSharp.Engine | HelmChartLoader, HelmValues, HelmTemplateRenderer | The application must apply resources and record release history. |
| Expose Helm-style operations | HelmSharp.Action | HelmClient, IHelmClient, request objects, CommandResult | You only need YAML and want no Kubernetes dependencies. |
| Apply existing YAML | HelmSharp.Kube | KubernetesManifestApplier, KubernetesResourceWaiter, ManifestIdentity | You need Helm release state, hooks, or values merging. |
| Work with releases directly | HelmSharp.Release | Release model and Kubernetes-backed store | HelmClient already owns the whole workflow. |
| Maintain an HTTP chart repository | HelmSharp.Repo | HelmChartRepository, HelmRepoIndexer, HelmPullRequest | The requirement is complete OCI registry parity. |
| Transform manifest text | HelmSharp.PostRenderer | IPostRenderer | The transformation belongs in a chart template. |
High-level client or renderer?
Use HelmTemplateRenderer directly when an application exposes a rendering capability. It makes the operation visible in code: load the chart, compute values, configure capabilities, and return strings.
Use HelmClient when the public surface deliberately resembles a Helm operation. It returns CommandResult for template, package, repository, dependency, and lifecycle work, so an endpoint or CLI can expose standard output, standard error, and an exit code consistently.
var result = await client.TemplateAsync(new HelmTemplateRequest
{
ReleaseName = "preview",
Namespace = "platform",
Chart = chartPath,
ValuesFiles = ["values.production.yaml"],
KubeVersion = "1.30.0"
}, cancellationToken);
if (!result.Succeeded)
return Results.BadRequest(result.StandardError);
return Results.Text(result.StandardOutput, "text/yaml");Use the generated public API index
The generated pages list public types, properties, and methods from the current source tree. They are a name and source index, not full API reference documentation. Use the package guide to decide which abstraction belongs in your code, then use the listed source-file path to find the declaration in the repository for parameter-level detail.
| Package | Guide | Generated API |
|---|---|---|
HelmSharp.Action | Guide | API |
HelmSharp.Chart | Guide | API |
HelmSharp.Engine | Guide | API |
HelmSharp.Kube | Guide | API |
| Distribution and extensions | All package guides | All generated pages |
Template helper types under HelmSharp.Engine.Functions and HelmSharp.Engine.Utilities mainly exist to implement Helm/Sprig behavior. Application code should treat HelmTemplateRenderer as its renderer API and consult the function matrix before using a helper in a chart.