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>
Replace the standalone release-please workflow with a unified CI
workflow that runs formatting checks, terraform validate, docs
freshness, and tflint on every push. Release-please is now handled
by jimeh/release-please-manifest-action with GitHub App auth.
Also:
- Move release-please config files under .github/
- Add changelog-sections and always-update to release-please config
- Add tflint with recommended terraform plugin preset
- Add .gitignore for .terraform/ and .terraform.lock.hcl
- Add lint and lint-fix Make targets
- Clean .terraform.lock.hcl before terraform-docs runs
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>
Manual `terraform-docs markdown .` was fragile — no injection markers,
no idempotency check, and no consistent formatting pipeline.
Add terraform-docs inject mode with BEGIN/END_TF_DOCS markers in the
README so `terraform-docs .` regenerates only the managed section.
Wrap the injected block with prettier-ignore directives to prevent
prettier from reformatting tables (which would break terraform-docs
--output-check).
Restructure Makefile with three targets:
- `docs`: regenerate terraform-docs + prettier format README
- `fmt`: docs + terraform fmt -recursive
- `check`: verify all docs/formatting are current (CI-friendly)
Add node (LTS) and prettier to .mise.toml for markdown formatting.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The sentence about MX records was cut off mid-thought, leaving readers
without the actionable advice to use the records given by Google.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Provide project context and coding guidelines for Claude Code via
AGENTS.md (architecture, conventions, commands) and CLAUDE.md (pointer
to AGENTS.md).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add .mise.toml to pin terraform and terraform-docs tool versions.
Regenerate README.md via terraform-docs, which reformats the
input/output/requirement tables and escapes underscores in markdown
links.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>