# Crossplane v2.4.0 - Product: Crossplane (https://whatsnew.fyi/product/crossplane) - Vendor: CNCF - Date: 2026-08-20 - Version: v2.4.0 - Original notes: https://github.com/crossplane/crossplane/releases/tag/v2.4.0 - Permalink: https://whatsnew.fyi/product/crossplane/releases/v2.4.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Watch required resources and reconcile XRs immediately when they change - **added** — Scale to zero for safe-start capable providers - **added** — Release artifacts that are vulnerability scannable - **changed** — Package revision names are now derived from both the package digest and the package's metadata.generation, so any change to a package's spec produces a new PackageRevision - **changed** — Package runtime objects are now applied with server-side apply under the pkg.crossplane.io/runtime field manager, replacing the previous merge patch applicator - **changed** — The RUNTIME printer column on ProviderRevision and FunctionRevision was renamed to RUNTIME-HEALTHY, and a new RUNTIME-ACTIVE column was added - **changed** — The type label on the engine_watches_started_total and engine_watches_stopped_total metrics changed from ComposedResource to Dependency - **removed** — The Crossplane CLI is no longer published to releases.crossplane.io - **fixed** — Changing a package's runtimeConfigRef now produces a new PackageRevision instead of reusing the existing revision with stale runtime settings - **fixed** — A field removed from a DeploymentRuntimeConfig is now removed from the live runtime object rather than lingering - **fixed** — Additions that Crossplane doesn't declare in runtime objects are left alone rather than replaced - **security** — Security fixes in Crossplane's Go toolchain and dependencies The `v2.4.0` release is a regular quarterly Crossplane release that is focused on maturing a number of key areas of functionality across the project, as Crossplane continues to become more capable, more reliable, and more performant for your production workloads. This release includes the ability to watch required resources and reconcile XRs immediately when they change, scale to zero for safe-start capable providers, release artifacts that are vulnerability scannable, and a wide range of fixes and reliability improvements. It also includes security fixes in Crossplane's Go toolchain and dependencies. #### 🚨 v1.20 end-of-life (EOL) November 2026 This v2.4 release marks the final release cycle where v1.20 will be maintained. **When v2.5 is released in Nov 2026, v1.20 will reach its EOL and no longer receive any support or maintenance by the Crossplane project**. Until that time, we will continue to provide critical fixes and security related dependency updates to v1.20. > [!IMPORTANT] > This EOL notice applies only to the v1.20 release. v1 legacy workloads like Claims and cluster scoped resources remain supported in Crossplane v2 through extensive [backwards compatibility support](https://docs.crossplane.io/latest/guides/upgrade-to-crossplane-v2/#legacy-resource-behavior). ##### Is your control plane ready for v2? Upgrading to Crossplane v2 does not require any migration as part of the upgrade process, with the exception of the minimal breaking changes explicitly called out in the [v2 documentation](https://docs.crossplane.io/latest/guides/upgrade-to-crossplane-v2/#removed-features). If your control plane is not affected by those changes, you can simply [upgrade to v2](https://docs.crossplane.io/latest/guides/upgrade-crossplane/) right away. To better assist Crossplane users in determining if their control planes are affected by any of the breaking changes in v2, we have released a v2 readiness checker tool in the v1.20 Crossplane CLI that can be invoked via `crossplane beta upgrade check`. You can read all about this tool in the following resources: * blog post: [https://blog.crossplane.io/v2-upgrade-check/](https://blog.crossplane.io/v2-upgrade-check/) * docs: [https://docs.crossplane.io/v1.20/cli/command-reference/\#beta-upgrade-check](https://docs.crossplane.io/v1.20/cli/command-reference/#beta-upgrade-check) * release notes: [https://github.com/crossplane/crossplane/releases/tag/v1.20.9](https://github.com/crossplane/crossplane/releases/tag/v1.20.9) ##### Crossplane Downstream Distributions Downstream distributions are eligible to continue their extended support and maintenance for their releases that are based on upstream Crossplane's v1.20. Check with your [vendor](https://www.crossplane.io/commercial) for more details if you are using a downstream distribution of Crossplane. #### 🚨 v2.4 Notable and Breaking Changes * ⚠️ The Crossplane CLI is no longer published to `releases.crossplane.io`. New CLI releases go only to `cli.crossplane.io`, under the binary name `crossplane` rather than `crank`. This completes the CLI's move to https://github.com/crossplane/cli, which was announced in the `v2.3.0` release notes and dual published to both locations for `v2.3.0` to ease the transition. * f you are using custom installation scripts or CI steps that download the CLI directly from `releases.crossplane.io`, update them to use `cli.crossplane.io`, and update any firewall or proxy rule that allows `releases.crossplane.io` to now allow `cli.crossplane.io` instead. * Users of the [`install.sh`](https://github.com/crossplane/crossplane/blob/main/install.sh) script as their installation procedure are unaffected. * The CLI now follows its own release schedule, so a CLI release will not accompany every core Crossplane release and the two version numbers have diverged. * Documentation and installation instructions for the Crossplane CLI can be found on https://doc _[Truncated at 4000 characters — full notes: https://github.com/crossplane/crossplane/releases/tag/v2.4.0]_