Netflix / denominator

Portably control DNS clouds using java or bash
Apache License 2.0
580 stars 110 forks source link

Add google cloud dns #327

Open codefromthecrypt opened 9 years ago

codefromthecrypt commented 9 years ago

Should be easy as the api is very similar to route53

https://cloud.google.com/dns/api/v1beta1/

credential type should be "bearerToken" (also easy)

We could later add support for a JWTBearerTokenFlow, to automate issue of bearer tokens for the google dns oauth scopes, given an account email and a private key

erjohnso commented 9 years ago

Anyone that wants to pick this up can ping me at erjohnso [at] google [dot] com and I can see about getting you some free credits for development.

Regarding auth, we have two file formats (JSON and P12). If code is run on a Google Compute Engine instance with proper scopes (dns), you can use a 'refresh' token by talking to GCE's internal metadata service. Happy to provide more details when needed.

codefromthecrypt commented 9 years ago

Thanks, @erjohnso WRT the metadata service, this seems to behave like IAM instance roles. In this case, when someone doesn't specify credentials to route53, the implicit provider tries to access the metadata api. Here's the test case https://github.com/Netflix/denominator/blob/master/route53/src/test/java/denominator/route53/InstanceProfileCredentialsProviderTest.java

codefromthecrypt commented 9 years ago

@erjohnso so.. "clouddns" is taken. What should be the short name for GoogleCloudDNS?

erjohnso commented 9 years ago

@adriancole works for me! I actually like that better anyway so people know it's Google.

codefromthecrypt commented 9 years ago

ok "googleclouddns" it is!

milesward commented 8 years ago

I'd love to see this get built; anything my folks can do to help?