Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
provider/aws: Fix aws_route53_record alias perpetual diff (#9704)
Fixes #9628 Fixes #9298 When a route53_record alias is updated in the console, AWS prepends `dualstack.` to the name. This is there incase IPV6 is wanted. It is exactly the same without it as it is with it In order to stop perpetual diffs, I introduced a normalizeFunc that will that tke alias name and strip known issues: * dualstack * trailing dot This normalize fun will continue to grow I'm sure ``` % make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSRoute53Record_' ✹ ==> Checking that code complies with gofmt requirements... go generate $(go list ./... | grep -v /terraform/vendor/) 2016/10/29 00:28:12 Generated command/internal_plugin_list.go TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSRoute53Record_ -timeout 120m === RUN TestAccAWSRoute53Record_basic --- PASS: TestAccAWSRoute53Record_basic (124.64s) === RUN TestAccAWSRoute53Record_basic_fqdn --- PASS: TestAccAWSRoute53Record_basic_fqdn (132.07s) === RUN TestAccAWSRoute53Record_txtSupport --- PASS: TestAccAWSRoute53Record_txtSupport (134.07s) === RUN TestAccAWSRoute53Record_spfSupport --- PASS: TestAccAWSRoute53Record_spfSupport (113.36s) === RUN TestAccAWSRoute53Record_generatesSuffix --- PASS: TestAccAWSRoute53Record_generatesSuffix (112.62s) === RUN TestAccAWSRoute53Record_wildcard --- PASS: TestAccAWSRoute53Record_wildcard (162.84s) === RUN TestAccAWSRoute53Record_failover --- PASS: TestAccAWSRoute53Record_failover (126.18s) === RUN TestAccAWSRoute53Record_weighted_basic --- PASS: TestAccAWSRoute53Record_weighted_basic (121.10s) === RUN TestAccAWSRoute53Record_alias --- PASS: TestAccAWSRoute53Record_alias (118.14s) === RUN TestAccAWSRoute53Record_s3_alias --- PASS: TestAccAWSRoute53Record_s3_alias (155.07s) === RUN TestAccAWSRoute53Record_weighted_alias --- PASS: TestAccAWSRoute53Record_weighted_alias (235.41s) === RUN TestAccAWSRoute53Record_geolocation_basic ^[[C--- PASS: TestAccAWSRoute53Record_geolocation_basic (125.32s) === RUN TestAccAWSRoute53Record_latency_basic --- PASS: TestAccAWSRoute53Record_latency_basic (122.23s) === RUN TestAccAWSRoute53Record_TypeChange --- PASS: TestAccAWSRoute53Record_TypeChange (231.98s) === RUN TestAccAWSRoute53Record_empty --- PASS: TestAccAWSRoute53Record_empty (116.48s) PASS ok github.com/hashicorp/terraform/builtin/providers/aws 2131.526s ``` Before this fix, I was getting the following by recreating the code in ``` ~ aws_route53_record.alias alias.1563903989.evaluate_target_health: "true" => "false" alias.1563903989.name: "9828-recreation-106795730.us-west-2.elb.amazonaws.com." => "" alias.1563903989.zone_id: "Z1H1FL5HABSF5" => "" alias.318754017.evaluate_target_health: "" => "true" alias.318754017.name: "" => "9828-recreation-106795730.us-west-2.elb.amazonaws.com" alias.318754017.zone_id: "" => "Z1H1FL5HABSF5" Plan: 0 to add, 1 to change, 0 to destroy. ``` After this fix: ``` No changes. Infrastructure is up-to-date. This means that Terraform could not detect any differences between your configuration and the real physical resources that exist. As a result, Terraform doesn't need to do anything.
- Loading branch information
95ce334
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is this fix?
This completely REMOVES the ability to specify a dualstack record.
95ce334
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bflad
May I ask the reason behind this as well?
This completely REMOVES the ability to update an existing dualstack record to a non-dualstack record.
95ce334
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or vice versa