Cloudflare Provider >=4.41.0时Terraform Plan误报cloudflare_record变更
Terraform Cloudflare Provider >=4.41.0 误报cloudflare_record需添加value字段
问题现象
使用Terraform 1.9.8搭配Cloudflare Provider 4.41.0及以上版本时,已存在的cloudflare_record资源配置未做任何修改,但执行terraform plan时却误报要就地更新,提示添加value字段。切回4.40.0版本后,该误报消失。
受影响资源
cloudflare_record
环境信息
- Terraform:1.9.8
- Cloudflare Provider:4.41.0~4.46.0(均存在该问题)
模块配置示例
module "cusip-com-cname-record" { source = "git::https://github.<org>.com/neteng/dns-modules.git//cloudflare//cname-record" email-address = data.aws_ssm_parameter.email-address.value api-key = data.aws_ssm_parameter.api-key.value cname-records = { "cusip.com/1/test1._domainkey" = { zone-id = local.cusip-com name = "test1._domainkey" value = "target1.amazonses.com" ttl = 600 } "cusip.com/1/test2._domainkey" = { zone-id = local.cusip-com name = "test2._domainkey" value = "target2.amazonses.com" ttl = 600 } } }
错误的Plan输出
module.cusip-com-cname-record.cloudflare_record.cname-record["cusip.com/1/test1._domainkey"] will be updated in-place ~ resource "cloudflare_record" "cname-record" { id = "" name = "test1._domainkey" tags = [] + value = "target1.amazonses.com" # (10 unchanged attributes hidden) } module.cusip-com-cname-record.cloudflare_record.cname-record["cusip.com/1/test2._domainkey"] will be updated in-place ~ resource "cloudflare_record" "cname-record" { id = "" name = "test2._domainkey" tags = [] + value = "target2.amazonses.com" # (10 unchanged attributes hidden) } Plan: 0 to add, 2 to change, 0 to destroy.
预期结果
执行terraform plan时应输出:
No changes. Your infrastructure matches the configuration.
临时处理办法
- 锁定Cloudflare Provider版本到4.40.0,修改
versions.tf:
terraform { required_providers { cloudflare = { source = "cloudflare/cloudflare" version = "=4.40.0" } } }
- 执行
terraform init -upgrade完成版本回退,之后再运行terraform plan即可恢复正常。
注:该问题大概率是Cloudflare Provider在4.41.0版本后对
cloudflare_record的状态读取逻辑做了调整,导致本地配置与远程状态的value字段映射异常,需等待官方发布修复版本。
内容的提问来源于stack exchange,提问作者Maheedhar Tumpudi
相关产品推荐
相关产品推荐

