Skip to content

Releases: GaTTGeng/HelmSharp

HelmSharp 1.0.3

22 Jun 02:55

Choose a tag to compare

HelmSharp 1.0.3 is a patch release that fixes two parser bugs and achieves a major template rendering milestone.

🎉 Golden Test Milestone — 129/129 Templates (100%)

HelmSharp now renders all 129 templates across 5 real-world public Helm charts without a single parser exception:

Chart Version Templates Result
ingress-nginx 4.12.1 42/42
cert-manager 1.17.1 41/41
external-dns 1.21.1 7/7
podinfo 6.14.0 21/21
metrics-server 3.13.1 18/18
Total 129/129

A new golden test harness (RealChartGoldenTests) runs as part of CI to prevent regressions. Output is structurally comparable to helm template — remaining differences are at the YAML formatting and value-evaluation level, not the parser level.

Install

dotnet add package HelmSharp.Action --version 1.0.3

NuGet Packages

Package Purpose
HelmSharp.Action High-level Helm client API and release operations.
HelmSharp.Chart Chart loading, values merging, YAML helpers, and chart metadata.
HelmSharp.Engine Helm-style template rendering.
HelmSharp.Kube Kubernetes manifest apply, delete, and wait helpers.
HelmSharp.Release Helm release records backed by Kubernetes Secrets.
HelmSharp.Repo Chart repository index, pull, and search helpers.
HelmSharp.Registry OCI registry extension point package.
HelmSharp.Storage Release storage extension point package.
HelmSharp.PostRenderer Post-renderer extension point package.

Highlights

Parser Bug Fixes

  • #51SplitByTopLevel now tracks parentheses depth so | inside (...) is not treated as a pipeline separator. Fixes (empty .x) and ($value | quote | len) patterns in real charts.
  • #50 — else-if chain reconstruction now correctly produces balanced template blocks. C# string interpolation was producing single braces instead of double braces. Also preserves multi-branch else-if/else chains.

Engine Robustness

  • Render() now accumulates NotSupportedException per-template rather than failing on the first unsupported template.
  • Per-template variable isolation prevents := assignments from leaking across templates.
  • Better error messages: IncludeTemplate reports the template name, RenderSection reports the block expression.

Testing

  • Real-chart golden test harness comparing HelmSharp against helm template for 5 public charts.
  • 214 tests passing across net8.0, net9.0, and net10.0 (up from 203).

Full Changelog

See CHANGELOG.md for the complete list of changes.

Known Scope

HelmSharp implements a practical Helm-compatible subset. Advanced template functions, plugin behavior, provenance verification, OCI authentication flows, and uncommon Kubernetes resource wait semantics are tracked in the project milestones.

HelmSharp 1.0.2

22 Jun 01:19

Choose a tag to compare

HelmSharp 1.0.2 is a patch release with template engine improvements, SDK hardening fixes, and expanded test coverage.

Install

dotnet add package HelmSharp.Action --version 1.0.2

NuGet Packages

Package Purpose
HelmSharp.Action High-level Helm client API and release operations.
HelmSharp.Chart Chart loading, values merging, YAML helpers, and chart metadata.
HelmSharp.Engine Helm-style template rendering.
HelmSharp.Kube Kubernetes manifest apply, delete, and wait helpers.
HelmSharp.Release Helm release records backed by Kubernetes Secrets.
HelmSharp.Repo Chart repository index, pull, and search helpers.
HelmSharp.Registry OCI registry extension point package.
HelmSharp.Storage Release storage extension point package.
HelmSharp.PostRenderer Post-renderer extension point package.

Highlights

Template Engine Improvements

  • Built-in template objects fully aligned with Helm: .Chart, .Release, .Capabilities, .Files, .Template.
  • .Capabilities.APIVersions.Has method calls now work correctly, including on assigned variables, with proper arity validation.
  • Support for dependency aliases and subchart identity in rendered paths.
  • Chart file binary access via .Files.Get, .Files.GetBytes, .Files.Lines.

SDK Hardening (M6)

  • ApiVersionSet constructor validates non-null input and defensively copies the list.
  • Replaced placeholder extension point classes with named public interfaces.

Testing & Infrastructure

  • Helm CLI golden test harness for parity verification.
  • Baseline fixture charts covering minimal, multi-doc, helpers, notes, and builtins scenarios.
  • 203 tests passing across net8.0, net9.0, and net10.0.
  • Dependency updates: xunit.runner.visualstudio 3.1.5, Microsoft.NET.Test.Sdk 18.6.0, coverlet.collector 10.0.1, Microsoft.SourceLink.GitHub 10.0.300.

Full Changelog

See CHANGELOG.md for the complete list of changes.

Known Scope

HelmSharp implements a practical Helm-compatible subset. Advanced template functions, plugin behavior, provenance verification, OCI authentication flows, and uncommon Kubernetes resource wait semantics are tracked in the project milestones.

HelmSharp 1.0.1

17 Jun 16:20

Choose a tag to compare

HelmSharp 1.0.1 is the first public release of the managed Helm-style SDK for .NET.

Install

dotnet add package HelmSharp.Action --version 1.0.1

For lower-level scenarios, install the package that matches the layer you need.

NuGet Packages

Package Purpose
HelmSharp.Action High-level Helm client API and release operations.
HelmSharp.Chart Chart loading, values merging, YAML helpers, and chart metadata.
HelmSharp.Engine Helm-style template rendering.
HelmSharp.Kube Kubernetes manifest apply, delete, and wait helpers.
HelmSharp.Release Helm release records backed by Kubernetes Secrets.
HelmSharp.Repo Chart repository index, pull, and search helpers.
HelmSharp.Registry OCI registry extension point package.
HelmSharp.Storage Release storage extension point package.
HelmSharp.PostRenderer Post-renderer extension point package.

Highlights

  • Multi-target NuGet packages for net8.0, net9.0, and net10.0.
  • Managed chart loading from directories and .tgz archives.
  • Helm-style values merging and template rendering for common chart workflows.
  • Kubernetes release workflow APIs for install, upgrade, uninstall, rollback, status, history, manifests, values, hooks, and notes.
  • Chart repository helpers plus extension point packages for registry, storage, and post-renderer scenarios.

Known Scope

HelmSharp implements a practical Helm-compatible subset. It is not yet a byte-for-byte Helm CLI replacement, and advanced Helm template functions, plugin behavior, provenance verification, OCI authentication flows, and uncommon Kubernetes resource wait semantics may need additional work.

See the repository README and docs for examples, compatibility notes, and roadmap details.