Skip to content

v2.0.0-alpha.1

Choose a tag to compare

@flant-team-sysdev flant-team-sysdev released this 30 Sep 08:31
· 52 commits to main since this release
188bc71

Changelog

⚠ BREAKING CHANGES

  • new major release 2.0

Features

  • ability to init ts files with WerfRenderContext type (#593) (4b90254)
  • action: return rendered resources from ReleaseInstall (#718) (312d2f2)
  • add --diff-patches and patches.yaml support (9241ea8)
  • add --lookup-resources flag for offline lookup in render/lint commands (#657) (a984242)
  • add renderPatches support for --patches/patches.yaml (#696) (191171c)
  • add werf.io/resource-policy annotation (5a2517f)
  • add automatic deploy dependency detection for KEDA ScaledObjects (#631) (6ccf7ec), closes #456
  • add case-insensitive-condition-tracking feature gate (3d2d2d0)
  • add case-insensitive-condition-tracking feature gate (5647588)
  • add DockerConfig flag (#605) (d0b1f53)
  • add feat gate to own deckhouse-controller fields (6092c11)
  • add LegacyPatches option for programmatic patches (#720) (8103cd3)
  • add LintMode in chart render options and pass it to the Helm engine (#695) (f5cff5a)
  • add option LegacyNoReleaseLock to install/uninstall/rollback actions (#656) (da9a86a)
  • adopt chart ts init for werf (#594) (671cf54)
  • allow to disable values schema validation (#616) (ec40944)
  • always track resource conditions case-insensitively (0585a1f)
  • bump default local kube version for rendering to 1.36.0 (2159f96)
  • case insensitive group/version/kind for deploy/delete-dependency (#626) (adf8a42)
  • clean null fields in rendered manifests by default for better compat (e9bbd6e)
  • deno runtime for typescript (#565) (942d8aa)
  • embed deno binary into release binaries behind embeddeno tag (cb96a15)
  • embed kubeconform validation schemas into the binary (#673) (f6ce79b)
  • enhance Deno embedding process and sync platform lists (615df53)
  • explain required install with no planned resource changes (cdbacfd)
  • explain required install with no planned resource changes (#645) (cdbacfd)
  • expose operation graph in progress report (#717) (7bf3d70)
  • expose plan artifact in actions api (#586) (1a42481)
  • expose the render context to render patches as jq variables (#727) (778e12c)
  • fail on invalid annotations or labels (#614) (a8c983f)
  • forbid resource recreation if helm.sh/resource-policy set (d1b6297)
  • improve runtime annotations and labels handling (#615) (73d4a88)
  • move repo commands from root to chart repo (#640) (ec0af5b)
  • native Chart v3 and Release v2 support (ae98e04)
  • new major release 2.0 (961ca04)
  • new release history (074d350)
  • port --lookup-resources and --no-create-namespace from main (#671) (0d2b4e0)
  • read release history as metadata instead of full bodies (#723) (0bbee61)
  • remove deprecated external dependencies annotations (#625) (8528a0a)
  • set default delete propagation policy to backgound (#623) (4a0b1e8)
  • speed up chart rendering by parsing each manifest once (#730) (40c15f4)
  • support authenticated secret values (#706) (16e45e2)
  • support external dependencies for deploy-dependency and delete-dependency annotations (#617) (581acf9)
  • switch to goccy/go-yaml and improve parse error context (#572) (826a6f7)
  • track managed-services.deckhouse.io resources (2dc75a3)
  • upgrade to helm v4.2.0 (#627) (ea85faf)
  • use transformers and patchers on rollback (#624) (18ad551)

Bug Fixes

  • --set-root-json not working (08c8522)
  • --set/set-file/set-string flags incorrectly split on commas (64ef060)
  • werf.io/deploy-dependency didn't work if no readiness operation in plan or if namespace=releasens (4c9dd90)
  • werf.io/resource-policy should only respect skip-delete from live (ddfb620)
  • accidental removal of unknown resource field managers (#580) (16b6e4c)
  • add SetupColorLevel function for enhanced logging color configuration (for werf) (#620) (438a1e2)
  • adopt managed fields after migration from helm to nelm (#582) (b9a9895)
  • autodetection of ServiceAccount dependencies for ClusterRoleBinding and RoleBinding resources (#632) (e9ea5da)
  • better error message when kube client request timed out (dc11213)
  • cleanup TODOs for major (#663) (8f85359)
  • clientFactory=nil breaks werf tests (7a758a4)
  • close LegacyReportCh on action return (#629) (78033c6)
  • correct fork:helm:sync task (74d3ea4)
  • create release namespace under strict RBAC, --no-create-namespace flag (#662) (3d389ef)
  • deploy ns on pre-pre-install stage (#630) (816d8c1)
  • don't block deploy when Helm managed fields reconstruction hits incompatible historical manifest (b684451)
  • don't hard-fail on unsupported env vars (7bc4769)
  • don't hard-fail on unsupported env vars (3651474)
  • exclude external dependencies from readiness forcing (b4771c6)
  • format taskfile (ee84ed7)
  • goroutine leak in watch error channel consumer for ReleaseInstall, ReleaseUninstall and ReleaseRollback (#585) (9fd804c)
  • hangs on very long pod log lines (#638) (6e75224)
  • harden deno embedding per review findings (62d593f)
  • HelmCompatibleTracking mode should allow annotations override (6c7e6f4)
  • helm: serialize action configuration initialization (#686) (ec98995)
  • ignore helm.sh(werf.io)/resource-policy: keep from cluster (79ce86a)
  • increase default webhook retry timeout (594eb86)
  • injected service values might break values.schema.json (1c5d25e)
  • make pods/controllers depend on rolebindings (#634) (233e123)
  • match more webhook errors to retry on them (6f90689)
  • no more "no match for resource kind" errors (679e6ec)
  • noop resources sent to legacyprogressreporter too (cb25490)
  • optimize release get (6707d35)
  • optimize memory usage of release list (#711) (2a19028)
  • optimize plan building for large releases (#709) (aba6e3a)
  • optimize validation args (9d04918)
  • panic if channel for legacy progress reporter closed (#618) (0e6945c)
  • pass NoPodLogs to kubedog (#621) (46e98e9)
  • pass NoPodLogs to kubedog (#622) (069609f)
  • pass option for yaml validator to allow duplicate map key (#584) (cd34ead)
  • pin deno digests in the repository instead of fetching them (4c91c3a)
  • prevent concurrent Helm configuration races (#688) (6f46733)
  • prevent panic when release deletion fails (#715) (4820837)
  • prevent progress printer race (#690) (0609686)
  • print engine.Render() result on debug level (#570) (9a7591e)
  • register go-client auth plugins (#670) (fec1159)
  • release had pending status after error instead of failed (#587) (ead2882)
  • remove support for all legacy HELM_* env vars (#611) (3a2264e)
  • remove unsupported os/arch from getDownloadLink (3abafee)
  • repair ai lookup tests after helm fork api changes (#676) (2a29517)
  • report the inaccessible events feed through the nelm logger (#713) (52bcdc9)
  • resolve issues after conflicts (d414ee7)
  • respect resource-policy skip-delete set on the live resource (#729) (57f1772)
  • restore DENO_EMBED_ROOT for werf (9b5af8d)
  • restore network parallelism when building resource infos (#708) (f10c001)
  • retry also on conversion webhooks unavailability (7f5713b)
  • retry on webhooks unavailable error (#600) (ccde5a1)
  • show actual error if webhook retries fail (17a4604)
  • simpler sorting for resources (55bc462)
  • skippable untouched resources check for progress reporter (#704) (0c56110)
  • switch managed-services.deckhouse.io readiness tracking to Available only (#700) (2c15572)
  • tracking absence for release namespace deletion (#571) (ed6e23e)
  • use v3 util for Chart.yaml load (1e1068f)

Miscellaneous Chores

Install via trdl (with autoupdates, highly secure)

  1. Install trdl client binary, preferably to ~/bin.

  2. Add Nelm TUF repository to trdl:

    trdl add nelm https://tuf.nelm.sh 1 2122fb476c48de4609fe6d3636759645996088ff6796857fc23ba4b8331a6e3a58fc40f1714c31bda64c709ef6f49bcc4691d091bad6cb1b9a631d8e06e1f308
  3. Make nelm binary available in the current shell:

    source "$(trdl use nelm 2 stable)"

Install binaries directly (no autoupdates)

Download nelm binaries from here:

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://tuf.nelm.sh/targets/releases/2.0.0-alpha.1/linux-amd64/bin/nelm" -O "https://tuf.nelm.sh/targets/signatures/2.0.0-alpha.1/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