Repository navigation
Sherpack v0.4.0
The "Helm-migration-ready" release. Closes the last hard blockers for
porting existing Helm charts (real lookup(), fromJson/fromYaml,
helm test runner, helm repo index equivalent), ships a dedicated
bilingual migration guide, and brings the Rust toolchain up to the
latest stable.
Added
- Cluster-aware
lookup()— Helm-compatible 4-arg signature
(apiVersion,kind,namespace,name). Returns{}during
sherpack template(deterministic, GitOps-safe), reads the live
cluster duringsherpack install/sherpack upgrade. Per-call
timeout (default 5 s, configurable viaSHERPACK_LOOKUP_TIMEOUT_SECS),
per-render cache, and aggregatedtracing::warn!notices when a
non-empty result is consumed. The Helm chart converter now preserves
lookup(...)calls instead of rewriting them to{}. Dedicated
user guide atdocs/LOOKUP.md. fromJson/fromYamlfilters and global functions — parse
inline JSON or YAML strings into values. Available as both
value | fromjsonandfromjson(value)to match Helm idioms.sherpack test <release>— runs thetest-phase hooks of the
latest stored release against the cluster. Reports per-hook PASS/FAIL
with duration; exits non-zero on any failure.sherpack repo index <DIR>— generates a Helm-compatible
index.yamlfrom a directory of*.tgzarchives. Supports
--url <BASE>to prepend an absolute URL and--merge <PATH>to
add only new entries to an existing index.sherpack completion <SHELL>— emits a shell-completion script
forbash,zsh,fish,powershell, orelvish(via
clap_complete).- Structured logging — the CLI installs
tracing-subscriberwith
EnvFilter. Default level showswarnfor sherpack crates and
silences noisy deps;--debugraises sherpack crates todebug,
andRUST_LOG=...overrides as expected. - Bilingual Helm-to-Sherpack migration guide in the Docusaurus
site (/migrating-from-helm, EN + FR), with animated terminal
hero, SVG migration-flow diagram, syntax cheat sheet, command
equivalence table,lookup()lifecycle SVG, parity matrix,
gotchas, FAQ, and CTAs. - Dedicated
docs/LOOKUP.mduser guide covering modes, return
shapes, caching, timeouts, GitOps caveats, and migration patterns. - Sherpack branding in the Docusaurus site — replaces the default
Docusaurus logo and favicon with a custom 3-chevron mark in the
Terminal Noir cyan palette.
Changed
- Bumped Rust MSRV from 1.88 to 1.95 (latest stable, January 2026).
Enginebuilder gainswith_cluster_reader(reader)and a
lookup_state()accessor; the registeredlookupfunction picks
up the reader when present and falls back to a no-op{}otherwise.KubeClientno longer holds a long-livedEngine— install /
upgrade build a per-render engine viaengine_with_lookup()so each
operation gets a fresh cache and reader.- Dependency updates (deps batch #48 and individual merges):
kube2.0 → 3.1,k8s-openapi0.26 → 0.27,rand0.9 → 0.10
(withRngExtimport fix),jsonschema0.38 → 0.45,rusqlite
0.38 → 0.39,minisign0.8 → 0.9,react-dom19.2.3 → 19.2.4
(website),@easyops-cn/docusaurus-search-local0.52.2 → 0.55.1
(website),actions/download-artifactv7 → v8 (CI). - Documentation overhaul —
HELM_COMPARISON.md,
HELM_FEATURE_GAP_ANALYSIS.md, andKILLER_FEATURES.mdreconciled
against actual code state; per-feature status (🟢 / 🟡 / 🔴) added
toKILLER_FEATURES.mdto stop reading like marketing. Test counts
refreshed everywhere (685 passing, 0 failing across 6 crates).
Fixed
clippy::explicit-counter-loopinsherpack-engine/src/error.rs
(calculate_spannow usesenumerate()).clippy::unnecessary-sort-byacross all storage drivers
(sort_by_key(|r| Reverse(r.version))instead of manualcmp).- Typo in installation docs:
sherpack completions→
sherpack completion(matches the actual command name).
Internal
- 685 tests passing (up from 654 at 0.3.0): added 8 cluster-reader
tests, 7 fromjson/fromyaml tests, 4 transformer tests for the
preservedlookup, 6 KubeClusterReader tests, 3 integration tests
forrepo index, plus the engine/lookup integration tests. - Added
tracingtosherpack-kubeandtracing+tracing-subscriber
tosherpack-cli.
Installation
Download the appropriate binary for your platform below, then:
# Linux/macOS
chmod +x sherpack-*
sudo mv sherpack-* /usr/local/bin/sherpack
# Verify
sherpack --versionChecksums
SHA256 checksums are provided in checksums.txt.