Upbound’s Crossplane, the open source project that seeks to provide a Kubernetes-based universal control plane across clouds and deployments, reached version 1.0 earlier this month, marking API stability and the addition of Prometheus metrics for all binaries, among other features. At the same time, IBM joined the project with its experimental release of a Crossplane provider for IBM Cloud, adding support for more than 85 IBM Cloud services.
Having been in development since 2018, Crossplane aims to solve the problems that come along with hybrid multicloud Kubernetes deployments. While the concept of hybrid multicloud has become increasingly commonplace in recent years, the technology for actually employing the concept has lagged. Deploying Kubernetes and its resources across different clouds requires unique configurations for each. Crossplane works to solve this problem by providing another layer of abstraction in the form of a universal control plane that provides the ability to manage infrastructure and resources, including cloud managed services, using Kubernetes Custom Resource Definitions (CRDs).
“With Crossplane, you can now use a consistent resource model to represent those resources that are outside the cluster. For example, if I need a database on AWS or GCP or IBM cloud, I can use the same model, in a way that basically leverages my existing GitOps approach for Kubernetes, my existing GitOps pipeline, and also can leverage all the policies I put in place around my resources,” said Paolo Dettori, senior technical staff member with IBM Research. “This is one of the central values that Crossplane brings. It provides a consistent approach to building providers for different clouds and the different services that are outside of the Kubernetes cluster.”
Crossplane achieves this using something called a “composition,” which adds an extra layer of abstraction on top of CRDs with
CompositeResourceDefinitions (XRDs). Chris Bailey, lead architect of hybrid cloud observability with IBM, explains that XRDs let you express your desired intent and then rely on Kubernetes to then enact them, depending on where they are enacted. This is where the providers also come in, of which IBM just released its own experimental version for IBM Cloud, which provides a set of CRDs and Controllers to provision and manage IBM Cloud infrastructure and services from Crossplane control plane.
“Kubernetes is very good at controlling configuration and then making that configuration true. Its control plane is one of its huge strengths,” said Bailey. “Providers in Crossplane allow you to use that configuration reconciliation in Kubernetes to manage other things, whether that is resources deployed in IBM Cloud, AWS, GCP, and so on. Now, each of those clouds now has a provider in Crossplane, so you can say, ‘I want a Postgres’ and get one that’s actually provisioned in IBM Cloud, rather than being provisioned inside the cluster.”
Beyond allowing users to simply declare that they want a database instance and then let Kubernetes create it wherever it is needed, compositions also offer the ability to embed some presets.
“You can now limit the configuration that the development teams have access to,” explains Bailey. “If there has to be an out of the box level of security, or high availability, all those kinds of policies can be included in the composition. You can choose to really limit the level of configuration that the DevOps teams can have.”
In the end, Crossplane really moves toward making the promises of hybrid multicloud and application portability a reality, argued Bailey.
“The reality is, portability is not complete. As a result, generally, once an application gets deployed, in whatever environment, it never gets moved,” said Bailey. “Crossplane enhances the application portability promise, and takes it closer to being genuinely true, so that I can define an application that is running today on-prem and tomorrow I could move it to AWS. And if I then wanted to actually distribute it over to clouds for availability, I can do that, and it’s exactly the same configuration that’s running in both.”
Moving forward, Crossplane will work toward 100% coverage, said Bailey, not only for IBM, but for all cloud providers it supports.
Feature image via Favpng.