-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Route53 Zone doesn't connect and load records properly #1012
Comments
Thanks @slandry90 , I am going to add an integration test to recreate your issue. The "Failed validating update to DNS" happens when a change is sent to the backend (like create a record set), and the record set already exists there and isn't a match for the change being applied. This got through likely because of what you mentioned, that you saw no records in vinyldns. |
@slandry90 for the first issue, missing Apex NS, the issue is that For that one, in the Update - actually strike that, the GetHostedZone request returns the name servers |
@slandry90 found the other issue, yes we are not setting the I have an integration test that will fix both of these issues. |
For public hosted zones, we should get an SOA record back. For private hosted zones, it looks like there is no SOA record returned. Right now, I am unsure if we need the SOA data at all for Route 53 backend. We use it in the DnsBackend to check if the zone exists, but that is a different call in Route53 |
Thanks @slandry90 for the great write up. #1015 is up to address these issues. |
Thanks @pauljamescleary this appears to solve the CRUD issues with the zone that was already connected, however I was still unable to connect to a new zone. Same error for Apex NS, this is a public hosted zone and does not have a delegation set. Here's a log of the zone object at load time before the Apex NS Error.
|
@slandry90 what error are you seeing. Are you seeing "Missing apex NS record"? It appears as though the zone name is but the This line assumes the NS record name matches the zone name.
Here is the bug...
We pull the first label; however, we should pull the whole FQDN if it matches the zone name (that is what we do with DNS). I will update the PR. |
@slandry90 updated the PR, added tests |
Fixes #1012 Changes in this pull request: - When available, ensure that the `zoneId` is passed when loading vinyldns record sets - Use the `DelegationSet` on the hosted zone to _simulate_ NS records. NS records do not exist by default on private hosted zones
@slandry90 #1015, was merged now to master, will be online later to see if you have any issues. Thanks for opening the issue and testing! |
Still receiving the same "Missing apex NS record" error with the latest change set, will readd logging and sent that along shortly |
@pauljamescleary Same issue as before, the NS record name is still showing up as the short name instead of the full zone name. I also tested with a private zone and am getting the same response back.
|
Thanks for the update. I know this is verified in the new Route53ApiIntegrationSpec. I’ll check again tomorrow to see what is missing. |
@slandry90 I was finally able to get access to a public hosted zone and found the issue. Will have a PR up for this today, it is a tiny bug |
Opened #1017, I was able to test this against a "live" public hosted zone in Route 53 for connect, load zone, create record, delete record. |
Addresses #1012 Was able to get a "real" public hosted zone connected. The `Fqdn.merge` was not working properly when merging record name and zone names when they matched. Added a bunch of unit tests along with the fix. This was tested against a "real" public hosted zone. Verified connect, load zone, add record, delete record.
Pulled down the latest and validated. Everything works as expected now! Thanks for the help and quick fixes! |
@slandry90 great, thanks for testing! Took a little while to get a test aws account setup on my end, then it was easy to verify everything. Evidently aws localstack is not quite 1-1 with the real thing |
Describe the bug
When trying to connect a route53 zone, we encounter an error "Missing apex NS record". This is happening because name of the map on the records does not match the name of the maps for the recordSets and is therefore just returning None.
We did some digging in the code and were able to isolate the issue down to Route53Conversions
toVinylRecordSet
function..Fqdn.merge(r53RecordSet.getName, zoneName).firstLabel
should ber53RecordSet.getName.toString
so the name of the map is correct consistently.Once we fixed the above and allowed the zone to be added we ran into additional issues where no records show up in the zone on vinyl (even though they exist in r53, no errors) and records cannot be added or removed (error out with "Failed validating update to DNS for change 784b4a3d-b3a8-4b82-8596-0c684fa34ef3:jenkins: Incompatible record already exists in DNS." for example)
Records appear to be missing because the zoneid is "unknown" in Route53Conversions, we updated
toVinylRecordSets
in theloadZone
function which added the zoneid to the recordSets and they now appear in the zone in vinyl but we are still unable to CRUD records through vinyl for the zonesidebar, SOA records are also broken but we'll open a new issue for that and we'll have an MR for that as well.
VinylDNS Version
0.9.7
To Reproduce
Steps to reproduce the behavior:
The text was updated successfully, but these errors were encountered: