werf new feature: Nelm as new deployment engine (v1.2.234+) #5657
Replies: 5 comments
-
The official name for werf's new deployment engine is Nelm. While it's a library internally used by werf now, we also plan to make it available as a standalone CLI tool. Some other new features implemented in Nelm (and, therefore, introduced in werf) include:
|
Beta Was this translation helpful? Give feedback.
-
werf uses Nelm by default in the Early Access release channel The new deployment engine (Nelm) is now enabled by default in the "ea" release channel. (You can find more details on our release channels here.) If you experience any issues with Nelm in werf, you may revert to the legacy deployment engine via Known issues:
To solve both of these issues, you need to fix your charts. |
Beta Was this translation helpful? Give feedback.
-
werf bundles now use Nelm by default As of werf v1.2.303 (alpha) released today, bundles ( Please feel free to report any issues you may encounter! You can temporarily switch to the old engine via |
Beta Was this translation helpful? Give feedback.
-
Nelm will be default in werf v2.0, not werf v1.2BrieflyIn werf 1.2, the new deployment engine (Nelm) will not be enabled by default. We rolled back its activation in alpha/beta/ea channels as well. You can turn it back on using Background & detailsThe reason for that is much more strict validation (primarily because of using Server-Side Apply), which cannot be disabled:
Therefore, instead of enabling the new engine by default in v1.2, we will enable it in werf v2.0 so that users can migrate in a planned and predictable manner. Note that We plan to release werf v2.0 having Nelm enabled by default in a few weeks. |
Beta Was this translation helpful? Give feedback.
-
As werf v2.0 is released, find more details regarding Nelm becoming the default and the only deployment engine in werf here: #6100 |
Beta Was this translation helpful? Give feedback.
-
Briefly
A new deployment engine (currently experimental) solves many of the old problems with deploys as well as adds a number of improvements.
This feature became available starting from werf v1.2.234, which is currently in the Alpha release channel.
Background & details
We have developed an alternative implementation of the deployment engine (it will become the default in the future) to solve many of the problems that have long plagued the deployment process and improve the extensibility of the existing code. It is fully backward-compatible with the old engine and Helm.
Here are some of the problems the new engine solves and the improvements it brings:
/crds
directories are now applied during release upgrades as well; on top of that, CRDs can also be upgraded if they already exist in the Kubernetes cluster;no matches for kind "Deployment" in version "apps/v1beta1"
that sometimes occur when upgrading Kubernetes, making it impossible to upgrade the release;werf converge
now outputs a report at the end, detailing what was actually done during the deployment.Configuration
How to enable the new engine? For werf v1.2.234 (currently available in Alpha) and newer, set the
WERF_EXPERIMENTAL_DEPLOY_ENGINE=1
environment variable andwerf converge
will use the new engine. No extra steps are required.Caution: The new engine is at an early stage of development and could theoretically have serious bugs, such as creating/updating/deleting resources that otherwise should not have been modified. It will take time for the engine to become stable. As an option, you can activate the experimental engine for deploying to the dev cluster only, keeping the old engine for the production cluster at this point.
You can track the progress of developing the new engine here: #5639
We would greatly appreciate your feedback as it will help us to make this new werf engine stable even sooner!
Beta Was this translation helpful? Give feedback.
All reactions