v1.0.0
Changelog
Features
SecretKeyRotateaction (c01298a)- add
chart dependency updatecommand (70ab11c) - add
chart download/upload/archive commands(e783327) - add
chart lintcommand andLintaction (5672c82) - add
chart secret file encrypt/decrypt/editcommands (65d7127) - add
chart secret key create/rotatecommands (5979513) - add
chart secret values-file encrypt/decrypt/edit commands, move some secrets code from werf to pkg/secret (39777c6) - add
release getcommand andGetaction (bb496ee) - add
release historycommand (df782af) - add
release listcommand (1474b81) - add
release rollbackcommand (4af458b) - add
repo add/remove/update/login/logoutcommands (e917b65) - add
Rollbackaction (eb4ee7f) - add
SecretFileDecrypt/Encrypt/Editactions (a25566a) - add
SecretKeyoption to actions (10edcbd) - add
SecretKeyCreateaction (f75fd09) - add
SecretValuesDecryptaction (94b17f8) - add
SecretValuesFileEditaction (500abad) - add
SecretValuesFileEncryptaction (42bc967) - add
versioncommand (cf9a441) - add
werf.io/sensitiveannotation (7840c7c) - add Dockerfile for nelm CLI build and deployment (05f9e3b)
- add first original
chart dependency updateHelm command (47f774b) - add flag description wrapping in --help (34ccf2f)
- add more kube auth options to actions (b6e439d)
- add optional Chart.yaml fallbacks for name/apiVersion/version/appVersion if missing (a6ce234)
- add Plan() action (a86117f)
- add Printer for new Dynamic Tracker (a4337b0)
- add public Deploy() action (5176060)
- add release differ (96e8d25)
- add Render() action (79d212e)
- add some missing options to all cli commands (ce826b9)
- add Uninstall() action (77e9158)
- allow processing resources without cluster access (e300250)
- caching for kubernetes GET requests (293ca66)
- change cli commands layout and rename actions (ca201e7)
- change DeletePropagationPolicy from Auto to Foreground (67f4598)
- change some cli options (6e9cabe)
- colorize
chart renderoutput (17ab583) - colorize
release getcommand output (03c521d) - colorize
versioncommand output, refactor syntax highlighting (3c87b6c) - complete rework of managed fields handling + minor fixes (13d672d)
- deploy plan changes printing, improved logging (df454a0)
- deps: update Kubedog and Helm 3 (4ac00b8)
- detailed exit code option for planner (ab09d6c)
- enhance nelm CLI with new chart and release management commands (01a670e)
- expose deployable resources from resource processor (9b36985)
- ExternalSecret CR tracking works again (247bf72)
- group options in --help (aa48edf)
- helm new deploy core v2 (52b5648)
- hide sensitive Secret's diff (7211e3c)
- implement nelm CLI with core commands and update README (a553eeb)
- improve --help structure and formatting (e903aa1)
- improve log coloring (4351445)
- make env vars in --help more readable (a54faa9)
- make Kube QPS and Burst limits configurable (5b5426e)
- migrate to new kubedog dynamic tracker (71c8ae0)
- new
werf.io/deploy-dependency-<name>annotation (8d464f9) - new experimental deploy engine (d770963)
- print templated manifests when they are invalid with debug logging enabled (1d995b5)
- priority sorting, improved formatting and grouping for commands lists in
--help(a5732c8) - remade all cli flags for all commands (ab77a18)
- remove excessive operations summary (95e0c82)
- remove mentions about Nelm being experimental and update README.md (164d465)
- rename
chart archivecommand tochart pack(8e2c3af) - replace --debug with --log-level (80b5d07)
- rework CLI (f7b518a)
- set cli flags via env vars and refactor flag management (2f428bb)
- skip removal of resources with missing/incorrect release annotations and labels (5a39613)
- stable resource sorting everywhere (ea2d973)
- update/sync all dependencies to github.com/werf/werf (fa47525)
- use improved custom syntax highlight theme for logs (8c558a3)
Bug Fixes
- "no matches for kind" when deploying CR for CRD from crds/ (8df83c8)
--color-modedoesn't work inchart rendercommand (348d3b3)$HOME is not definedandfunction werf_secret_file not defined(f60246d)SecretFileEditactionTempDirPathoption had no default (b562db1)- add
--log-leveltoversioncommand (aa3ab9c) - add chart, log, errors packages (a23b192)
- add global
actionLockdue to actions not be thread-safe (12131b7) - add History api (d6045a8)
- add info about options allowed values to
--help(96f92aa) - add new "skipped" release status (ce428fe)
- allow empty helm.sh/hook-delete-policy and werf.io/delete-policy (e3d1326)
- broken release manifests (d002c72)
- cannot deep copy *annotation.AnnotationReplicasOnCreation (77f475f)
- change default log levels for all actions (da4a0a2)
- change default log levels for all commands (7f0e29a)
- change package name to github repo (26f2d6a)
- change package name to github repo /2 (314e6b9)
- change params to comma-separated in
werf.io/deploy-dependency-...anno (8fccfc8) - claim ownership of kubectl edit'ed fields (321c57e)
- CLI build fails with
undefined: releaseNameStub(67a1fd3) - colorize warnings and errors (84cf471)
- corrupted revision number in errors (755a223)
- cosmetics (c7f020d)
- cosmetics (ce9fb45)
- decouple pkgs from resource classes, refactor tracker and waiter (ea441e1)
- dependencies could not find Apply vertices (e3cf591)
- dependency between ClusterRoleBinding in non-release namespace and ClusterRole not detected (30a4791)
- deploy graph cycle if same external dependency on multiple resources (befda66)
- deploy release builder to History api (33e4685)
- deployable general resources not patching correctly (62caec7)
- differ dry-run apply from real apply in logs (d2c6df5)
- disable rendering of subchart notes by default (14c2fa9)
- divide by zero error if 0 deployable resources (7a4126c)
- do not create internal dependency if pointing field is empty string (17cd652)
- embeed Lists transformer into resource processor (1800d8f)
- engine v2 fixes (72c09fd)
- env vars ignored for required cli options (658820a)
- error message 'annotation ... not found, must be set to ""' (3cc6d4f)
- errors count in progress report not updating (6a14413)
- External Secret CR readying when CR has no status (b7cbcc8)
- failure on first revision (ac4845b)
- field adoption didn't work if live resource up to date (606e0df)
- fix debug, fix noactivitytimeout for hooks (c56bea9)
- fix links in release message (3691943)
- get deployable resources race condition, improve GET caching (9f802d5)
- get rid of kubedog module replace (50a8e59)
- hangs on panic during operation execution (fea8447)
- helm debug logs printed on info level (f738a22)
- helm hooks with multiple pre/post conditions always skipped (0a4ad9b)
- hide CRDs create diffs from plan (c3d9bcb)
- hooks run twice (1cece09)
- ignore error "Additional property werf is not allowed" (9a8bbc0)
- ignore resource API Version in its ID (5d786ea)
- improve logging (b405dfc)
- initial resource status should be "unknown" instead of "created" (b1ce7af)
- initialize Nelm as a package (2a206e3)
- invalid labels/annotations silently remove all user labels/annotations for the resource (215b579)
- Jobs not failing on errors (85bdffb)
- locker: replace panic with error and add details for lost lease case (e553a09)
- minimize DeepCopying while processing resources (72347ab)
- minor cli and action api changes (a351452)
- missing filepath for hooks (e5188c9)
- multiple delete policies ignored (82d624e)
- new "resource" package, will replace "resource" and "annotation" (7565cc3)
- no need for field-manager to be configurable (2addfc9)
- no need for field-manager to be configurable /2 (27b50f0)
- no need for field-manager to be configurable /3 (eb9955f)
- no resources deleted in uninstall if pre-delete hook present (5f1da12)
- numerous bugs in new flag handling (cf8884e)
- occasional panics on logging (a36c897)
- panic connecting internal dependencies (4818eaf)
- panic if replicas null (303f19a)
- panic in
release deploy(c4947d3) - panic in auto internal deps when invalid manifest (b60fbcc)
- panic with external-dependency namespace annotation (98f3b27)
- panic with werf.io/replicas-on-creation (c229357)
- parallel GET/dry-APPLY finishing before results received (e24a1ee)
- plan build error not showed and deploy graph not saved (55e3725)
- plan:
hidden sensitive outputmessage for Secrets even if no sensitive changes (e6e7926) - process rollback hooks too (6af6002)
- refactor Waiter API (61695d9)
- refactor: new Resource(s), Release, History, ResourcePreparer, KubeClient classes (9e4dca4)
- release namespace and hook never deleted (except recreation) (42c9e85)
- remove "..." from log messages (ba0c9c8)
- remove default stubs from --release-name and --namespace flags (06ae5e1)
- remove trailing space from NOTES.txt (27e5085)
- removing chart values with null (a630e78)
- replace strategic patch with merge patch (38d3cbd)
- resources always rendered in no cluster mode (090b0d1)
- return plan even on build error (46a88cd)
- rework release locking in Uninstall action (ef471b6)
- rollback plan error not showed (7573580)
- round down columns width to be safe (de630b1)
- run
chart lintin local mode by default (f385ca7) - show "insignificant changes" in plan if filtered resource diff is (5c3fba6)
- show live version instead of local for deleted resource diff (a66fa53)
- simplify executing operations log output (ed903da)
- steal managed fields from any manager with prefix "werf" (b780c05)
- switch to go 1.21 (44e573a)
- tracking might hang with track-termination-mode "NonBlocking" (c5759ee)
- trigger test release (d0fe732)
- trigger test release /2 (077682e)
- twice-deployed pre AND post hooks (d043cf1)
- update all Go modules (19e0cb5)
- update helm and kubedog modules (53edfcc)
- update helm dependency (1398f4a)
- update helm module (6375703)
- update jsondiff module (7009d6b)
- uppercase for STATE column in progress reports (1647b36)
- wip: new resource classes, new release class, history and (0ef680f)
Installation via trdl (with autoupdates)
- Install trdl client binary (preferably to
~/bin): https://github.com/werf/trdl/releases/latest - Add Nelm repository to trdl:
trdl add nelm https://storage.googleapis.com/nelm-tuf 1 2122fb476c48de4609fe6d3636759645996088ff6796857fc23ba4b8331a6e3a58fc40f1714c31bda64c709ef6f49bcc4691d091bad6cb1b9a631d8e06e1f308- Make
nelmbinary available in the current shell:
source "$(trdl use nelm 1 stable)"Direct installation (no autoupdates)
Download nelm binaries from here:
- Linux amd64 (PGP signature)
- Linux arm64 (PGP signature)
- macOS amd64 (PGP signature)
- macOS arm64 (PGP signature)
- Windows amd64 (PGP signature)
These binaries were signed with PGP and could be verified with the Nelm PGP public key. For example, nelm binary can be downloaded and verified with gpg on Linux with these commands:
curl -sSLO "https://storage.googleapis.com/nelm-tuf/targets/releases/1.0.0/linux-amd64/bin/nelm" -O "https://storage.googleapis.com/nelm-tuf/targets/signatures/1.0.0/linux-amd64/bin/nelm.sig"
curl -sSL https://raw.githubusercontent.com/werf/nelm/refs/heads/main/nelm.asc | gpg --import
gpg --verify nelm.sig nelm