-
Notifications
You must be signed in to change notification settings - Fork 40k
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
AWS Route53 dnsprovider #26049
AWS Route53 dnsprovider #26049
Conversation
@nikhiljindal FYI, as you're doing such a marvellous job of shepherding the cluster federation PR's through the pipeline. |
@mfanjie FYI |
|
@madhusudancs I added unit tests, which all pass. Ready for review. I'll clean up the last few todo's tomorrow, and check hack/verify-all.sh, but please go ahead and do a first pass before that if you can. |
cc: @mfanjie @nikhiljindal FYI. |
Similar gofmt error to one I saw in one of my other PR's #25991. I must have an incompatible version of gfmt on my local machine or something. Pity that gofmt refuses to tell us what version it is :-)
|
Reassigning to @nikhiljindal for review, as discussed with @madhusudancs |
) | ||
|
||
// Compile time check for interface adeherence | ||
var _ Interface = Interface{} |
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.
Sorry I seem to be missing something here. We are checking that it implements itself?
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.
Good catch - the left hand one is supposed to be dnsprovider.Interface. Will fix.
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.
Done.
}, | ||
HostedZoneId: aws.String(*rrset.(ResourceRecordSet).rrsets.zone.impl.Id), // Required | ||
} | ||
_, err := rrsets.zone.zones.interface_.service.ChangeResourceRecordSets(input) |
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.
Its surprising that we have to construct the whole set to remove as well.
Suprised that there is no Add and Remove methods, only Change.
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.
Yeah, that's how most of the DNS interfaces seem to work. To delete, you have to pass a fully matching record set, not just an ID. Otherwise it fails, by design. The method is called Change...(), but Action:"DELETE" makes it equivalent to a Delete() method.
@nikhiljindal All review comments addressed. PTAL. |
Removed unused stubs package, which should resolve the gofmt verification error. |
// Compile time check for interface adeherence | ||
var _ dnsprovider.Interface = Interface{} | ||
|
||
type Interface struct { |
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.
Is this a test only interface? Move it to testing package?
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.
No, it's the interface to Route53. I think we should leave it where it is.
Thanks for the fixes @quinton-hoole Feel free to self apply the label after fixing. |
Oh dear. Lingering godep issues. I'll sort this out in the morning.
|
OK, addressed final review comments, and added missing godeps. Applying LGTM. |
Fixed minor typo that snuck in somehow and broke compilation. |
GCE e2e build/test passed for commit 5b42184. |
@k8s-bot test this [submit-queue is verifying that this PR is safe to merge] |
GCE e2e build/test passed for commit 5b42184. |
Automatic merge from submit-queue |
Still needs unit tests, and some other cleanup. Review not urgent, but feel free to make a first pass.
Only need to look at the last two commits. The prior commits will go in as #26020. This will need to be rebased against #26020 once that merges.
It's a bare minimum implementation, only what's required for Ubernetes Federated Services (managing basic A and CNAME records). More functionality (health checks, geolocation etc) can be fairly easily added as required.
It also requires github.com/aws/aws-sdk-go/service/route53 to be vendored into godeps, which I haven't managed to do successfully yet (Oh Godep!)
cc: @justinsb FYI