Skip to content

Install HelmSharp

HelmSharp targets net8.0, net9.0, and net10.0. Every package in an application should use the same HelmSharp version; the examples below use the current package release, 1.3.2.

Pick the smallest package for the job

You need to…InstallWhat it owns
Load a chart, merge values, and render YAMLHelmSharp.Chart and HelmSharp.EngineChart files, values, and template rendering.
Run template, install, upgrade, rollback, or history operationsHelmSharp.ActionThe high-level client and its dependent packages.
Apply YAML that is already renderedHelmSharp.KubeKubernetes apply, delete, identity, and readiness helpers.
Search, pull, or index traditional HTTP chart repositoriesHelmSharp.RepoRepository configuration, cache, search, and pull operations.

Most services that own a deployment start with HelmSharp.Action:

powershell
dotnet add package HelmSharp.Action --version 1.3.2

A preview tool should depend on the smaller rendering pair instead:

powershell
dotnet add package HelmSharp.Chart --version 1.3.2
dotnet add package HelmSharp.Engine --version 1.3.2

HelmSharp.Action already references the rendering, Kubernetes, release, repository, storage, registry, and post-renderer packages. Do not add those packages separately unless your code needs their lower-level APIs.

What HelmSharp needs at runtime

Rendering needs a readable chart directory or .tgz archive. It does not invoke, bundle, or require the helm executable.

Cluster-changing operations need the same prerequisites as any Kubernetes .NET client: a reachable API server, credentials, and RBAC permissions for the resources and release Secrets they manage. Supply these through your application's IHelmOptionsProvider and request objects; do not make a web request choose arbitrary local kubeconfig paths.

Verify the installation

Follow Render a chart for a program that reads a local chart and writes manifests to standard output. If the application will deploy, continue with Install and upgrade releases to put dry-run and result handling around that operation.

Direct-use packages

These packages are usually extension points, not first choices for an application:

PackageUse it directly when…
HelmSharp.ReleaseYou need the release model or store independently of HelmClient.
HelmSharp.StorageYou are implementing a custom IHelmReleaseStore.
HelmSharp.PostRendererYou are implementing a deterministic manifest transformation.
HelmSharp.RegistryYou are integrating an experimental OCI registry client.

Their package pages document the contracts and current limitations.

Released under the MIT License.