-
Notifications
You must be signed in to change notification settings - Fork 54
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
Feature: Pass in a pre-configured route53 boto3 client to Route53Dns provider #197
Comments
@tkalus Would you like to contribute a code sketch of how this would be used? I'm trying to work up better documentation in general, so I'd prefer to have some in hand for new additions like this. Maybe expand the Why section a little, or is that going to be obvious to someone who uses route53? @lowid @hobosteaux You-all have worked on the route53 driver, any comments on this change? Thanks! |
@mmaney I'd be happy to provide a code sketch, but it would be little more than instantiating a While I can't say that the "Whys" will be remarkably obvious to every AWS user, it will be greatly appreciated by those of us who have somewhat advanced use-cases and/or restrictions around how we use credentials with AWS. Sample code-sketch for Cross Account AssumeRole where Route53 is in a different AWS Account:
|
Hey @mmaney would any additional detail on this use-case be helpful? I'm looking to understand if this can be unblocked or if I'm going to have to take a different strategy to cover my use-case. |
@tkalus no, sorry, this has just had the bad luck to arrive when I'm trying to clean up the loose ends... and it turns out that one of the loose ends is that the route53 driver was never wired into cli.py. So I've been poking at the docs and looking at the code, trying to work out how to handle it in the new context (which you can see in #200, though it will change again before it's ready to merge). I think your PR will just merge cleanly on top of that. |
Picking up the threads I dropped until after 0.8.3 got released. Can I ask you for some further work to cleanup this driver? If I understand this correctly, the driver [now] supports three ways of authenticating API access: your new
That does seem to leave self.aws_config as the unloved stepchild, but apparently that's only used in these setup steps? If so, it should just be a local variable, not a class namespace clutterer. I'm sorry, I know you didn't start this, but I really hate making changes that move things around so much to a driver that I can't test myself. The last thing that comes to mind is that in 0.8.3 the nonsense that made that "import inside try and report error later" dance necessary is gone, ripped up like the ugly kluge that it was. So you could put that back to just being an import and let it fail loudly up front. Thanks for as much of this as you feel like helping with, and for helping me understand more about AWS. Maybe more than I'd wanted to know, but that seems to be what's needed here. . |
Hey @mmaney, I'd be happy to work toward cleaning up this driver. Your assessment is spot-on on all counts and I think you're right on the ordering, logging, and exception paths; my add was in the vein of "minimal disruption", but I can work my PR into something a bit more meaningful and solid. I'm using a derivation of this in a production scenario and I'd love to contribute my changes back upstream, if they make sense. As far a pushing work back upstream, I'm thinking I'll rebase #198 master and use that to add Thoughts? |
/me jumps up and down! Yes, all of that! And I want to ask about that waiting - is this the first driver that has a way to support the It looks like route53 is one of those that does some additional querying of the service in order to match the domain up with a zone. If you're interested in amortizing at least some of that work, the new-model interface changes the setup and teardown by passing all the names on the certificate in one batch. Apparently that's the only carrot I have to dangle to encourage migration of legacy DNS drivers, since aliasing and the propagation check can be added to the old drivers after all. |
Which version of python are you using?
Python 3.8.3
What operating system and version of operating system are you using?
macOS, Ubuntu 20.04, Amazon Linux 2
What version of sewer are you using?
0.8.2
What is it that you would like to propose to add/remove/change?
Ability to pass in an pre-configured Route53 boto3 client to the
Route53Dns
provider.Why do you want to add/remove/change that?
There are limitations in the current implementation that it would solve:
How do you want to go about adding/removing/changing that?
client=None
kwarg to Route53Dns's__init__()
function.self.r53
to be the passed client, if appropriate.The text was updated successfully, but these errors were encountered: