Crossplane v1.2.0

Crossplane v1.2.0 is now live and includes a number of minor improvements across composition, package management, and documentation. The community has also continued to grow over the past few months, leading to the implementation of well-defined standards and processes for on-boarding new GitHub organization members and contributors.

Specific improvements have been highlighted below, as well as a primer for the upcoming Crossplane Community Day at Kubecon EU!

Upgrading Crossplane

Since v1.0, Crossplane has maintained backwards compatible APIs and functionality. This means that the schema of any of the core v1 APIs can only be modified in a strictly additive manner. Because of Helm's limitations on updating CRDs, users have typically had to go through a two step process of first applying the new CRDs, then running helm upgrade. Thanks to changes in Crossplane's deployment model, users now only have to use the single helm upgrade command and Crossplane will manage installing or upgrading any CRDs to the appropriate version.

helm --namespace crossplane-system upgrade crossplane crossplane-stable/crossplane --version 1.2.0

Upgrading Packages

While the Crossplane package manager has always supported the ability to update installed Providers and Configurations, many users wanted to ability to do so directly with Crossplane's kubectl plugin. In the v1.2.0 release, both Providers and Configurations support kubectl crossplane <provider|configuration> update <name> <tag>, which allows easily selecting a package and updating its image to a different version.

Multi-Tenancy Guide

As part of documentation updates leading up to the v1.2.0 release, a new Multi-Tenancy Guide has been added. It describes various strategies for running Crossplane in multi-tenant environments, both within a single Kubernetes cluster, or across multiple. These models will continue to be enhanced as more features are added to Crossplane's composition model.

Responding to Changes in runc

A recent breaking change in runc v1.0.0-rc93 resulted in images built on the distroless/static:nonroot base image to fail in certain scenario. Crossplane, being one of the affected projects, has updated to the distroless/static base image to ensure users on all platforms will not encounter issues. Crossplane maintainers also coordinated with other projects to ensure that appropriate measures were taken to notify affected users, ultimately resulting in a workaround being implemented in the upcoming v1.0.0-rc94 release. A full write-up can be found here.

A Note on Provider Releases

Traditionally, though not required, Crossplane providers that are maintained by the core community have been released on the same cadence as Crossplane itself. In an effort to emphasize getting relevant features to users as soon as they are available, as well as encourage organic communities around each of the providers, each is moving to its own dedicated cadence. Over the next few weeks you will see major releases from provider-aws, provider-gcp, and many of the other providers that are currently incubating in the crossplane-contrib org.

CrossHack Livestreams

A new series of informal livestreams has been launched on the Crossplane YouTube channel. CrossHack streams typically involve a Crossplane maintainer and guests from other projects building new components in the Crossplane ecosystem. Recent streams include using Crossplane with Cluster-API, adding GKE Autopilot support to provider-gcp, and building a provider for Equinix.

Crossplane Community Day

Crossplane Community Day is a co-located event taking place on May 4th at Kubecon EU. It will feature speakers from many organizations in the cloud-native ecosystem, including AWS, Equinix, Google, IBM, Microsoft, Red Hat and Upbound, as well as end-users such as Guidewire, Appvia, and more!

Get Involved!

We're excited to see the continual growth of the Crossplane community and would love for you to get involved. Whether you are a developer, user, or just interested in what we're up to, feel free to join us via one of the following methods:

Keep up with Upbound

* indicates required