github crossplane-contrib/provider-upjet-gcp v2.0.0

23 days ago

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: The network, networkRef, and networkSelector properties have been removed in favour of the networkConfig.network property.
  • Apigee group EndpointAttachment resource: The orgIdRef and orgIdSelector properties have been removed.
  • BigQuery group AnalyticsHubListing resource: The bigqueryDataset property is no longer required.
  • BigQuery group Job resource: The copy.destinationEncryptionConfiguration.kmsKeyNameRef and copy.destinationEncryptionConfiguration.kmsKeyNameSelector properties have been removed.
  • BigQuery group Reservation resource: The multiRegionAuxiliary 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 now PREVENT instead of DELETE.
    • The skipDelete property has been removed in favour of the deletionPolicy property.
  • Cloud Run group V2Job resource:
    • Job deletion now prevented by default with deletionProtection field set to true.
    • The containers.env property has been retyped from ARRAY to SET.
  • Cloud Run group V2Service resource:
    • Service deletion now prevented by default with deletionProtection field set to true.
    • The livenessProbe no longer defaults from API.
    • The containers.env property has been retyped from ARRAY to SET.
  • Compute group BackendService resource: The iap.enabled property is now required in the iap block.
  • Compute group InstanceFromTemplate resource: The attachedDisk.diskEncryptionKeyRaw and attachedDisk.diskEncryptionKeySha256 properties have been removed.
  • Compute group ManagedSslCertificate resource: The certificateId property has been removed.
  • Compute group RegionBackendService resource: The iap.enabled property is now required in the iap block.
  • Compute group Subnetwork resource: The ipCidrRange property is no longer required.
  • Container group Cluster resource:
    • The monitoringConfig.advancedDatapathObservabilityConfig.relayMode property has been removed in favour of the enableRelay property.
    • The nodeConfig.index property has been removed.
  • Monitoring group MetricDescriptor resource: The description and displayName properties are no longer required.
  • PubSub group Topic resource: The schemaSettings property no longer has a default value.
  • Redis group Cluster resource: The deletionProtectionEnabled field with default value true has been added.
  • SQL group DatabaseInstance resource: The settings.ipConfiguration.requireSsl property has been removed in favour of the settings.ipConfiguration.sslMode property.
  • Storage group Bucket resource: The lifecycleRule.condition.noAge property has been removed in favour of the lifecycleRule.condition.sendAgeIfZero property.
  • namePrefix max length has been extended from 37 to 54 characters for google_compute_instance_template, google_compute_region_instance_template, google_compute_ssl_certificate, and google_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, and google_project.

Removed Resources

  1. The Datastore group Index resource
  2. The IdentityPlatform group ProjectDefaultConfig 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 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.

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

  1. Review all affected resources listed under Breaking API Changes.
  2. Update manifests to reflect renamed/removed properties.
  3. 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.
  4. Remove any spec.publishConnectionDetailsTo usage.
  5. Validate repository structure changes if maintaining custom resource configurations.

What's Changed

New Contributors

Full Changelog: v1.14.0...v2.0.0

Don't miss a new provider-upjet-gcp release

NewReleases is sending notifications on new releases.