v1.14.0

The v1.14.0 release is a quarterly Crossplane release.

Read the Crossplane announcement blog.

๐ŸŽ‰ Highlights

๐Ÿšจ Warnings and breaking changes

  • Crossplane Helm images have moved from index.docker.io to xpkg.upbound.io. Images are still published to index.docker.io but is moving to only publish on xpkg.upbound.io in a future release.
  • Changes to TLS certificates. Existing users of external secret stores need to manually update their TLS certificates. Read Crossplane issue #4565 for more information.
  • Removed Vault support for External Secret Stores. Crossplane suggests using the ESS Plugins as a replacement.
  • Removed the controllerConfigRef from the Configuration package and package revision APIs.
  • The introduction of the new Crossplane CLI deprecates the existing kubectl crossplane plugin.
  • The v1beta1 implementation of Composition Functions is incompatible with existing v1alpha1 functions.

๐Ÿ’ก New features

What’s new in v1.14.0

Crossplane CLI

Crossplane v1.14 introduces a rebuilt Crossplane CLI.

The Crossplane CLI provides features to help troubleshoot Crossplane resources, build and publish Crossplane packages and locally test composition functions.

Read the CLI documentation for information on installing and the full set of supported features.

Real time Compositions

This release adds the alpha feature “real time compositions” to Crossplane.

Real time compositions allow Kubernetes to immediately notify Crossplane of changes to composed resources. Crossplane doesn’t need to poll resources to determine their state.

Real time compositions dramatically speed up the time Crossplane reacts to changes or failures of managed resources.

The real time compositions feature is an alpha feature and isn’t enabled by default.

The Crossplane pods documentation has more information about real time compositions.

Ordered resource deletion

Crossplane introduces a new usages type to prevent resources from deletion or to ensure deletion happens in the correct order.

A Usages defines a dependency mapping between a resource and any dependencies. Crossplane can’t delete the parent resource until after deleting the child resource.

A usage also allow Crossplane to prevent accidental deletion of a resource.

The usage feature is an alpha feature and isn’t enabled by default.

The Usages documentation provides information on enabling and configuring Usages.

๐Ÿ—๏ธ Notable changes

Composition functions

v1.14 promotes composition functions to v1beta1 with a new, more scalable architecture for running functions.

Crossplane v1.14 includes CLI tooling, templates, SDKs, and documentation for building functions.

Several new functions available for the new architecture, including function patch and transform, function Go templating, and function cue.

Management policies enabled by default

Managed resource “management policies” moved to beta and are now enabled by default.

Object has been modified warnings

Crossplane changed the behavior causing the event message

cannot patch object: Operation cannot be fulfilled on compositenetworks.gcp.platformref.crossplane.io “test-network-d6xjh”: the object has been modified; please apply your changes to the latest version and try again`

Adding extra objects during Crossplane install

The Crossplane Helm chart now supports an extraObjects: [] array to install other Kubernetes objects during the Crossplane install.

Support for pausing other Crossplane objects

The Crossplane annotation crossplane.io/paused is now supported in Claims, Composites, Configurations, Functions and Provider objects.