CLI Flag Parity with Helm
The jhelm CLI mirrors the Helm command set and, for the common lifecycle commands, the common
flags — so most helm scripts run against jhelm with little or no change. This page maps the
flags Helm users reach for most to their jhelm equivalent, and lists the gaps honestly.
Status legend: ✅ same flag · ✎ supported but differs (see note) · ✗ not yet supported.
1. install / upgrade
| Helm flag | jhelm | Notes |
|---|---|---|
|
✅ |
Defaults to |
|
✅ |
|
|
✅ |
|
|
✅ |
Bare |
|
✅ |
Waits for all resources, including Jobs (Helm needs |
|
✎ |
Takes seconds (e.g. |
|
✅ |
|
|
✅ |
|
|
✅ |
|
|
✅ |
|
|
✅ |
|
|
✅ |
|
|
✅ |
|
|
✅ |
|
|
✅ |
Delete-and-recreate strategy: existing resources are deleted before the new manifest is applied. May cause downtime or data loss for stateful resources — use with care. |
|
✅ |
Accepted for Helm compatibility; implies |
|
✅ |
|
|
✅ |
Fetch the chart by name with |
|
✅ |
Omit the NAME positional and pass |
|
✅ |
Custom release description stored on the release (falls back to |
|
✅ |
|
|
✅ |
Custom description for the new revision (falls back to |
|
✅ |
|
|
✅ |
Sets a fully literal string value (no coercion/comma/escape handling), applied last; also on |
|
✅ |
Updates a local chart’s |
2. uninstall
| Helm flag | jhelm | Notes |
|---|---|---|
|
✅ |
|
|
✅ |
|
|
✅ |
|
|
✅ |
Reports what would be uninstalled without deleting resources or touching history. |
|
✅ |
Blocks until the release’s resources are gone from the cluster (polls each resource). |
|
✅ |
|
|
✅ |
Custom description stored on the release when |
3. list
| Helm flag | jhelm | Notes |
|---|---|---|
|
✅ |
|
|
✅ |
|
|
✗ |
List is per-namespace for now. |
|
✗ |
4. rollback / status / history
| Command | Helm flag | jhelm |
|---|---|---|
rollback |
|
✅ |
rollback |
|
✅ |
status |
|
✅ |
status |
|
✗ |
history |
|
✅ |
On rollback: --force delete-and-recreates the target revision’s resources, --cleanup-on-fail
deletes any resources created during a failed rollback, and --recreate-pods triggers a rolling
restart of the release’s workloads (Deployments/StatefulSets/DaemonSets) via a restart annotation.
--wait-for-jobs extends --wait to also block on Job completion.
status -o json|yaml emits the Helm-shaped release object (nested info, plus a resources
array when --show-resources is set); history -o json|yaml emits the Helm history array.
5. get
get values, get manifest, get notes, get hooks, get metadata, get all all take
-n/--namespace and --revision; get values and get metadata take -o/--output
(yaml/json), and get values takes -a/--all. This mirrors Helm’s get subcommands.
6. template
jhelm template renders to stdout like helm template, and emits a Helm-style
# Source: <chart>/templates/<file> marker before each document, so the output records which
template produced each manifest.
| Helm flag | jhelm | Notes |
|---|---|---|
|
✅ |
Repeatable; keeps only documents rendered from the named template(s) (e.g. |
|
✅ |
Writes each document to |
|
✅ |
Drops documents carrying a |
|
✅ |
Prepends the chart’s top-level |
|
✅ |
Renders with |
7. repo / registry / pull
| Command | jhelm | Notes |
|---|---|---|
|
✅ |
|
|
✅ |
Machine-readable repo listing ( |
|
✅ |
Machine-readable Artifact Hub results. |
|
✅ |
Refreshes all repos, or the named ones. |
|
✅ |
Persisted into |
|
✅ |
|
|
✅ |
Like Helm, |
|
✅ |
Configure the login-time validation handshake (skip TLS verify, plain HTTP, custom CA, and client mTLS). Matching Helm, they are used only for the handshake and are not persisted. |
|
✅ |
|
|
✅ |
Pull a chart directly from a repository URL with inline credentials, without a prior |
|
✅ |
Unpacks the fetched chart into |
|
✅ |
Fetches the chart’s detached |
|
✗ |
Prerelease/latest-version resolution is not yet implemented (jhelm requires an explicit |
8. package / show / lint / version
| Command | jhelm | Notes |
|---|---|---|
|
✅ |
Stamp the packaged chart’s version/app-version — rewrites the |
|
✅ |
Updates the chart’s |
|
✅ |
Show a chart pulled from a repository (registered |
|
✗ |
Prerelease/latest-version resolution is not yet implemented (needs an explicit |
|
✅ |
|
|
✅ |
Go-templates the version output against |
9. Global flags
Helm’s persistent flags are accepted on every command (before or after the subcommand),
matching helm. They configure beans that are built at startup, so jhelm resolves them from
the command line before the application context is created.
| Flag | jhelm | Notes |
|---|---|---|
|
✅ |
Path to the kubeconfig file. |
|
✅ |
Select a context from the kubeconfig (loaded from |
|
✅ |
Override the Kubernetes API server address resolved from the kubeconfig. |
|
✅ |
Path to the OCI registry auth file ( |
|
✅ |
Path to |
|
✅ |
Path to the repository index cache directory. |
|
✅ |
Enable verbose (debug) logging. |
These flags are equivalent to the corresponding jhelm.* Spring properties / environment
variables (e.g. --kubeconfig ⇔ jhelm.kubernetes.kubeconfig-path); the inline flag takes
precedence. Because they configure startup beans, an invalid value (e.g. a --kubeconfig
pointing at a missing file, or an unknown --kube-context) fails at startup rather than when
the cluster is first used.
10. Porting a Helm script to jhelm
Most scripts work unchanged. Watch for these deliberate differences:
-
Namespace — jhelm defaults to
default; pass-nexplicitly (jhelm does not read the kube-context namespace or$HELM_NAMESPACE). -
--timeout— jhelm expects seconds (--timeout 300), not a Go duration (5m0s). -
--dry-run— use the bare flag; the=client|servervalue form is not parsed. -
Output —
-o table|json|yamlis supported onlist,get values,get metadata,status,history,install,upgrade,repo list, andsearch hub, producing Helm-shaped output for scripts and agents. Commands where Helm has no-o(template,get manifest/notes/hooks) don’t add one.
11. Other known gaps
Beyond the per-command tables above, these commonly-used Helm options are not yet wired (tracked for follow-up):
-
install/upgrade—upgrade --cleanup-on-fail. (install-from-repo--version/--repo/--username/--password+ TLS is supported;-g/--generate-nameoninstall;--description/--labels/--set-literal/--dependency-updateon both.) -
pull/show—--devel(prerelease/latest-version resolution).pull--untar/--untardirand--verify/--prov/--keyring, andshow--version/--repo/auth, are supported. (registry loginnow validates credentials against the registry and honors its TLS/transport flags, matching Helm.)
For sharing repositories, registry credentials, and releases with the helm binary itself, see
Interoperability with Helm.