How do I upgrade from UXP 1.20.x to UXP 2.0.x without disrupting function packages?
Last updated: January 9, 2026
Context
When upgrading from UXP 1.20.x to UXP 2.0.x, you may encounter issues due to the chart name change from universal-crossplane to crossplane. This change can cause the crossplane-root-ca secret to be removed and recreated during the upgrade, leading to certificate verification failures for function packages. Additionally, you may encounter MRD reconciler failures during provider package upgrades.
Answer
To perform a smooth upgrade from UXP 1.20.x to UXP 2.0.x without disrupting function packages, follow these steps:
First, upgrade to UXP 1.20.4-up.1: This intermediate version includes the necessary chart template changes to allow configuring annotations on secret resources, which enables preserving the root CA secret during the upgrade.
Configure the upgrade to preserve the root CA secret: Use the annotation support in UXP 1.20.4-up.1 to keep/orphan the
crossplane-root-casecret during the chart transition.Upgrade to UXP 2.0.6-up.1 or later: This version includes fixes for MRD reconciler failures that can occur during provider package upgrades. The upgrade will inherit the same root CA secret without disruption.
Important considerations for UXP 2.0.x:
UXP 2.0.x runs with
--package-runtime=Externaland requires theuxp-controller-managercomponent to activate and control Crossplane packages.The
uxp-controller-manageris responsible for Standard plan features including backup & restore, function scale to zero, and vertical pod autoscaling.Even with the community plan, this component is required for external package runtime activation.
Sources: This resolution is based on the fixes included in UXP 1.20.4-up.1 and UXP 2.0.6-up.1 releases, which address the chart name change disruption and MRD reconciler issues respectively.