Recently, I had the opportunity to do a major Crossplane upgrade from v1.20.0 to v2.0.2 on a live production environment.
For those unfamiliar with Crossplane, it is an open-source platform engineering framework that extends Kubernetes into a universal control plane, enabling teams to manage cloud infrastructure using Kubernetes APIs. Through Compositions, developers can provision complex infrastructure services with a single custom resource instead of managing individual components such as VPCs, subnets, security groups, IAM roles, and databases separately.
While the upgrade itself sounds straightforward, anyone who has worked with Crossplane knows that major version upgrades can be challenging. The biggest concern is ensuring that managed resources remain correctly mapped and are not accidentally recreated, orphaned, or disrupted.
Key areas we validated before the upgrade:
✅ Composition migration to Pipeline mode
✅ Safe managed resource mapping to prevent resource recreation
✅ Removal of deprecated features (ControllerConfig, native patch/transform, external secrets)
✅ Provider compatibility with Crossplane v2 and updated image references
One of the most important findings during the assessment was that the upgrade sequence mattered. We first upgraded Compositions, then Providers, and only after that proceeded with the Crossplane control plane upgrade itself.
We followed a phased approach through Development → Integration → Production, applying lessons learned at each stage to reduce risk and improve the rollout process.
The upgrade impacted 700+ managed resources in a live production environment. I won't deny that there were a few moments when my heartbeat definitely increased, but careful planning, validation, and testing paid off.
✅ Zero downtime
✅ No managed resource recreation
✅ No infrastructure impact
✅ Successfully running on Crossplane v2.0.2
A great reminder that complex platform upgrades are less about the upgrade itself and more about understanding dependencies, validating assumptions, and executing in the right sequence.
Happy to share experiences and lessons learned with anyone planning a similar Crossplane migration.
Top comments (0)