We are excited to announce Upjet v2.0.0 is available. This release introduces support for generating Crossplane v2 compatible providers with namespaced MRs.
Crossplane v2 compatibility
Upjet v2 generates Crossplane v2-compatible namespaced Managed Resources (MRs) and providers.
During the transition period of the providers, Upjet continues to generate cluster-scoped MRs along with new namespace-scoped MRs.
Namespaced MR APIs
Namespaced MR Go types now embed v2.ManagedResourceSpec
. Per Crossplane v2 changes, this effectively makes the generated namespaced MR API:
spec.writeConnectionSecretToRef
: connection secret refs are now local references (without namespace)- remove
spec.deletionPolicy
from namespaced MR specs, this is now expected to be configured via management policies - remove
spec.publishConnectionDetailsTo
as XPv2 removed support for External Secret Stores (ESS) - generate local secret refs for sensitive input parameters in
spec.forProvider
, e.g.spec.forProvider.fooSecretRef
. - generate optionally namespaced reference/selector fields for cross-resource references.
Directory Structure changes
To facilitate both cluster-scoped and namespace-scoped APIs at the same repository, generated providers will have apis/
internal/controller/
examples-generated/
Module changes
- upjet module is bumped to v2
- bumped crossplane-runtime to v2 and updated all the import paths
Upgrade guide
Existing providers can refere to the upgrade guide
Fresh providers can start with the upjet-provider-template and follow provider generation guide to generate a new provider.
What's Changed
- Validate that
ts.FrameworkProvider
is not nil to avoid panic by @nikimanoledaki in #500 - Fix wildcard expand behavior when if the field path is not found during conversion by @sergenyalcin in #504
- Fix incorrectly generated connection string map by @sergenyalcin in #506
- remove id validation from setExternalName for resources without id field by @erhancagirici in #507
- Custom state check configuration for TF plugin framework resources by @sergenyalcin in #515
- Sanitize Identity field in InstanceDiff by @sergenyalcin in #512
- Generate crossplane v2 providers by @erhancagirici in #518
- bump upjet go module to v2 by @erhancagirici in #519
New Contributors
- @nikimanoledaki made their first contribution in #500
Full Changelog: v1.9.0...v2.0.0