{{ message }}
Repository navigation
Update Terraform cloudflare to v5.28.0 - #442
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/cloudflare-5.x
branch
from
October 12, 2026 20:46
f26a33f to
95f0536
Compare
renovate
Bot
force-pushed
the
renovate/cloudflare-5.x
branch
6 times, most recently
from
October 20, 2026 19:57
adf9ec2 to
4d747c8
Compare
renovate
Bot
force-pushed
the
renovate/cloudflare-5.x
branch
from
October 20, 2026 23:38
4d747c8 to
60f6beb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

This PR contains the following updates:
5.25.0→5.28.05.28.1Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
cloudflare/terraform-provider-cloudflare (cloudflare)
v5.28.0Compare Source
Full Changelog: v5.27.0...v5.28.0
⚠ BREAKING CHANGES
operation_idhas been renamed todiscovery_id,zone_idis now required, and the computedidattribute has been removed. Update resource arguments and any expressions referencingid. This resource remains deprecated and cannot be imported. No new state upgrader is included for these schema changes.is_recent,is_regex, andis_similarityare now required instead of optional. Set all three explicitly, usingfalsefor protections that should not be bypassed.cloudflare_registrar_domainresource and data source, and thecloudflare_registrar_domainslist data source, have been removed. Configurations using these types must be updated before upgrading; this release does not provide a replacement Terraform resource or data source.word_listattribute is now a list of strings instead of a JSON-encoded string, on resources and their data sources. The same change applies to nestedword_listvalues in thezero_trust_dlp_custom_profileandzero_trust_dlp_predefined_profiledata sources. Removejsondecode(...)around these values and update expressions expecting a string. No new state upgrader is included for this type change.mfa_ssh_piv_key_requirementshas been replaced withmfa_piv_key_requirementson the resource and data source, restoring the field name accepted by the API. Rename the argument and any references to it; the nested attributes are unchanged. No new state upgrader is included for this rename. This also restores API serialization and empty-list normalization, so PIV requirements use the correct API field name and empty SSH key lists do not cause perpetual diffs.Notes
deployment_configs.preview.build_image_major_versionordeployment_configs.production.build_image_major_versionto 1 are rejected. Use version 3 for those projects.target_testsattribute is deprecated on the resource and its data sources.deprecatedattribute no longer defaults tofalse.Features
New Resources
exact,upto, andorigin_controlledpayment schemes. Supportsterraform importusing the zone ID.New Data Sources
New Attributes
metadata.created_from_emdash_plugin, withtype(nativeorrest) andversion.build_image_auto_upgrade.from_versionandbuild_image_auto_upgrade.to_version, identifying projects moved from a retired build image.bindings.retry.max_attemptsandbindings.retry.timeout_ms.max_attemptscounts retries after the initial request and accepts 0–10; zero disables retries.timeout_msaccepts 500–60000 and controls the retry window, not the initial-request timeout.mode; setmode = "instant"when creating a namespace to use KV Instant, or omit it for a classic namespace. Changing the resource's mode forces replacement.bindings_inherit = "strict"makes uploads fail when an inherited binding cannot be resolved, instead of silently dropping that binding.target_criteria.include,target_criteria.require, andtarget_criteria.exclude, supporting hostname and tag selectors for infrastructure targets. The rule format requiresinclude;requireandexcludeare optional. Each rule must contain a hostname selector or tags, with selector sizes and empty values validated at plan time. The legacytarget_criteria.target_attributesformat remains supported for unchanged persisted maps, including non-hostname keys. For new or changed criteria, prefer the rule format. The legacy format and rule format cannot be combined in the same criterion.config.login_page_auto_prompt, defaulting tofalseon the resource, to automatically prompt for passkey authentication on the Access login page.region, identifying where the certificate authority's key material is pinned.lookupquery support for finding complete application name mentions in a phrase. Usefilter.lookupon the singular data source orlookupon the list data source. It cannot be combined withsearch.New Accepted Values
session_durationis now supported for infrastructure applications and defaults to24h, fixing creation failures when the API returns this default. It sets the maximum connection duration and must uses,m, orhin whole seconds.typeacceptspasskeys.matchexpressions supportdevice.tags.Bug Fixes
read_replicationoptional and computed with a nested custom type, allowing API-returned replication settings to populate state when the block is omitted.include_shadow_metadatatofalseduring refresh and v4 to v5 migration, avoiding spurious updates for older state. Allowmodified_onto change whenprivate_routingorinclude_shadow_metadatachanges, preventing inconsistent-result errors after updates.setting_idduring import, so imported hostname TLS settings can be refreshed and managed.content_converterfields. Preserve configuredcontent_convertervalues and existing v5 state, including rules managed withlifecycle.ignore_changes.previews_base_config, including configuration-derived unknown values, so preview-only updates do not incorrectly retain the previousupdated_onvalue or suppress the planned change.CF-Entrypointheader when refreshing multipart script content, allowing renamed entrypoints to surface as drift instead of failing to find a stale module name. Preserve service-workerbody_partformat during refresh.v5.27.0Compare Source
Full Changelog: v5.26.0...v5.27.0
⚠ BREAKING CHANGES
One change requires a configuration edit. The rest of this release's schema movement is read-only reshaping with no action required — see Schema Changes at the end.
featureandwith_schemasattributes have been removed from the resource. They were never resource state — both are read-shaping query parameters on the list/get endpoints, and there is no create or update endpoint that accepts them. Remove them from anycloudflare_api_shield_operationblock; leaving them in place produces an "Unsupported argument" error. The schema version moves from 500 to 501 and an automatic state upgrader strips both fields from existing state, so no manual state editing is required. This also fixes the.with_schemas: was cty.False, but now nullerror raised when upgrading from v5.26.0.Notes
ha_modeno longer forces replacement. The upstream API added update support, so the site is modified in place.ha_linkno longer forces replacement, for the same reason.health_check_rateis now configurable (previously read-only).hybrid_search_enablednow reflects the API default oftruefor newly created instances. Existing instances keep the value already in state, so upgrading does not plan a change.nameservers.ns_setis now computed. It applies only to custom nameserver types and is preserved from state when the API does not return it.foundation_dnsis deprecated and will be removed in a future API version. Setnameservers.typetocloudflare.advancedto turn Advanced Nameservers on, orcloudflare.standardto turn it off.spend_limits.rules.idchanged from865b4d33to00000000. Configurations that do not setidexplicitly will show a one-time diff on the next plan.profile_typenow forces replacement. The field is set when the profile is created and cannot be changed, so an in-place update was never possible. Configurations that omitprofile_typeare unaffected.Features
New Resources
New Data Sources
New Attributes
load_balance_inner_flowsstrict_service_token_authnameservers.nameserver_set_idhostnamefiltercategoryandis_selectableNew Accepted Values
rules.conditions[...].operatoracceptshasandnot_hastypeacceptsbasin_catalogbindings.typeacceptsartifactsbindings.typeacceptsartifacts,flagship,k2andmessagingnameservers.typeacceptscloudflare.advancedandcustomOther
terraform importapplies_to_all_integrationsisfalseand no integration IDs resolve. Existing policies that omitintegration_idsand retain IDs in state continue to plan normally.Bug Fixes
normalizefield to v500 migration target modelai_bots_migration_opt_outinto the API modelkey_idfrom the API'suidafter create, so plan, refresh, update and destroy no longer fail with "missing required key_id parameter"include_shadow_metadatato false on importfieldsresult mapdecode_null_to_zerotofilter_attack_traffictoken_idto the v500 migration target modelfrequencyorregionchange, as the API has no update endpoint for scheduled testsquery_stringwildcardomit_sourceto false on importpage/per_pageto their spec values on importobservability.redact_query_stringexports_reconciliationfrom the v0 legacy schemaexpiration/expiration_ttlto the v500 migration target modelbase_pathandobservability.issuesattributesstreamattribute to the bindings schemaforcefield to the legacy V0 migration structclient_secret; redactauth_credentialsandclient_secretfrom debug logsaccounts/<account_id>orzones/<zone_id>prefix. Account and zone IDs are both 32-character hex, so the previous length-based detection always resolved to account scope and zone-scoped resources could not be imported.warp_auth_non_browser_401to the v4 source model, unblocking v4 to v5 migrationmfa_configuration_allowed/service_token_inactivityon importmfa_configuration_allowed,service_token_inactivity,trusted_accountshafrommetadata.haon import and readSchema Changes (no action required)
Upstream Cloudflare API schema changes picked up via the cloudflare-go v7.12.0 bump. These are listed for completeness; none require a change to a working configuration.
Of the 54 removed attributes, 52 are read-only (computed): existing state files load without user action and plans are unaffected, so only configurations that reference them — in an
outputblock or an expression — need updating. The two attributes that becomeRequiredwere already mandatory server-side, so a request omitting them was always rejected; the failure simply moves from apply time to plan time. The one type change is on data sources only, and HCL converts numeric strings automatically.policies.permission_groups.meta.key/.valuepair has been replaced with typed fields —category,deprecated,description,editable,eol_at,label,scopes,visibility. Expressions readingmeta.key/meta.valuemust move to the named field.integration.integrationhas been renamed tointegration.hyperdrive_config_provider.settings.email,settings.pagerdutyandsettings.webhooksdetail attributes are no longer surfaced on thecloudflare_queueresource or the queue data sources. Relatedly,notificationis no longer an accepted value for the read-onlyconsumers.typeattribute on those surfaces. Queue configuration is unaffected — thecloudflare_queue_consumerresource is unchanged and still accepts and manages all three settings blocks.rulesis nowRequiredinstead ofOptional. The API already rejects a request that omits it, so this moves the failure from apply time to plan time rather than breaking a working configuration.nameservers.typeis nowRequiredinstead ofOptional.nameserversbecame a discriminated union upstream andtypeis its discriminator, so it was already mandatory in practice.limitchanged fromStringtoInt64and is now constrained to between 1 and 200. These are data sources only, so there is no state to migrate, and HCL converts numeric strings automatically —limit = "10"continues to work.v5.26.0Compare Source
Full Changelog: v5.25.0...v5.26.0
Features
New Resources
New Data Sources
New Attributes
Bug Fixes
private_keyoptional to unblock settingcustom_csr_idsupport_subaddressto resource schemaedge_cache_ttlmaximum to allow one-year valuesuser_agent_operator_suffixunquoted and read fallback from environment variableUseNonNullStateForUnknownoncreated_onto prevent perpetual diffConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.