Crossplane now has 100% coverage for major cloud services with the new providers: provider-jet-aws, provider-jet-azure, and provider-jet-gcp. To create new providers like these, we are introducing Terrajet, a code generation pipeline for creating Crossplane providers.
Assembling Cloud Services with Crossplane
Crossplane is an open-source Kubernetes add-on to assemble infrastructure from multiple vendors and expose higher-level APIs for application teams to consume. In other words, Crossplane makes external infrastructure services such as storage, databases, or message queues available to build internal developer platforms.
The number of cloud services is enormous and is growing every day. As organizations want to leverage the best services available, it’s important that Crossplane has 100% service coverage and that it is easy to keep up with new services. We’ve made a big step towards that goal today! But before we go into detail on how we have achieved this, let's take a step back and see how cloud services are connected in Crossplane.
Crossplane can be described as a Kubernetes add-on that introduces a set of Custom Resource Definitions (CRDs) to describe external cloud services. These special CRDs are called Managed Resources and are bundled into Crossplane Providers. The Crossplane Resource Model makes these resources available in Composite Resources for teams to define their custom APIs.
Applications are using Managed Resources via Crossplane Resource Model.
We at Upbound support the Crossplane ecosystem by creating new Managed Resources and Providers and enhancing existing ones. In addition, we want to enable the broader community to create new providers on their own. To achieve this, we have invested heavily in automation and code generation.
Generation with Terrajet
Terraform has had tremendous success in infrastructure automation, and the community has put immense work into integrating all sorts of cloud resources. To make these available in Crossplane, we are happy to announce Terrajet: A code generation pipeline for creating a Crossplane provider from any Terraform provider.
Terrajet uses the schema object of each Terraform resource and generates the respective spec and status of the Managed Resource. A generic controller talks to the Terraform CLI which then makes the calls to the external API. To learn more, see the Github project and see the design document. It’s worth pointing out that all CRDs generated by Terrajet are fully compliant with the Crossplane Resource Model and thanks to the automation very consistent across all resources.
100% Coverage for AWS, Azure, and GCP
To kick off the Terrajet generated providers, we are also happy to announce the first Terrajet generated providers for AWS, Azure, and GCP with an extensive number of supported resources: provider-jet-aws has support for 763, provider-jet-azure for 647, and provider-jet-gcp for 483 managed resources. These are great additions to our native providers, which we will continue to support and invest in. So as of today, all important cloud resources are available and teams can use these to compose their own abstractions. We are already seeing the adoption of these new providers and are working with customers and the community to get them to mature.
A sample of new AWS resources made available in provider-jet-aws.
More Providers and Better UX
We are very excited about this announcement and can’t wait to see what the Crossplane community will discover by leveraging Terrajet. We are there to help and assist Upbound customers and the Crossplane community to apply Terrajet in new scenarios. Furthermore, we have many ideas for improving and automating code generation. We also intend to make the integration and transition between different managed resources from different providers easier and more seamless. For any feedback or ideas, please head over to the Terrajet Github repository to create an issue or discussion.
Support from Upbound
For Upbound customers, we are committed to accelerating service coverage and ensuring the necessary maturity of the required resources. If you are or intend to become an Upbound customer, please contact us at firstname.lastname@example.org for any further questions.
Learning more about Terrajet
Both Crossplane and Upbound have a lot of interesting content coming out this week, so you can learn more about Terrajet. For a deeper dive on Terrajet, head over to the Crossplane blog for a three-part technical walk through.
Miss our launch party? No worries. You can still watch Viktor, Muvaffak and myself talking all things Terrajet in this replay!
And if you would like to learn more about how Crossplane fits into the future of infrastructure as code, join us February 2nd as Grant Gumina talks control planes and IaC.