Skip to content

add support for universal deletion_policy#17380

Open
NickElliot wants to merge 111 commits intoGoogleCloudPlatform:mainfrom
NickElliot:universaldeletionpolicyfinal
Open

add support for universal deletion_policy#17380
NickElliot wants to merge 111 commits intoGoogleCloudPlatform:mainfrom
NickElliot:universaldeletionpolicyfinal

Conversation

@NickElliot
Copy link
Copy Markdown
Contributor

@NickElliot NickElliot commented May 1, 2026

Universal deletion_policy is a string field added to the top-level schema of all compatible resources. Rather than using a “default” attribute, it is configured as an optional+computed field.

To display a default from provider configuration or resource settings, it is dependent on a new customize diff function that operates in a similar way to the customize diff functions for displaying Project/Region/Zone at plan-time. A GetRawConfig() check is performed on the resource to verify if it has been set explicitly by the user, and in absence of that checks for if a user has configured a value within their provider configuration, and if that is absent it goes with the resource default. There is no fall back state behind this, as all resources have a default supplied to this customize diff function as a string argument.

At the end of the read function some code has been included for setting virtual fields to their default (following standard design for TPG resources), with the minor addition of checking the provider configuration before using the resource default.

If a resource has been excluded from supporting resourceUpdate() previously, it has been updated to have an Update function that immediately returns resourceRead(). Existing update functions have had a PreUpdate check introduced at the beginning, which quickly checks over the resource to verify if any updates have been planned other than those to deletion-policy, and if only deletion_policy is being updated, will short circuit the function into returning resource*Read().

Lastly, a PreDelete check has been added that performs the logic for either “PREVENT” or “ABANDON”. If necessary due to some implementations using different terms (e.g. “DEFAULT” often being used in place of “DELETE” previously), existing implementations have been updated to be compatible with these standard terms.

