Release v2.0.0
Caution
This release introduces breaking 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.
This release introduces:
- Compatibility with Crossplane v2
- Support for Crossplane v2 namespace-scoped Managed Resources (MRs) alongside existing cluster-scoped MRs.
- Upgrade to crossplane-runtime
v2.0.0. - Upgrade to Upjet
v2.0.0. - Upgrade of the underlying Terraform AzureAD provider to
v3.4.0, introducing resource-level API changes. - Removal of External Secret Store support.
Please review the breaking changes carefully before upgrading.
Breaking API Changes
Warning
Make adjustments to any impacted resources in your Control Plane when upgrading to this provider version.
The following resources have changed due to the underlying Terraform provider upgrade to version v3.4.0:
applications group
- Application:
applicationIdremoved from status; useclientIdinstead.
- Certificate:
applicationObjectIdand reference removed; useapplicationIdand reference instead.
- FederatedIdentityCredential:
applicationObjectIdand reference removed; useapplicationIdand reference instead.
- Password:
applicationObjectIdand reference removed; useapplicationIdand reference instead.
- PreAuthorized:
applicationObjectIdand reference removed; useapplicationIdand reference instead.authorizedAppIdand reference removed; useauthorizedClientIdand reference instead.
directoryroles group
- RoleAssignment:
appScopeObjectIdremoved; useappScopeIdinstead.directoryScopeObjectIdremoved; usedirectoryScopeIdinstead.
serviceprincipals group
Principal:applicationIdand reference removed; useclientIdand reference instead.
Namespace-scope MR Support (Crossplane v2-only)
- New namespace-scoped MR APIs are available under the
azuread.m.crossplane.ioAPI group. - All new APIs are at version
v1beta1. - ProviderConfig
ProviderConfig.azuread.m.crossplane.iois now namespace-scoped.- A new cluster-scoped
ClusterProviderConfig.azuread.m.crossplane.ioresource was added; new MRs can reference eitherProviderConfigorClusterProviderConfigviaspec.providerConfigRef.kind. spec.providerConfigRefdefaults toClusterProviderConfigwith namedefaultwhen omitted.
spec.writeConnectionSecretToRefand 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.publishConnectionDetailsTois 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, andexamplesnow have scoped subdirectories:clusterandnamespaced.- Resource configurations are also scoped; updates must be applied to both where relevant.
- Examples for namespace-scoped MRs are included.
Backward Compatibility Notes
- This provider can be installed in Crossplane
v1.xenvironments:- Both cluster-scoped and namespace-scoped CRDs will be installed; namespace-scoped CRDs cannot be composed in
v1.x. SafeStartwill be disabled.
- Both cluster-scoped and namespace-scoped CRDs will be installed; namespace-scoped CRDs cannot be composed in
- When upgrading from
v1.xproviders, review all breaking resource API changes noted above. The package itself is Crossplanev1.xcompatible, 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.xusers:- Ensure secret and reference configurations align with the new namespace-scoped MR behavior.
- Decide whether to use
ProviderConfigorClusterProviderConfig.
- Remove any
spec.publishConnectionDetailsTousage. - Validate repository structure changes if maintaining custom resource configurations.
What's Changed
- feat: add pim group assignments by @daftping in #228
- feat: add azuread_directory_role_eligibility_schedule_request by @daftping in #229
- add basic plumbing for provider startup checks by @jastang in #232
- Update module golang.org/x/oauth2 to v0.27.0 [SECURITY] by @renovate[bot] in #233
- Update alpine Docker tag to v3.22.1 by @renovate[bot] in #231
- Bump Terraform provider version to v3.4.0 by @turkenf in #235
- crossplane v2: Generate namespace-scoped MRs by @erhancagirici in #236
- add license annotation to package metadata template by @erhancagirici in #240
- Update actions/cache digest to 0400d5f by @renovate[bot] in #238
- Update go version to 1.24.6 [Security] by @turkenf in #241
New Contributors
Full Changelog: v1.8.0...v2.0.0