This release introducesbreaking changes and significant internal upgrades. Please review the release notes thoroughly, make the necessary changes to your manifests, and test thoroughly before upgrading.
Before using any Crossplane v2 capabilities in the provider, we encourage you to familiarize yourself with the changes in v2.
Support for Crossplane v2 namespace-scoped Managed Resources (MRs) alongside existing cluster-scoped MRs.
Upgrade to crossplane-runtime v2.0.0.
Removal of External Secret Store support.
Please review the breaking changes carefully before upgrading.
Namespace-scope MR Support (Crossplane v2-only)
New namespace-scoped MR APIs are available under the m.upbound.io API group.
All new APIs are at version v1beta1.
ProviderConfig
ProviderConfig.m.upbound.io is now namespace-scoped.
A new cluster-scoped ClusterProviderConfig.m.upbound.io resource was added; new MRs can reference either ProviderConfig or ClusterProviderConfig via spec.providerConfigRef.kind.
spec.providerConfigRef defaults to ClusterProviderConfig with name default when omitted.
spec.writeConnectionSecretToRef and sensitive parameter refs (e.g., spec.forProvider.fooSecretRef) in namespace-scoped MRs are now local secret references (if no namespace is specified, it defaults to the MR's namespace).
Cross-resource references are now namespace-scoped by default, however, cross-namespace references are allowed.
This provider will serve both the new namespace-scoped and cluster-scoped APIs.
Note
Cluster-scoped MRs do NOT implement the above changes and continue operating as before.
Removed Features
External Secret Store support has been removed from all MRs (spec.publishConnectionDetailsTo is no longer available) as the feature has been removed in Crossplane v2.
Note
The removed feature is the External Secret Store, which allowed storing connection details outside the cluster (e.g., in Vault). Connection secrets for managed resources remain available for storing connection details in Kubernetes Secrets.
Other Notable Changes
SafeStart capability has been added (Crossplane v2-only): Controllers start once their CRD is installed.
Repository structure changes:
apis, controllers, and examples now have scoped subdirectories: cluster and namespaced.
Resource configurations are also scoped; updates must be applied to both where relevant.
Examples for namespace-scoped MRs are included.
Note
This PR duplicates most of the controller logic and apis for namespaced MRs with several namespace-specific code modified. A refactoring of types and controllers should follow-up.
Backward Compatibility Notes
This provider can be installed in Crossplane v1.x environments:
Both cluster-scoped and namespace-scoped CRDs will be installed; namespace-scoped CRDs cannot be composed in v1.x.
SafeStart will be disabled.
When upgrading from v1.x providers, review all breaking resource API changes noted above. The package itself is Crossplane v1.x compatible, but there can be resources that have API changes that need adjustment in your control plane.
Upgrade Guide
Review all affected resources listed under Breaking API Changes.
Update manifests to reflect renamed/removed properties.
For Crossplane v2.x users:
Ensure secret and reference configurations align with the new namespace-scoped MR behavior.
Decide whether to use ProviderConfig or ClusterProviderConfig.
Remove any spec.publishConnectionDetailsTo usage.
Validate repository structure changes if maintaining custom resource configurations.