Releases: GaTTGeng/HelmSharp
HelmSharp 1.0.3
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.3NuGet 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
- #51 —
SplitByTopLevelnow 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 accumulatesNotSupportedExceptionper-template rather than failing on the first unsupported template.- Per-template variable isolation prevents
:=assignments from leaking across templates. - Better error messages:
IncludeTemplatereports the template name,RenderSectionreports the block expression.
Testing
- Real-chart golden test harness comparing HelmSharp against
helm templatefor 5 public charts. - 214 tests passing across
net8.0,net9.0, andnet10.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
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.2NuGet 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.Hasmethod 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)
ApiVersionSetconstructor 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, andnet10.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
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.1For 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, andnet10.0. - Managed chart loading from directories and
.tgzarchives. - 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.