The Cloudflare Terraform provider v5 is a ground-up rewrite with renamed
resources, changed attributes, and a new worker deployment model. This is
a breaking change requiring provider v5.x.
Resource migrations:
- cloudflare_record → cloudflare_dns_record (all 8 DNS records)
- value → content on all DNS records
- cloudflare_worker_script → cloudflare_worker + cloudflare_worker_version
+ cloudflare_workers_deployment (new 3-resource pattern)
- cloudflare_worker_route → cloudflare_workers_route, script_name → script
- cloudflare_workers_kv key → key_name
- data.cloudflare_zone: dropped account_id (no longer top-level in v5)
- smtp_tls record: added required ttl attribute
- mta-sts.js: converted from Service Worker to ES module format
State migration:
- moved blocks handle DNS record and route renames automatically
- Worker script (1→3 resources) requires manual state rm of the old
cloudflare_worker_script resource
BREAKING CHANGE: Requires Cloudflare provider >= 5.0, < 6.0
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The module uses `nullable = false` on variables which requires
Terraform 1.1+. Without `required_version` set, users on older
versions would get confusing errors instead of a clear version
constraint message.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>