Supporting the above implementation, three attributes have been added to resource.go for usage in resource yaml files:
deletion_policy_exclude, if set to true this will avoid generating the deletion_policy related fields to the end resource. This is set to true for resources that are incompatible with a deletion policy (such as those with no delete function), or those that had existing, incompatible implementations.
deletion_policy_custom_docs, if set to true this will avoid generating the standard docs description for the universal deletion policy field. This is set to true for resources which support custom options in their deletion_policy such as “force”, and need a bespoke description for their usage. These resources have maintained their virtual field deletion_policy fields, but updated to have an “exclude: true” attribute that will avoid them being generated into the downstream resource (as these resources will use the fully standard field/associated code in most areas, with their custom code generally being contained within a pre_delete constant.
deletion_policy_default, a string attribute that can be set to the desired default value for a resource. This will default to “DELETE” if unset.

One attribute deletion_policy has been added to provider.go and config.go, and is used to enable configuring the provider-level default.

Release Note Template for Downstream PRs (will be copied)

See Write release notes for guidance.

provider: support for a `deletion_policy` field has been added to almost all resources in the provider. Details on its usage can be found within individual resource documentation if supported.

@modular-magician
Copy link
Copy Markdown
Collaborator

modular-magician commented May 1, 2026

Hi there, I'm the Modular magician. I've detected the following information about your changes for commit 4faf853:

Diff report

Your PR generated the following diffs in downstream repositories:

Repository Diff Link Changes
google provider View Diff 2515 files changed, 39731 insertions(+), 511 deletions(-)
google-beta provider View Diff 2654 files changed, 42666 insertions(+), 576 deletions(-)
terraform-google-conversion View Diff 11 files changed, 163 insertions(+), 30 deletions(-)

Breaking Change(s) Detected

The following breaking change(s) were detected within your pull request.

  • Field deletion_policy default value changed from "" to <nil> on google_billing_subaccount - reference
  • Field deletion_policy default value changed from ABANDON to <nil> on google_firestore_database - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_alloydb_cluster - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_chronicle_data_table - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_chronicle_rule - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_firebase_data_connect_service - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_looker_instance - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_netapp_volume - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_container_attached_cluster - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_dataform_repository - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_android_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_apple_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_web_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firestore_index - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_secret_manager_regional_secret_version - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_secret_manager_secret_version - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_sql_database - reference
  • Field deletion_policy default value changed from FORCE to <nil> on google_datastream_private_connection - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_project - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_secure_source_manager_instance - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_secure_source_manager_repository - reference

If you believe this detection to be incorrect please raise the concern with your reviewer.
If you intend to make this change you will need to wait for a major release window.
An override-breaking-change label can be added to allow merging.

Missing doc report (experimental)

The following resources have fields missing in documents.

  • google_composer_environment
    • Expected Document Path: /website/docs/r/composer_environment.html.markdown
    • Fields: [deletion_policy]
  • google_compute_instance_from_machine_image
    • Expected Document Path: /website/docs/r/compute_instance_from_machine_image.html.markdown
    • Fields: [deletion_policy]
  • google_compute_instance_from_template
    • Expected Document Path: /website/docs/r/compute_instance_from_template.html.markdown
    • Fields: [deletion_policy]
  • google_endpoints_service
    • Expected Document Path: /website/docs/r/endpoints_service.html.markdown
    • Fields: [deletion_policy]

The following data sources are missing documents:

  • google_backup_dr_backup_plan, expect file /website/docs/d/backup_dr_backup_plan.html.markdown to exist.
  • google_compute_region_ssl_policy, expect file /website/docs/d/compute_region_ssl_policy.html.markdown to exist.
  • google_vmwareengine_datastore, expect file /website/docs/d/vmwareengine_datastore.html.markdown to exist.

Test report

Analytics

Total Tests Passed Skipped Affected
6385 5715 655 15
Affected Service Packages
  • All service packages are affected

Learn how VCR tests work


Step 1: Replaying Mode

Action taken

Found 15 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
  • TestAccApigeeOrganization_apigeeOrganizationCloudBasicDisableVpcPeeringTestExample
  • TestAccApigeeOrganization_apigeeOrganizationCloudFullDisableVpcPeeringTestExample
  • TestAccBeyondcorpAppConnection_beyondcorpAppConnectionBasicExample
  • TestAccCloudRunService_cloudRunServiceGpuExample
  • TestAccComputeRouterPeer_AddMd5AuthenticationKey
  • TestAccComputeSubnetwork_secondaryIpRanges_sendEmpty
  • TestAccContainerCluster_updateVersion
  • TestAccContainerCluster_withAutopilotResourceManagerTags
  • TestAccContainerNodePool_withHostMaintenancePolicy
  • TestAccDataformRepository_dataformRepositoryWithCloudsourceRepoAndSshExample
  • TestAccDataprocMetastoreService_dataprocMetastoreServicePrivateServiceConnectExample
  • TestAccDiscoveryEngineDataStore_discoveryengineDatastoreKmsKeyNameExample
  • TestAccManagedKafkaConnector_managedkafkaConnectorBasicExample
  • TestAccProjectIamMemberRemove_memberInMultipleBindings
  • TestAccPubsubSubscription_pubsubSubscriptionTagsExample

View the build log


Step 2: Recording Mode

Test Name Recording Mode Replaying Rerun
TestAccApigeeOrganization_apigeeOrganizationCloudBasicDisableVpcPeeringTestExample 🔴 Failed [Error message] [Debug log] -
TestAccApigeeOrganization_apigeeOrganizationCloudFullDisableVpcPeeringTestExample 🔴 Failed [Error message] [Debug log] -
TestAccBeyondcorpAppConnection_beyondcorpAppConnectionBasicExample 🔴 Failed [Error message] [Debug log] -
TestAccCloudRunService_cloudRunServiceGpuExample 🔴 Failed [Error message] [Debug log] -
TestAccComputeRouterPeer_AddMd5AuthenticationKey 🟢 Passed [Debug log] 🟢 Passed
TestAccComputeSubnetwork_secondaryIpRanges_sendEmpty 🔴 Failed [Error message] [Debug log] -
TestAccContainerCluster_updateVersion 🔴 Failed [Error message] [Debug log] -
TestAccContainerCluster_withAutopilotResourceManagerTags 🔴 Failed [Error message] [Debug log] -
TestAccContainerNodePool_withHostMaintenancePolicy 🔴 Failed [Error message] [Debug log] -
TestAccDataformRepository_dataformRepositoryWithCloudsourceRepoAndSshExample 🔴 Failed [Error message] [Debug log] -
TestAccDataprocMetastoreService_dataprocMetastoreServicePrivateServiceConnectExample 🔴 Failed [Error message] [Debug log] -
TestAccDiscoveryEngineDataStore_discoveryengineDatastoreKmsKeyNameExample 🔴 Failed [Error message] [Debug log] -
TestAccManagedKafkaConnector_managedkafkaConnectorBasicExample 🔴 Failed [Error message] [Debug log] -
TestAccProjectIamMemberRemove_memberInMultipleBindings 🟢 Passed [Debug log] 🟢 Passed
TestAccPubsubSubscription_pubsubSubscriptionTagsExample 🔴 Failed [Error message] [Debug log] -

Caution

Issues requiring attention before PR completion

🔴 Initial Recording Failed: Some tests failed during the recording step. See the table above for details.

Please address these issues to complete your PR. If you believe these detections are incorrect or unrelated to your change, please raise the concern with your reviewer.

View the build log or the debug logs folder for detailed results.

@NickElliot VCR tests complete for 4faf853!

@NickElliot NickElliot marked this pull request as ready for review May 4, 2026 17:19
@NickElliot
Copy link
Copy Markdown
Contributor Author

all standard test failures unrelated to deletion policy

bringing in @zli82016 as a second reviewer for the TGC tests issues/for extra eyes given the size of the PR

@NickElliot NickElliot requested review from c2thorn and zli82016 May 4, 2026 17:20
Copy link
Copy Markdown
Member

@c2thorn c2thorn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you help me out by re-explaining some important points in a singular place here, or in the main PR comment? It's been a long process of reviewing individual PRs within the feature branch, and each of those were focused pieces. We should take a step back and double check we've covered everything here at the end, and it's hard to remember all the pieces to track and decisions we've made a long the way.

If this PR were to break things and someone that wasn't you or I were to try to understand the changes here, it'd be too big to decipher easily. A summary of the high-level changes in this PR would be really helpful.

My main questions right now:

  1. are the findings from the breaking change detector expected? From what I understood we were preserving the defaults via deletion_policy_default. If we are ignoring the breaking change detector, how do we know we haven't accidentally swapped a default?
  2. Is there a follow up PR expected for the provider-scoped UDP documentation?
  3. Are we planning on having contribution documentation for UDP?
  4. a few todo/to-do's in this final merge, are those tracked somewhere, or should they be addressed now?

@NickElliot
Copy link
Copy Markdown
Contributor Author

will write something up!

@zli82016
Copy link
Copy Markdown
Member

zli82016 commented May 5, 2026

The failed tgc integration tests are unrelated and have been fixed in the main branch.

@NickElliot
Copy link
Copy Markdown
Contributor Author

NickElliot commented May 6, 2026

Can you help me out by re-explaining some important points in a singular place here

I updated the top comment with full details.

  1. The breaking change flags are expected here. The design of the field has swapped from an input only field to one that is O+C, with the default being configured as a parameter supplied to the tpgresource.DefaultProviderDeletionPolicy and as the fallback option in event of a resource/provider config level setting not being detected. I’ll perform another personal review passover of the flagged breaking changes to verify that they all have their new "defaults" matching the old
  2. Here: Update reference docs to detail universal deletion policy #17445
  3. ^
  4. Solved the todos I had note of

@modular-magician
Copy link
Copy Markdown
Collaborator

modular-magician commented May 6, 2026

Hi there, I'm the Modular magician. I've detected the following information about your changes for commit eb0746d:

Diff report

Your PR generated the following diffs in downstream repositories:

Repository Diff Link Changes
google provider View Diff 2523 files changed, 39825 insertions(+), 506 deletions(-)
google-beta provider View Diff 2662 files changed, 42756 insertions(+), 571 deletions(-)
terraform-google-conversion View Diff 11 files changed, 163 insertions(+), 30 deletions(-)

Breaking Change(s) Detected

The following breaking change(s) were detected within your pull request.

  • Field deletion_policy default value changed from "" to <nil> on google_billing_subaccount - reference
  • Field deletion_policy default value changed from ABANDON to <nil> on google_firestore_database - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_alloydb_cluster - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_chronicle_data_table - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_chronicle_rule - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_firebase_data_connect_service - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_looker_instance - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_netapp_volume - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_container_attached_cluster - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_dataform_repository - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_android_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_apple_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_web_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firestore_index - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_secret_manager_regional_secret_version - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_secret_manager_secret_version - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_sql_database - reference
  • Field deletion_policy default value changed from FORCE to <nil> on google_datastream_private_connection - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_project - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_secure_source_manager_instance - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_secure_source_manager_repository - reference

If you believe this detection to be incorrect please raise the concern with your reviewer.
If you intend to make this change you will need to wait for a major release window.
An override-breaking-change label can be added to allow merging.

Missing doc report (experimental)

The following resources have fields missing in documents.

  • google_composer_environment
    • Expected Document Path: /website/docs/r/composer_environment.html.markdown
    • Fields: [deletion_policy]
  • google_compute_instance_from_machine_image
    • Expected Document Path: /website/docs/r/compute_instance_from_machine_image.html.markdown
    • Fields: [deletion_policy]
  • google_compute_instance_from_template
    • Expected Document Path: /website/docs/r/compute_instance_from_template.html.markdown
    • Fields: [deletion_policy]
  • google_endpoints_service
    • Expected Document Path: /website/docs/r/endpoints_service.html.markdown
    • Fields: [deletion_policy]

The following data sources are missing documents:

  • google_backup_dr_backup_plan, expect file /website/docs/d/backup_dr_backup_plan.html.markdown to exist.
  • google_compute_region_ssl_policy, expect file /website/docs/d/compute_region_ssl_policy.html.markdown to exist.
  • google_vmwareengine_datastore, expect file /website/docs/d/vmwareengine_datastore.html.markdown to exist.

Test report

Analytics

Total Tests Passed Skipped Affected
6400 5726 655 19
Affected Service Packages
  • All service packages are affected

Learn how VCR tests work


Step 1: Replaying Mode

Action taken

Found 19 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
  • TestAccApigeeOrganization_apigeeOrganizationCloudBasicDisableVpcPeeringTestExample
  • TestAccApigeeOrganization_apigeeOrganizationCloudFullDisableVpcPeeringTestExample
  • TestAccBeyondcorpAppConnection_beyondcorpAppConnectionBasicExample
  • TestAccCloudRunService_cloudRunServiceGpuExample
  • TestAccComputeInstanceFromTemplate_DiskForceAttach
  • TestAccComputeSecurityPolicyRule_securityPolicyRuleWithBodyExcludeExample
  • TestAccComputeSubnetwork_secondaryIpRanges_sendEmpty
  • TestAccContainerCluster_updateVersion
  • TestAccContainerNodePool_withHostMaintenancePolicy
  • TestAccDataSourceGoogleCloudRunService_basic
  • TestAccDataSourceGoogleCloudRunService_optionalProject
  • TestAccDataformConfig_update
  • TestAccDataformRepository_dataformRepositoryWithCloudsourceRepoAndSshExample
  • TestAccDataprocMetastoreService_dataprocMetastoreServicePrivateServiceConnectExample
  • TestAccDiscoveryEngineDataStore_discoveryengineDatastoreKmsKeyNameExample
  • TestAccManagedKafkaConnector_managedkafkaConnectorBasicExample
  • TestAccNetworkServicesLbRouteExtension_crossRegionInternalPluginExtension
  • TestAccNetworkServicesLbTrafficExtension_crossRegionInternalPluginExtension
  • TestAccPubsubSubscription_pubsubSubscriptionTagsExample

View the build log


Step 2: Recording Mode

Recording Mode Replaying Rerun Test Name
✅ Log TestAccNetworkServicesLbRouteExtension_crossRegionInternalPluginExtension
✅ Log TestAccNetworkServicesLbTrafficExtension_crossRegionInternalPluginExtension
✅ Log ❌ Error · Log TestAccDataformConfig_update
❌ Error · Log - TestAccApigeeOrganization_apigeeOrganizationCloudBasicDisableVpcPeeringTestExample
❌ Error · Log - TestAccApigeeOrganization_apigeeOrganizationCloudFullDisableVpcPeeringTestExample
❌ Error · Log - TestAccBeyondcorpAppConnection_beyondcorpAppConnectionBasicExample
❌ Error · Log - TestAccCloudRunService_cloudRunServiceGpuExample
❌ Error · Log - TestAccComputeInstanceFromTemplate_DiskForceAttach
❌ Error · Log - TestAccComputeSecurityPolicyRule_securityPolicyRuleWithBodyExcludeExample
❌ Error · Log - TestAccComputeSubnetwork_secondaryIpRanges_sendEmpty
❌ Error · Log - TestAccContainerCluster_updateVersion
❌ Error · Log - TestAccContainerNodePool_withHostMaintenancePolicy
❌ Error · Log - TestAccDataSourceGoogleCloudRunService_basic
❌ Error · Log - TestAccDataSourceGoogleCloudRunService_optionalProject
❌ Error · Log - TestAccDataformRepository_dataformRepositoryWithCloudsourceRepoAndSshExample
❌ Error · Log - TestAccDataprocMetastoreService_dataprocMetastoreServicePrivateServiceConnectExample
❌ Error · Log - TestAccDiscoveryEngineDataStore_discoveryengineDatastoreKmsKeyNameExample
❌ Error · Log - TestAccManagedKafkaConnector_managedkafkaConnectorBasicExample
❌ Error · Log - TestAccPubsubSubscription_pubsubSubscriptionTagsExample

Caution

Issues requiring attention before PR completion

🔴 Initial Recording Failed: Some tests failed during the recording step. See the table above for details.

🔴 Replaying Rerun Failed: Some tests failed due to non-determinism when VCR replayed the response. See the table above for details.

Please address these issues to complete your PR. If you believe these detections are incorrect or unrelated to your change, please raise the concern with your reviewer.

View the build log or the debug logs folder for detailed results.

@NickElliot, @zli82016 VCR tests complete for eb0746d!

@modular-magician
Copy link
Copy Markdown
Collaborator

modular-magician commented May 6, 2026

Hi there, I'm the Modular magician. I've detected the following information about your changes for commit d7c9d31:

Diff report

Your PR generated the following diffs in downstream repositories:

Repository Diff Link Changes
google provider View Diff 2523 files changed, 39825 insertions(+), 506 deletions(-)
google-beta provider View Diff 2662 files changed, 42756 insertions(+), 571 deletions(-)
terraform-google-conversion View Diff 11 files changed, 163 insertions(+), 30 deletions(-)

Breaking Change(s) Detected

The following breaking change(s) were detected within your pull request.

  • Field deletion_policy default value changed from "" to <nil> on google_billing_subaccount - reference
  • Field deletion_policy default value changed from ABANDON to <nil> on google_firestore_database - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_alloydb_cluster - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_chronicle_data_table - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_chronicle_rule - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_firebase_data_connect_service - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_looker_instance - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_netapp_volume - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_container_attached_cluster - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_dataform_repository - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_android_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_apple_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_web_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firestore_index - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_secret_manager_regional_secret_version - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_secret_manager_secret_version - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_sql_database - reference
  • Field deletion_policy default value changed from FORCE to <nil> on google_datastream_private_connection - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_project - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_secure_source_manager_instance - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_secure_source_manager_repository - reference

If you believe this detection to be incorrect please raise the concern with your reviewer.
If you intend to make this change you will need to wait for a major release window.
An override-breaking-change label can be added to allow merging.

Missing doc report (experimental)

The following resources have fields missing in documents.

  • google_composer_environment
    • Expected Document Path: /website/docs/r/composer_environment.html.markdown
    • Fields: [deletion_policy]
  • google_compute_instance_from_machine_image
    • Expected Document Path: /website/docs/r/compute_instance_from_machine_image.html.markdown
    • Fields: [deletion_policy]
  • google_compute_instance_from_template
    • Expected Document Path: /website/docs/r/compute_instance_from_template.html.markdown
    • Fields: [deletion_policy]
  • google_endpoints_service
    • Expected Document Path: /website/docs/r/endpoints_service.html.markdown
    • Fields: [deletion_policy]

The following data sources are missing documents:

  • google_backup_dr_backup_plan, expect file /website/docs/d/backup_dr_backup_plan.html.markdown to exist.
  • google_compute_region_ssl_policy, expect file /website/docs/d/compute_region_ssl_policy.html.markdown to exist.
  • google_vmwareengine_datastore, expect file /website/docs/d/vmwareengine_datastore.html.markdown to exist.

Test report

Analytics

Total Tests Passed Skipped Affected
6400 5724 655 21
Affected Service Packages
  • All service packages are affected

Learn how VCR tests work


Step 1: Replaying Mode

Action taken

Found 21 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
  • TestAccApigeeOrganization_apigeeOrganizationCloudBasicDisableVpcPeeringTestExample
  • TestAccApigeeOrganization_apigeeOrganizationCloudFullDisableVpcPeeringTestExample
  • TestAccBeyondcorpAppConnection_beyondcorpAppConnectionBasicExample
  • TestAccCloudRunService_cloudRunServiceGpuExample
  • TestAccComputeInstanceFromTemplate_DiskForceAttach
  • TestAccComputeSecurityPolicyRule_securityPolicyRuleWithBodyExcludeExample
  • TestAccComputeSubnetwork_secondaryIpRanges_sendEmpty
  • TestAccContainerCluster_updateVersion
  • TestAccContainerNodePool_withHostMaintenancePolicy
  • TestAccDataSourceGoogleCloudRunService_basic
  • TestAccDataSourceGoogleCloudRunService_optionalProject
  • TestAccDataformConfig_update
  • TestAccDataformRepository_dataformRepositoryWithCloudsourceRepoAndSshExample
  • TestAccDataprocMetastoreService_dataprocMetastoreServicePrivateServiceConnectExample
  • TestAccDiscoveryEngineDataStore_discoveryengineDatastoreKmsKeyNameExample
  • TestAccManagedKafkaConnector_managedkafkaConnectorBasicExample
  • TestAccNetworkServicesLbRouteExtension_crossRegionInternalPluginExtension
  • TestAccNetworkServicesLbTrafficExtension_crossRegionInternalPluginExtension
  • TestAccProjectIamMemberRemove_memberInMultipleBindings
  • TestAccProjectIamPolicy_invalidMembers
  • TestAccPubsubSubscription_pubsubSubscriptionTagsExample

View the build log


Step 2: Recording Mode

Recording Mode Replaying Rerun Test Name
✅ Log TestAccNetworkServicesLbRouteExtension_crossRegionInternalPluginExtension
✅ Log TestAccNetworkServicesLbTrafficExtension_crossRegionInternalPluginExtension
✅ Log TestAccProjectIamPolicy_invalidMembers
✅ Log ❌ Error · Log TestAccDataformConfig_update
✅ Log ❌ Error · Log TestAccProjectIamMemberRemove_memberInMultipleBindings
❌ Error · Log - TestAccApigeeOrganization_apigeeOrganizationCloudBasicDisableVpcPeeringTestExample
❌ Error · Log - TestAccApigeeOrganization_apigeeOrganizationCloudFullDisableVpcPeeringTestExample
❌ Error · Log - TestAccBeyondcorpAppConnection_beyondcorpAppConnectionBasicExample
❌ Error · Log - TestAccCloudRunService_cloudRunServiceGpuExample
❌ Error · Log - TestAccComputeInstanceFromTemplate_DiskForceAttach
❌ Error · Log - TestAccComputeSecurityPolicyRule_securityPolicyRuleWithBodyExcludeExample
❌ Error · Log - TestAccComputeSubnetwork_secondaryIpRanges_sendEmpty
❌ Error · Log - TestAccContainerCluster_updateVersion
❌ Error · Log - TestAccContainerNodePool_withHostMaintenancePolicy
❌ Error · Log - TestAccDataSourceGoogleCloudRunService_basic
❌ Error · Log - TestAccDataSourceGoogleCloudRunService_optionalProject
❌ Error · Log - TestAccDataformRepository_dataformRepositoryWithCloudsourceRepoAndSshExample
❌ Error · Log - TestAccDataprocMetastoreService_dataprocMetastoreServicePrivateServiceConnectExample
❌ Error · Log - TestAccDiscoveryEngineDataStore_discoveryengineDatastoreKmsKeyNameExample
❌ Error · Log - TestAccManagedKafkaConnector_managedkafkaConnectorBasicExample
❌ Error · Log - TestAccPubsubSubscription_pubsubSubscriptionTagsExample

Caution

Issues requiring attention before PR completion

🔴 Initial Recording Failed: Some tests failed during the recording step. See the table above for details.

🔴 Replaying Rerun Failed: Some tests failed due to non-determinism when VCR replayed the response. See the table above for details.

Please address these issues to complete your PR. If you believe these detections are incorrect or unrelated to your change, please raise the concern with your reviewer.

View the build log or the debug logs folder for detailed results.

@NickElliot, @zli82016 VCR tests complete for d7c9d31!

Copy link
Copy Markdown
Member

@c2thorn c2thorn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this is good to go, the contributor docs can go any time after.

Verified the defaults match their previous values, so I believe we are good there.

Thank you for the write up and explanations.

Copy link
Copy Markdown
Member

@zli82016 zli82016 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM except that the unit test failed.

@modular-magician
Copy link
Copy Markdown
Collaborator

modular-magician commented May 8, 2026

Hi there, I'm the Modular magician. I've detected the following information about your changes for commit 8a5493d:

Diff report

Your PR generated the following diffs in downstream repositories:

Repository Diff Link Changes
google provider View Diff 2528 files changed, 39927 insertions(+), 506 deletions(-)
google-beta provider View Diff 2665 files changed, 42810 insertions(+), 571 deletions(-)
terraform-google-conversion View Diff 11 files changed, 163 insertions(+), 30 deletions(-)

Breaking Change(s) Detected

The following breaking change(s) were detected within your pull request.

  • Field deletion_policy default value changed from "" to <nil> on google_billing_subaccount - reference
  • Field deletion_policy default value changed from ABANDON to <nil> on google_firestore_database - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_alloydb_cluster - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_chronicle_data_table - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_chronicle_rule - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_firebase_data_connect_service - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_looker_instance - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_netapp_volume - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_container_attached_cluster - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_dataform_repository - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_android_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_apple_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_web_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firestore_index - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_secret_manager_regional_secret_version - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_secret_manager_secret_version - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_sql_database - reference
  • Field deletion_policy default value changed from FORCE to <nil> on google_datastream_private_connection - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_project - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_secure_source_manager_instance - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_secure_source_manager_repository - reference

If you believe this detection to be incorrect please raise the concern with your reviewer.
If you intend to make this change you will need to wait for a major release window.
An override-breaking-change label can be added to allow merging.

Missing doc report (experimental)

The following resources have fields missing in documents.

  • google_composer_environment
    • Expected Document Path: /website/docs/r/composer_environment.html.markdown
    • Fields: [deletion_policy]
  • google_compute_instance_from_machine_image
    • Expected Document Path: /website/docs/r/compute_instance_from_machine_image.html.markdown
    • Fields: [deletion_policy]
  • google_compute_instance_from_template
    • Expected Document Path: /website/docs/r/compute_instance_from_template.html.markdown
    • Fields: [deletion_policy]
  • google_endpoints_service
    • Expected Document Path: /website/docs/r/endpoints_service.html.markdown
    • Fields: [deletion_policy]

The following data sources are missing documents:

  • google_backup_dr_backup_plan, expect file /website/docs/d/backup_dr_backup_plan.html.markdown to exist.
  • google_compute_region_ssl_policy, expect file /website/docs/d/compute_region_ssl_policy.html.markdown to exist.
  • google_vmwareengine_datastore, expect file /website/docs/d/vmwareengine_datastore.html.markdown to exist.

Test report

Analytics

Total Tests Passed Skipped Affected
6415 5742 657 16
Affected Service Packages
  • All service packages are affected

Learn how VCR tests work


Step 1: Replaying Mode

Action taken

Found 16 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
  • TestAccApigeeOrganization_apigeeOrganizationCloudBasicDisableVpcPeeringTestExample
  • TestAccApigeeOrganization_apigeeOrganizationCloudFullDisableVpcPeeringTestExample
  • TestAccBeyondcorpAppConnection_beyondcorpAppConnectionBasicExample
  • TestAccCloudRunService_cloudRunServiceGpuExample
  • TestAccComputeInstanceFromTemplate_DiskForceAttach
  • TestAccComputeSecurityPolicyRule_securityPolicyRuleWithBodyExcludeExample
  • TestAccComputeSubnetwork_secondaryIpRanges_sendEmpty
  • TestAccContainerCluster_updateVersion
  • TestAccContainerNodePool_withHostMaintenancePolicy
  • TestAccDataformRepository_dataformRepositoryWithCloudsourceRepoAndSshExample
  • TestAccDataprocMetastoreService_dataprocMetastoreServicePrivateServiceConnectExample
  • TestAccDiscoveryEngineDataStore_discoveryengineDatastoreKmsKeyNameExample
  • TestAccEphemeralServiceAccountKey_create
  • TestAccEphemeralServiceAccountKey_upload
  • TestAccManagedKafkaConnector_managedkafkaConnectorBasicExample
  • TestAccPubsubSubscription_pubsubSubscriptionTagsExample

View the build log


Step 2: Recording Mode

Recording Mode Replaying Rerun Test Name
✅ Log ❌ Error · Log TestAccEphemeralServiceAccountKey_create
❌ Error · Log - TestAccApigeeOrganization_apigeeOrganizationCloudBasicDisableVpcPeeringTestExample
❌ Error · Log - TestAccApigeeOrganization_apigeeOrganizationCloudFullDisableVpcPeeringTestExample
❌ Error · Log - TestAccBeyondcorpAppConnection_beyondcorpAppConnectionBasicExample
❌ Error · Log - TestAccCloudRunService_cloudRunServiceGpuExample
❌ Error · Log - TestAccComputeInstanceFromTemplate_DiskForceAttach
❌ Error · Log - TestAccComputeSecurityPolicyRule_securityPolicyRuleWithBodyExcludeExample
❌ Error · Log - TestAccComputeSubnetwork_secondaryIpRanges_sendEmpty
❌ Error · Log - TestAccContainerCluster_updateVersion
❌ Error · Log - TestAccContainerNodePool_withHostMaintenancePolicy
❌ Error · Log - TestAccDataformRepository_dataformRepositoryWithCloudsourceRepoAndSshExample
❌ Error · Log - TestAccDataprocMetastoreService_dataprocMetastoreServicePrivateServiceConnectExample
❌ Error · Log - TestAccDiscoveryEngineDataStore_discoveryengineDatastoreKmsKeyNameExample
❌ Error · Log - TestAccEphemeralServiceAccountKey_upload
❌ Error · Log - TestAccManagedKafkaConnector_managedkafkaConnectorBasicExample
❌ Error · Log - TestAccPubsubSubscription_pubsubSubscriptionTagsExample

Caution

Issues requiring attention before PR completion

🔴 Initial Recording Failed: Some tests failed during the recording step. See the table above for details.

🔴 Replaying Rerun Failed: Some tests failed due to non-determinism when VCR replayed the response. See the table above for details.

Please address these issues to complete your PR. If you believe these detections are incorrect or unrelated to your change, please raise the concern with your reviewer.

View the build log or the debug logs folder for detailed results.

@NickElliot VCR tests complete for 8a5493d!

@modular-magician
Copy link
Copy Markdown
Collaborator

modular-magician commented May 8, 2026

Hi there, I'm the Modular magician. I've detected the following information about your changes for commit ee0994e:

Diff report

Your PR generated the following diffs in downstream repositories:

Repository Diff Link Changes
google provider View Diff 2528 files changed, 39927 insertions(+), 506 deletions(-)
google-beta provider View Diff 2665 files changed, 42810 insertions(+), 571 deletions(-)
terraform-google-conversion View Diff 11 files changed, 163 insertions(+), 30 deletions(-)

Breaking Change(s) Detected

The following breaking change(s) were detected within your pull request.

  • Field deletion_policy default value changed from "" to <nil> on google_billing_subaccount - reference
  • Field deletion_policy default value changed from ABANDON to <nil> on google_firestore_database - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_alloydb_cluster - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_chronicle_data_table - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_chronicle_rule - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_firebase_data_connect_service - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_looker_instance - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_netapp_volume - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_container_attached_cluster - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_dataform_repository - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_android_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_apple_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_web_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firestore_index - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_secret_manager_regional_secret_version - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_secret_manager_secret_version - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_sql_database - reference
  • Field deletion_policy default value changed from FORCE to <nil> on google_datastream_private_connection - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_project - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_secure_source_manager_instance - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_secure_source_manager_repository - reference

If you believe this detection to be incorrect please raise the concern with your reviewer.
If you intend to make this change you will need to wait for a major release window.
An override-breaking-change label can be added to allow merging.

Missing doc report (experimental)

The following resources have fields missing in documents.

  • google_composer_environment
    • Expected Document Path: /website/docs/r/composer_environment.html.markdown
    • Fields: [deletion_policy]
  • google_compute_instance_from_machine_image
    • Expected Document Path: /website/docs/r/compute_instance_from_machine_image.html.markdown
    • Fields: [deletion_policy]
  • google_compute_instance_from_template
    • Expected Document Path: /website/docs/r/compute_instance_from_template.html.markdown
    • Fields: [deletion_policy]
  • google_endpoints_service
    • Expected Document Path: /website/docs/r/endpoints_service.html.markdown
    • Fields: [deletion_policy]

The following data sources are missing documents:

  • google_backup_dr_backup_plan, expect file /website/docs/d/backup_dr_backup_plan.html.markdown to exist.
  • google_compute_region_ssl_policy, expect file /website/docs/d/compute_region_ssl_policy.html.markdown to exist.
  • google_vmwareengine_datastore, expect file /website/docs/d/vmwareengine_datastore.html.markdown to exist.

Test report

Analytics

Total Tests Passed Skipped Affected
6415 5741 657 17
Affected Service Packages
  • All service packages are affected

Learn how VCR tests work


Step 1: Replaying Mode

Action taken

Found 17 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
  • TestAccApigeeOrganization_apigeeOrganizationCloudBasicDisableVpcPeeringTestExample
  • TestAccApigeeOrganization_apigeeOrganizationCloudFullDisableVpcPeeringTestExample
  • TestAccBeyondcorpAppConnection_beyondcorpAppConnectionBasicExample
  • TestAccCloudRunService_cloudRunServiceGpuExample
  • TestAccComputeInstanceFromTemplate_DiskForceAttach
  • TestAccComputeSecurityPolicyRule_securityPolicyRuleWithBodyExcludeExample
  • TestAccComputeSubnetwork_secondaryIpRanges_sendEmpty
  • TestAccContainerCluster_updateVersion
  • TestAccContainerNodePool_withHostMaintenancePolicy
  • TestAccDataformRepository_dataformRepositoryWithCloudsourceRepoAndSshExample
  • TestAccDataprocMetastoreService_dataprocMetastoreServicePrivateServiceConnectExample
  • TestAccDiscoveryEngineDataStore_discoveryengineDatastoreKmsKeyNameExample
  • TestAccEphemeralServiceAccountKey_create
  • TestAccEphemeralServiceAccountKey_upload
  • TestAccManagedKafkaConnector_managedkafkaConnectorBasicExample
  • TestAccProjectIamMemberRemove_memberInMultipleBindings
  • TestAccPubsubSubscription_pubsubSubscriptionTagsExample

View the build log


Step 2: Recording Mode

Recording Mode Replaying Rerun Test Name
✅ Log ❌ Error · Log TestAccEphemeralServiceAccountKey_create
✅ Log ❌ Error · Log TestAccProjectIamMemberRemove_memberInMultipleBindings
❌ Error · Log - TestAccApigeeOrganization_apigeeOrganizationCloudBasicDisableVpcPeeringTestExample
❌ Error · Log - TestAccApigeeOrganization_apigeeOrganizationCloudFullDisableVpcPeeringTestExample
❌ Error · Log - TestAccBeyondcorpAppConnection_beyondcorpAppConnectionBasicExample
❌ Error · Log - TestAccCloudRunService_cloudRunServiceGpuExample
❌ Error · Log - TestAccComputeInstanceFromTemplate_DiskForceAttach
❌ Error · Log - TestAccComputeSecurityPolicyRule_securityPolicyRuleWithBodyExcludeExample
❌ Error · Log - TestAccComputeSubnetwork_secondaryIpRanges_sendEmpty
❌ Error · Log - TestAccContainerCluster_updateVersion
❌ Error · Log - TestAccContainerNodePool_withHostMaintenancePolicy
❌ Error · Log - TestAccDataformRepository_dataformRepositoryWithCloudsourceRepoAndSshExample
❌ Error · Log - TestAccDataprocMetastoreService_dataprocMetastoreServicePrivateServiceConnectExample
❌ Error · Log - TestAccDiscoveryEngineDataStore_discoveryengineDatastoreKmsKeyNameExample
❌ Error · Log - TestAccEphemeralServiceAccountKey_upload
❌ Error · Log - TestAccManagedKafkaConnector_managedkafkaConnectorBasicExample
❌ Error · Log - TestAccPubsubSubscription_pubsubSubscriptionTagsExample

Caution

Issues requiring attention before PR completion

🔴 Initial Recording Failed: Some tests failed during the recording step. See the table above for details.

🔴 Replaying Rerun Failed: Some tests failed due to non-determinism when VCR replayed the response. See the table above for details.

Please address these issues to complete your PR. If you believe these detections are incorrect or unrelated to your change, please raise the concern with your reviewer.

View the build log or the debug logs folder for detailed results.

@NickElliot VCR tests complete for ee0994e!

@modular-magician
Copy link
Copy Markdown
Collaborator

Hi there, I'm the Modular magician. I've detected the following information about your changes for commit 365c06f:

Diff report

Your PR generated the following diffs in downstream repositories:

Repository Diff Link Changes
google provider View Diff 2528 files changed, 39927 insertions(+), 506 deletions(-)
google-beta provider View Diff 2665 files changed, 42810 insertions(+), 571 deletions(-)
terraform-google-conversion View Diff 11 files changed, 163 insertions(+), 30 deletions(-)

Breaking Change(s) Detected

The following breaking change(s) were detected within your pull request.

  • Field deletion_policy default value changed from "" to <nil> on google_billing_subaccount - reference
  • Field deletion_policy default value changed from ABANDON to <nil> on google_firestore_database - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_alloydb_cluster - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_chronicle_data_table - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_chronicle_rule - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_firebase_data_connect_service - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_looker_instance - reference
  • Field deletion_policy default value changed from DEFAULT to <nil> on google_netapp_volume - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_container_attached_cluster - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_dataform_repository - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_android_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_apple_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firebase_web_app - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_firestore_index - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_secret_manager_regional_secret_version - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_secret_manager_secret_version - reference
  • Field deletion_policy default value changed from DELETE to <nil> on google_sql_database - reference
  • Field deletion_policy default value changed from FORCE to <nil> on google_datastream_private_connection - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_project - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_secure_source_manager_instance - reference
  • Field deletion_policy default value changed from PREVENT to <nil> on google_secure_source_manager_repository - reference

If you believe this detection to be incorrect please raise the concern with your reviewer.
If you intend to make this change you will need to wait for a major release window.
An override-breaking-change label can be added to allow merging.

Missing doc report (experimental)

The following resources have fields missing in documents.

  • google_composer_environment
    • Expected Document Path: /website/docs/r/composer_environment.html.markdown
    • Fields: [deletion_policy]
  • google_compute_instance_from_machine_image
    • Expected Document Path: /website/docs/r/compute_instance_from_machine_image.html.markdown
    • Fields: [deletion_policy]
  • google_compute_instance_from_template
    • Expected Document Path: /website/docs/r/compute_instance_from_template.html.markdown
    • Fields: [deletion_policy]
  • google_endpoints_service
    • Expected Document Path: /website/docs/r/endpoints_service.html.markdown
    • Fields: [deletion_policy]

The following data sources are missing documents:

  • google_backup_dr_backup_plan, expect file /website/docs/d/backup_dr_backup_plan.html.markdown to exist.
  • google_compute_region_ssl_policy, expect file /website/docs/d/compute_region_ssl_policy.html.markdown to exist.
  • google_vmwareengine_datastore, expect file /website/docs/d/vmwareengine_datastore.html.markdown to exist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants