Crossplane
GraduatedOrchestrationCrossplane extends the Kubernetes API to manage anything, not just containers.
What it is
Crossplane extends the Kubernetes API to manage anything, not just containers. You define Compositions (templates) and CompositeResourceDefinitions (XRDs) that turn cloud resources — RDS instances, GCP buckets, Azure VMs, whatever — into custom Kubernetes resources. Teams then request infrastructure the same way they request a Deployment: kubectl apply or through a GitOps pipeline. Under the hood, Crossplane providers talk to cloud APIs and reconcile actual state against desired state, same control loop pattern as core Kubernetes controllers.
The pitch is "build your own control plane without writing a controller in Go." Whether that holds up depends heavily on how comfortable your team is with Kubernetes API conventions, because Crossplane's learning curve is really "understand CRDs, controllers, and reconciliation deeply" — it doesn't hide that complexity, it just moves it from Go code into YAML and Composition Functions.
Who builds it and why
Originated at Upbound, which still funds the majority of core development and offers a commercial control-plane product (Upbound Cloud) built on top of it. Crossplane graduated in CNCF in 2022. The project has 322 contributors and an active commit cadence (last commit within days of writing this), which signals it's not a single-vendor side project anymore — there's real diversity in the provider ecosystem (AWS, GCP, Azure, and dozens of smaller providers for things like GitHub, Datadog, Fastly).
The motivation is straightforward: platform teams want a single declarative API surface for infra and apps, and they want it enforced via Kubernetes RBAC, admission control, and GitOps tooling they already run. Crossplane is Upbound's bet that the control plane pattern generalizes beyond containers.
Production readiness signal
CNCF Graduated status is the strongest formal signal — that requires passing security audits, demonstrating adoption diversity, and sustained maintainership. 11.8k GitHub stars is modest for a graduated project (compare Argo or Istio), which reflects its niche: it's an infrastructure-team tool, not something individual developers install and star casually.
Real signal to watch: provider maturity varies wildly. The AWS and GCP official providers are solid and widely run in production. Many community providers are thinner, less tested, and abandoned faster. Composition Functions (the v2 approach to templating, replacing the older Patch & Transform system) are still maturing in tooling and debugging ergonomics — expect rough edges if you adopt them today.
Who should use this
- Platform engineering teams building an internal developer platform who want infra provisioning to live in the same API and GitOps flow as application deployments
- Organizations already deep in Kubernetes operational patterns (CRDs, controllers, kubectl-based workflows) who want to extend that model rather than bolt on a separate IaC tool
- Teams that need policy enforcement (OPA/Kyverno, RBAC) applied uniformly across infra and app resources
- Multi-cloud shops wanting one abstraction layer instead of juggling Terraform modules per provider
Who should NOT use this
- Small teams or startups without a dedicated platform/infra function — the operational overhead of running Crossplane itself (providers, RBAC, CRD versioning, upgrades) is real and not trivial
- Anyone expecting Terraform-equivalent maturity in state management, plan/preview workflows, or drift visibility — Crossplane's reconciliation model is different and tooling for "what will this change" is weaker
- Teams whose infra provisioning is simple and stable (a handful of VMs, one cloud) — you're paying control-plane complexity tax for no real benefit
- Organizations not already running Kubernetes as core infrastructure — introducing K8s just to run Crossplane is backwards
Alternatives
- Terraform / OpenTofu — the incumbent IaC tool; mature plan/apply workflow, huge module ecosystem, no Kubernetes dependency.
- Pulumi — infra-as-code in general-purpose languages; better for teams wanting programming logic over declarative YAML.
- AWS Controllers for Kubernetes (ACK) / cloud-native operators — narrower scope, single-cloud, less abstraction overhead if you're not multi-cloud.
Pricing
Fully open source, Apache-2.0, free to run yourself. Upbound sells a managed/hosted control plane offering and enterprise support on top, but the upstream project itself has no licensing cost or feature gating.