The team behind Crossplane has announced the release of the latest version of the framework for building control planes. 

According to the project maintainers, Crossplane 1.14 is the biggest release of the project so far and introduces several new features that are targeted at benefiting platform engineers. The CLI was updated with several new commands that are useful in creating and managing control planes, such as “init” to initialize a new project, “build” and “push” to package and distribute to a registry, “install” to deploy the package into a control plane, “render” to test composition logic, and “trace” to examine live resources, which is helpful in root cause analysis. 

Of these, the maintainers believe “render” and “trace” are the most significant of these new commands. They explained that prior to this release there wasn’t a ton of support for testing compositions before they were deployed into live clusters. “Render” changes this by allowing developers to view the compositions they are working on, enabling them to verify if they are right before proceeding. The “trace” command also helps with the troubleshooting process because developers can investigate specific resources. 

Also in this release is a beta of Composition Functions, which allows developers to create custom logic using whatever language they want. The project also now comes with a few generic Functions, which eliminates the need to write code for those. 

“An entire ecosystem of reusable Functions will be available in the Upbound Marketplace that will address common scenarios not previously possible with traditional composition based on patch and transform abilities. This flexibility of writing your custom logic in a language of your choice or reusing general Functions from the ecosystem will unlock a wealth of new scenarios for people building control planes with Crossplane,” Jared Watts, co-creator, maintainer, and steering committee member of Crossplane, wrote in a blog post

This release also introduces the “Usage” API, which allows developers to declare dependency relationships between resources. The reason behind this is that sometimes when Crossplane cleans up resources, it may not get to all of them, resulting in “orphaned resources” being left behind. This happens when a dependent resource is deleted before the resource it depends on, leaving Crossplane unable to delete the remaining one. With the “Usage” functionality, the new dependency relationship will reason over the original deletion rules and prevent resources that are a dependency from being deleted. 

The next major release of Crossplane is expected in January 2024 and will include even more investments in developer experience that will improve the methods for building control planes.