terraform-provider-ibm
terraform-provider-ibm copied to clipboard
ibm_dns_resource_record attribute name changes after the first apply
Community Note
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
- Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
- If you are interested in working on this issue or have submitted a pull request, please leave a comment
Terraform CLI and Terraform IBM Provider Version
Terraform v1.5.3
on darwin_arm64
+ provider registry.terraform.io/ibm-cloud/ibm v1.62.0
Your version of Terraform is out of date! The latest version
is 1.7.5. You can update by downloading from https://www.terraform.io/downloads.html
Affected Resource(s)
- ibm_dns_resource_record
Terraform Configuration Files
Please include all Terraform configurations required to reproduce the bug. Bug reports without a functional reproduction may be closed without investigation.
variable "region" {}
variable "prefix" {}
variable "resource_group" {}
provider "ibm" {
region = var.region
}
/////////////////////////////////////////
data "ibm_resource_group" "group" {
name = var.resource_group
}
locals {
resource_group = data.ibm_resource_group.group.id
}
resource "ibm_resource_instance" "dns_services_instance" {
name = "dns-services-for-vpc"
service = "dns-svcs"
plan = "standard-dns"
resource_group_id = data.ibm_resource_group.group.id
location = "global"
}
resource "ibm_dns_zone" "dns_services_zone" {
name = "cloud.example.cloud"
instance_id = ibm_resource_instance.dns_services_instance.guid
}
resource "ibm_dns_resource_record" "dns_services_resource_record_a" {
instance_id = ibm_resource_instance.dns_services_instance.guid
zone_id = ibm_dns_zone.dns_services_zone.zone_id
type = "A"
name = "aaa-transit-z1-worker"
rdata = "10.0.0.4"
ttl = 3600
}
output "ibm_dns_resource_record" {
value = ibm_dns_resource_record.dns_services_resource_record_a
}
output "name" {
value = ibm_dns_resource_record.dns_services_resource_record_a.name
}
Run apply twice. First time the name output is aaa-transit-z1-worker
. The second time the name output is aaa-transit-z1-worker.cloud.example.cloud
Full experience of running twice:
tfbugs/bug-ibm_dns_resource_record % tfa
data.ibm_resource_group.group: Reading...
data.ibm_resource_group.group: Read complete after 0s [id=008399d1e544476c8a5477aee630b91c]
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# ibm_dns_resource_record.dns_services_resource_record_a will be created
+ resource "ibm_dns_resource_record" "dns_services_resource_record_a" {
+ created_on = (known after apply)
+ id = (known after apply)
+ instance_id = (known after apply)
+ modified_on = (known after apply)
+ name = "aaa-transit-z1-worker"
+ preference = 0
+ priority = 0
+ rdata = "10.0.0.4"
+ resource_record_id = (known after apply)
+ ttl = 3600
+ type = "A"
+ weight = 0
+ zone_id = (known after apply)
}
# ibm_dns_zone.dns_services_zone will be created
+ resource "ibm_dns_zone" "dns_services_zone" {
+ created_on = (known after apply)
+ id = (known after apply)
+ instance_id = (known after apply)
+ modified_on = (known after apply)
+ name = "cloud.example.cloud"
+ state = (known after apply)
+ zone_id = (known after apply)
}
# ibm_resource_instance.dns_services_instance will be created
+ resource "ibm_resource_instance" "dns_services_instance" {
+ account_id = (known after apply)
+ allow_cleanup = (known after apply)
+ created_at = (known after apply)
+ created_by = (known after apply)
+ crn = (known after apply)
+ dashboard_url = (known after apply)
+ deleted_at = (known after apply)
+ deleted_by = (known after apply)
+ extensions = (known after apply)
+ guid = (known after apply)
+ id = (known after apply)
+ last_operation = (known after apply)
+ location = "global"
+ locked = (known after apply)
+ name = "dns-services-for-vpc"
+ plan = "standard-dns"
+ plan_history = (known after apply)
+ resource_aliases_url = (known after apply)
+ resource_bindings_url = (known after apply)
+ resource_controller_url = (known after apply)
+ resource_crn = (known after apply)
+ resource_group_crn = (known after apply)
+ resource_group_id = "008399d1e544476c8a5477aee630b91c"
+ resource_group_name = (known after apply)
+ resource_id = (known after apply)
+ resource_keys_url = (known after apply)
+ resource_name = (known after apply)
+ resource_plan_id = (known after apply)
+ resource_status = (known after apply)
+ restored_at = (known after apply)
+ restored_by = (known after apply)
+ scheduled_reclaim_at = (known after apply)
+ scheduled_reclaim_by = (known after apply)
+ service = "dns-svcs"
+ service_endpoints = (known after apply)
+ state = (known after apply)
+ status = (known after apply)
+ sub_type = (known after apply)
+ tags = (known after apply)
+ target_crn = (known after apply)
+ type = (known after apply)
+ update_at = (known after apply)
+ update_by = (known after apply)
}
Plan: 3 to add, 0 to change, 0 to destroy.
Changes to Outputs:
+ ibm_dns_resource_record = {
+ created_on = (known after apply)
+ id = (known after apply)
+ instance_id = (known after apply)
+ modified_on = (known after apply)
+ name = "aaa-transit-z1-worker"
+ port = null
+ preference = 0
+ priority = 0
+ protocol = null
+ rdata = "10.0.0.4"
+ resource_record_id = (known after apply)
+ service = null
+ timeouts = null
+ ttl = 3600
+ type = "A"
+ weight = 0
+ zone_id = (known after apply)
}
+ name = "aaa-transit-z1-worker"
ibm_resource_instance.dns_services_instance: Creating...
ibm_resource_instance.dns_services_instance: Still creating... [10s elapsed]
ibm_resource_instance.dns_services_instance: Creation complete after 14s [id=crn:v1:bluemix:public:dns-svcs:global:a/713c783d9a507a53135fe6793c37cc74:0d3aed06-a32e-4a2b-bea3-e5d1df88d1a8::]
ibm_dns_zone.dns_services_zone: Creating...
ibm_dns_zone.dns_services_zone: Creation complete after 0s [id=0d3aed06-a32e-4a2b-bea3-e5d1df88d1a8/1122bbf8-a2cf-4130-b06e-d8f731a858b8]
ibm_dns_resource_record.dns_services_resource_record_a: Creating...
ibm_dns_resource_record.dns_services_resource_record_a: Creation complete after 1s [id=0d3aed06-a32e-4a2b-bea3-e5d1df88d1a8/1122bbf8-a2cf-4130-b06e-d8f731a858b8/A:16d3d4ff-2db5-49c9-ba16-7725a373d567]
Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
Outputs:
ibm_dns_resource_record = {
"created_on" = "2024-03-29T20:12:36.000Z"
"id" = "0d3aed06-a32e-4a2b-bea3-e5d1df88d1a8/1122bbf8-a2cf-4130-b06e-d8f731a858b8/A:16d3d4ff-2db5-49c9-ba16-7725a373d567"
"instance_id" = "0d3aed06-a32e-4a2b-bea3-e5d1df88d1a8"
"modified_on" = "2024-03-29T20:12:36.000Z"
"name" = "aaa-transit-z1-worker.cloud.example.cloud"
"port" = tonumber(null)
"preference" = 0
"priority" = 0
"protocol" = tostring(null)
"rdata" = "10.0.0.4"
"resource_record_id" = "A:16d3d4ff-2db5-49c9-ba16-7725a373d567"
"service" = tostring(null)
"timeouts" = null /* object */
"ttl" = 3600
"type" = "A"
"weight" = 0
"zone_id" = "1122bbf8-a2cf-4130-b06e-d8f731a858b8"
}
name = "aaa-transit-z1-worker"
tfbugs/bug-ibm_dns_resource_record % tfa
data.ibm_resource_group.group: Reading...
data.ibm_resource_group.group: Read complete after 1s [id=008399d1e544476c8a5477aee630b91c]
ibm_resource_instance.dns_services_instance: Refreshing state... [id=crn:v1:bluemix:public:dns-svcs:global:a/713c783d9a507a53135fe6793c37cc74:0d3aed06-a32e-4a2b-bea3-e5d1df88d1a8::]
ibm_dns_zone.dns_services_zone: Refreshing state... [id=0d3aed06-a32e-4a2b-bea3-e5d1df88d1a8/1122bbf8-a2cf-4130-b06e-d8f731a858b8]
ibm_dns_resource_record.dns_services_resource_record_a: Refreshing state... [id=0d3aed06-a32e-4a2b-bea3-e5d1df88d1a8/1122bbf8-a2cf-4130-b06e-d8f731a858b8/A:16d3d4ff-2db5-49c9-ba16-7725a373d567]
Changes to Outputs:
~ name = "aaa-transit-z1-worker" -> "aaa-transit-z1-worker.cloud.example.cloud"
You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure.
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Outputs:
ibm_dns_resource_record = {
"created_on" = "2024-03-29T20:12:36.000Z"
"id" = "0d3aed06-a32e-4a2b-bea3-e5d1df88d1a8/1122bbf8-a2cf-4130-b06e-d8f731a858b8/A:16d3d4ff-2db5-49c9-ba16-7725a373d567"
"instance_id" = "0d3aed06-a32e-4a2b-bea3-e5d1df88d1a8"
"modified_on" = "2024-03-29T20:12:36.000Z"
"name" = "aaa-transit-z1-worker.cloud.example.cloud"
"port" = tonumber(null)
"preference" = 0
"priority" = 0
"protocol" = tostring(null)
"rdata" = "10.0.0.4"
"resource_record_id" = "A:16d3d4ff-2db5-49c9-ba16-7725a373d567"
"service" = tostring(null)
"timeouts" = null /* object */
"ttl" = 3600
"type" = "A"
"weight" = 0
"zone_id" = "1122bbf8-a2cf-4130-b06e-d8f731a858b8"
}
name = "aaa-transit-z1-worker.cloud.example.cloud"
Expected Behavior
consistency
Actual Behavior
Not able to use the .name field since the value is not predictable.