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 provider to
v6.43.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 v6.43.0:
- AlloyDB group
Cluster
resource: Thenetwork
,networkRef
, andnetworkSelector
properties have been removed in favour of thenetworkConfig.network
property. - Apigee group
EndpointAttachment
resource: TheorgIdRef
andorgIdSelector
properties have been removed. - BigQuery group
AnalyticsHubListing
resource: ThebigqueryDataset
property is no longer required. - BigQuery group
Job
resource: Thecopy.destinationEncryptionConfiguration.kmsKeyNameRef
andcopy.destinationEncryptionConfiguration.kmsKeyNameSelector
properties have been removed. - BigQuery group
Reservation
resource: ThemultiRegionAuxiliary
property has been removed as it is no longer supported by the BigQuery Reservation API. - BigQuery group
Table
resource:- View creation now validates schema - a view can no longer be created when schema contains required fields.
- The
allowResourceTagsOnDeletion
property has been removed as resource tags are now always allowed on table deletion.
- Cloud Platform group
Project
resource:- The default value for
deletionPolicy
is nowPREVENT
instead ofDELETE
. - The
skipDelete
property has been removed in favour of thedeletionPolicy
property.
- The default value for
- Cloud Run group
V2Job
resource:- Job deletion now prevented by default with
deletionProtection
field set totrue
. - The
containers.env
property has been retyped from ARRAY to SET.
- Job deletion now prevented by default with
- Cloud Run group
V2Service
resource:- Service deletion now prevented by default with
deletionProtection
field set totrue
. - The
livenessProbe
no longer defaults from API. - The
containers.env
property has been retyped from ARRAY to SET.
- Service deletion now prevented by default with
- Compute group
BackendService
resource: Theiap.enabled
property is now required in theiap
block. - Compute group
InstanceFromTemplate
resource: TheattachedDisk.diskEncryptionKeyRaw
andattachedDisk.diskEncryptionKeySha256
properties have been removed. - Compute group
ManagedSslCertificate
resource: ThecertificateId
property has been removed. - Compute group
RegionBackendService
resource: Theiap.enabled
property is now required in theiap
block. - Compute group
Subnetwork
resource: TheipCidrRange
property is no longer required. - Container group
Cluster
resource:- The
monitoringConfig.advancedDatapathObservabilityConfig.relayMode
property has been removed in favour of theenableRelay
property. - The
nodeConfig.index
property has been removed.
- The
- Monitoring group
MetricDescriptor
resource: Thedescription
anddisplayName
properties are no longer required. - PubSub group
Topic
resource: TheschemaSettings
property no longer has a default value. - Redis group
Cluster
resource: ThedeletionProtectionEnabled
field with default valuetrue
has been added. - SQL group
DatabaseInstance
resource: Thesettings.ipConfiguration.requireSsl
property has been removed in favour of thesettings.ipConfiguration.sslMode
property. - Storage group
Bucket
resource: ThelifecycleRule.condition.noAge
property has been removed in favour of thelifecycleRule.condition.sendAgeIfZero
property. namePrefix
max length has been extended from 37 to 54 characters forgoogle_compute_instance_template
,google_compute_region_instance_template
,google_compute_ssl_certificate
, andgoogle_compute_region_ssl_certificate
resources.- Opt-out deletion protection is added to several resources including
google_cloud_run_v2_job
,google_cloud_run_v2_service
,google_domain
,google_folder
, andgoogle_project
.
Removed Resources
- The
Datastore
groupIndex
resource - The
IdentityPlatform
groupProjectDefaultConfig
resource
Namespace-scope MR Support (Crossplane v2-only)
- New namespace-scoped MR APIs are available under the
gcp.m.crossplane.io
API group. - All new APIs are at version
v1beta1
. - ProviderConfig
ProviderConfig.gcp.m.crossplane.io
is now namespace-scoped.- A new cluster-scoped
ClusterProviderConfig.gcp.m.crossplane.io
resource was added; new MRs can reference eitherProviderConfig
orClusterProviderConfig
viaspec.providerConfigRef.kind
. spec.providerConfigRef
defaults toClusterProviderConfig
with namedefault
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
, andexamples
now have scoped subdirectories:cluster
andnamespaced
.- 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.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.
- Both cluster-scoped and namespace-scoped CRDs will be installed; namespace-scoped CRDs cannot be composed in
- When upgrading from
v1.x
providers, review all breaking resource API changes noted above. The package itself is Crossplanev1.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
orClusterProviderConfig
.
- Remove any
spec.publishConnectionDetailsTo
usage. - Validate repository structure changes if maintaining custom resource configurations.
What's Changed
- Workaround goroutine leak when reconciling by @sjiekak in #778
- Bump terraform provider version to v6.43.0 by @sergenyalcin in #802
- add basic plumbing for provider startup checks by @jastang in #804
- Update alpine Docker tag to v3.22.1 by @renovate[bot] in #803
- Bump upjet to the commit 96241b0 by @turkenf in #808
- crossplane v2: Generate namespace-scoped MRs by @erhancagirici in #809
- add license annotation to package metadata template. by @jastang in #806
- Update actions/cache digest to 0400d5f by @renovate[bot] in #810
- Update go version to 1.24.6 [Security] by @turkenf in #812
New Contributors
Full Changelog: v1.14.0...v2.0.0