I've noticed that while Crossplane has been incubated by CNCF since 2021, most companies seem to prefer Terraform and Pulumi over it. As we consider consolidating our IaC tools (currently we use both Pulumi and Terraform depending on the team), I stumbled upon Crossplane and was intrigued by its concept. However, I'm concerned by the lack of resources available compared to Terraform. Can Crossplane really stand as a viable option for IaC? What has your experience been with it, and are there any pitfalls I should be aware of? Given that many teams are used to working with Python or HCL, it seems like selling them on YAML-based Kubernetes resources might be challenging.
4 Answers
Crossplane is a solid tool, especially if you're immersed in Kubernetes and looking to manage resources declaratively through its API. It does well with both infrastructure and app configurations in one control plane. However, it does have a steeper learning curve and is less mature in terms of community support compared to Terraform and Pulumi.
Most teams stick with those two tools because they offer flexibility across various environments and are easier for teams accustomed to coding workflows. Crossplane is fantastic for platform engineering, but it may be more than you need unless your infrastructure is heavily Kubernetes-based.
I've seen some folks in KubeCraft play around with Crossplane for their internal platforms, but most still find it best to use alongside Terraform rather than as a full replacement.
I'm curious why we don't just stick with a straightforward NextJS app deployed on Vercel. It comes with automatic CI/CD and no need for heavy DevOps management. I often feel like I'm wasting my time with all the DevOps work as a fullstack developer, but really, I’m in it just for the paycheck.
It really comes down to the specific product and existing infrastructure. I work with a small news organization managing various media platforms, and relying solely on managed services for everything would be way too pricey. Plus, we have to follow GDPR regulations.
When IaC works, it's fantastic, but when it doesn't, it can be a total nightmare to revert things.
True, but is Crossplane's failure rate notably worse than Terraform? I find the idea behind Crossplane really compelling—especially its feature to automatically address configuration drift, given its Kubernetes foundation. Yet, I'm surprised by its slow adoption rate and wondering why.
Just a heads-up, the team behind Crossplane has developed a tool called Upjet, which can help you auto-generate a Crossplane provider based on any existing Terraform provider. I've personally been using Crossplane for four years now and I'm quite fond of it. The new version 2 has addressed a lot of the initial issues that existed.
I feared that might be the case. If Crossplane can't fully replace our current setup, it might be hard to convince my team to adopt it.