Nelm
Nelm is a Helm 4 alternative. It is a Kubernetes deployment tool that manages Helm Charts and deploys them to Kubernetes. The Nelm goal is to provide a modern alternative to Helm, with long-standing issues fixed and many new major features introduced.
Install / Use
/learn @werf/NelmREADME
Nelm is a Helm 4 alternative. It is a Kubernetes deployment tool that manages Helm Charts and deploys them to Kubernetes. It is also the deployment engine of werf. Nelm does everything that Helm does, but better, and even quite some on top of it. Nelm is based on an improved and partially rewritten Helm codebase, to introduce:
terraform plan-like capabilities;- improved CRD management;
- out-of-the-box secrets management;
- advanced resource ordering capabilities;
- advanced resource lifecycle capabilities;
- improved resource state/error tracking;
- continuous printing of logs, events, resource statuses, and errors during deployment;
- fixed hundreds of Helm bugs, e.g. "no matches for kind Deployment in version apps/v1beta1";
- performance and stability improvements and more.
The Nelm goal is to provide a modern alternative to Helm, with long-standing issues fixed and many new major features introduced. Nelm moves fast, but our focus remains on Helm Chart and Release compatibility, to ease the migration from Helm.
Nelm is production-ready: as the werf deployment engine, it was battle-tested across thousands of projects for years.

Table of Contents
<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->- Install
- Quickstart
- CLI overview
- Helm compatibility
- Key features
- Usage
- Reference
werf.io/weightannotationwerf.io/deploy-dependency-<id>annotationwerf.io/delete-dependency-<id>annotation<id>.external-dependency.werf.io/resourceannotation<id>.external-dependency.werf.io/nameannotationwerf.io/ownershipannotationwerf.io/deploy-onannotationwerf.io/delete-policyannotationwerf.io/delete-propagationannotationwerf.io/track-termination-modeannotationwerf.io/fail-modeannotationwerf.io/failures-allowed-per-replicaannotationwerf.io/no-activity-timeoutannotationwerf.io/sensitiveannotationwerf.io/sensitive-pathsannotationwerf.io/log-regexannotationwerf.io/log-regex-for-<container_name>annotationwerf.io/log-regex-skipannotationwerf.io/log-regex-skip-for-<container_name>annotationwerf.io/skip-logsannotationwerf.io/skip-logs-for-containersannotationwerf.io/show-logs-only-for-number-of-replicasannotationwerf.io/show-logs-only-for-containersannotationwerf.io/show-service-messagesannotationwerf_secret_filefunctiondump_debugfunctionprintf_debugfunctioninclude_debugfunctiontpl_debugfunction
- Feature gates
NELM_FEAT_PREVIEW_V2environment variableNELM_FEAT_REMOTE_CHARTSenvironment variableNELM_FEAT_NATIVE_RELEASE_LISTenvironment variableNELM_FEAT_NATIVE_RELEASE_UNINSTALLenvironment variableNELM_FEAT_PERIODIC_STACK_TRACESenvironment variableNELM_FEAT_FIELD_SENSITIVEenvironment variableNELM_FEAT_CLEAN_NULL_FIELDSenvironment variableNELM_FEAT_MORE_DETAILED_EXIT_CODE_FOR_PLANenvironment variable
- More documentation
- Limitations
- Contributing
- Special thanks
- Future plans
Install
Follow instructions on GitHub Releases.
Quickstart
-
Create a directory for a new chart:
mkdir mychart cd mychart -
Create
Chart.yamlwith the following content:apiVersion: v2 name: mychart version: 1.0.0 dependencies: - name: cert-manager version: 1.13.3 repository: https://charts.jetstack.io -
Generate
Chart.lock:nelm chart dependency download -
Create
values.yamlwith the following content:cert-manager: installCRDs: true startupapicheck: enabled: false -
Deploy the first release:
nelm release install -n myproject -r myproject -
Plan the second release with an increased number of replicas, where only a single field in a single Deployment will be updated:
nelm release plan install -n myproject -r myproject --set cert-manager.replicaCount=2 -
Deploy the second release, where only the Deployment will be updated:
nelm release install -n myproject -r myproject --set cert-manager.replicaCount=2
CLI overview
Release commands:
release install Deploy a chart to Kubernetes.
release rollback Rollback to a previously deployed release.
release plan install Plan a release install to Kubernetes.
release uninstall Uninstall a Helm Release from Kubernetes.
release list List all releases in a namespace.
release history Show release history.
release get Get information about a deployed release.
Chart commands:
chart lint Lint a chart.
chart render Render a chart.
chart download Download a chart from a repository.
chart upload Upload a chart to a repository.
chart pack Pack a chart into an archive to distribute via a repository.
Secret commands:
chart secret key create Create a new chart secret key.
chart secret key rotate Reencrypt secret files with a new secret key.
chart secret values-file edit Interactively edit encrypted values file.
chart secret values-file encrypt Encrypt values file and print result to stdout.
chart secret values-file decrypt Decrypt values file and print result to stdout.
chart secret file edit Interactively edit encrypted file.
chart secret file encrypt Encrypt file and print result to stdout.
chart secret file decrypt Decrypt file and print result to stdout.
Dependency commands:
chart dependency download Download chart dependencies from Chart.lock.
chart dependency update Update Chart.lock and download chart dependencies.
Repo commands:
repo add Set up a new chart repository.
repo remove Remove a chart repository.
repo update Update info about available charts for all chart repositories.
repo login Log in to an OCI registry with charts.
repo logout Log out from an OCI registry with charts.
Other commands:
completion bash Generate the autocompletion script for bash
completion fish Generate the autocompletion script for fish
completion powershell Generate the autocompletion script for powershell
completion zsh Generate the autocompletion script for zsh
version Show version.
Helm compatibility
Nelm is built upon the Helm codebase with some parts of Helm reimplemented. It is backward-compatible with Helm Charts an
