- Fixed indentation - Use same naming scheme for all examples (i.e. all caps for provider, REG prefix for registrar) - Use REG_NONE as registrar when provider does not provide it - Use example.tld for example domain - Use 1.2.3.1/24 IP range for examples - A few spelling fixes
2.4 KiB
name | title | layout | jsId |
---|---|---|---|
Google Cloud DNS | Google Cloud DNS Provider | default | GCLOUD |
Google Cloud DNS Provider
Configuration
For Google cloud authentication, DNSControl requires a JSON 'Service Account Key' for your project. Copy the full JSON object into your creds.json
like so:
{% highlight json %}
{
"gcloud": {
"type": "service_account",
"project_id": "mydnsproject",
"private_key_id": "a05483aa208364c56716b384efff33c0574d365b",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADL2dhlY7YZbx7tpsfksOX\nih0DbxhiQ==\n-----END PRIVATE KEY-----\n",
"client_email": "dnscontrolacct@mydnsproject.iam.gserviceaccount.com",
"client_id": "107996619231234567750",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/dnscontrolsdfsdfsdf%40craigdnstest.iam.gserviceaccount.com"
}
}
{% endhighlight %}
Note: The project_id
, private_key
, and client_email
, are the only fields that are strictly required, but it is sometimes easier to just paste the entire json object in. Either way is fine.
See the Activation section for some tips on obtaining these credentials.
Metadata
This provider does not recognize any special metadata fields unique to google cloud dns.
Usage
Use this provider like any other DNS Provider:
{% highlight js %} var REG_NAMECOM = NewRegistrar("name.com","NAMEDOTCOM"); var GCLOUD = NewDnsProvider("gcloud", GCLOUD);
D("example.tld", REG_NAMECOM, DnsProvider(GCLOUD), A("test","1.2.3.4") ); {%endhighlight%}
Activation
-
Go to your app-engine console and select the appropriate project.
-
Go to "API Manager > Credentials", and create a new "Service Account Key"
-
Choose an existing user, or create a new one. The user requires the "DNS Administrator" role.
-
Download the JSON key and copy it into your
creds.json
under the name of your gcloud provider.
New domains
If a domain does not exist in your Google Cloud DNS account, DNSControl will not automatically add it. You'll need to do that via the control panel manually.