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.