fix(cloudflare): improve zone adoption and settings idempotency #1149
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes zone adoption failures when setting values that are already at the desired state.
Previously, adopting an existing zone with default settings (like
http2: "on") would failwith a
400 Bad Requesterror from Cloudflare's API.Problem
When adopting an existing Cloudflare zone, updating settings would fail if:
This particularly affected settings like
http2,http3,ipv6, etc. which default to"on".Example error:
Failed to update zone setting http2: Bad Request
Solution
Implemented proper idempotency for zone settings updates:
updates
This follows IaC best practices (similar to Terraform/Pulumi) by:
Testing
Manually tested with real Cloudflare zone containing default settings. Zone adoption now
succeeds and re-running with identical settings is idempotent.
Note: Automated testing is challenging because zone creation requires actual domain
ownership. The existing test suite requires access to
.devdomains which need registrationand verification. Future work could improve the test infrastructure for zone resources.
Code snippet
The fix enables this pattern to work reliably: