Skip to content
Talk to us

Cloud DNS

Manage DNS zones and their records, plus DNS server and response policies.

36Supported2Partial2Not testedof 40 methods

Control plane only: records are stored and returned, but no DNS server answers queries.

Cloud DNS sits at the root of the emulator’s address: requests go to $VERA_ENDPOINT/dns/v1/. For gcloud, add this override to the shared setup:

Terminal window
export CLOUDSDK_API_ENDPOINT_OVERRIDES_DNS="$VERA_ENDPOINT/"

Create a public zone, add an A record and list the zone’s records. Every zone also gets the apex NS and SOA records Cloud DNS creates.

Terminal window
gcloud dns managed-zones create example-zone \
--dns-name=example.net. --description="Example zone"
gcloud dns record-sets create www.example.net. \
--zone=example-zone --type=A --ttl=300 --rrdatas=192.0.2.10
gcloud dns record-sets list --zone=example-zone --format=json

The last command prints:

Output
[
{
"kind": "dns#resourceRecordSet",
"name": "example.net.",
"rrdatas": [
"ns-cloud-a1.googledomains.com.",
"ns-cloud-a2.googledomains.com.",
"ns-cloud-a3.googledomains.com.",
"ns-cloud-a4.googledomains.com."
],
"ttl": 21600,
"type": "NS"
},
{
"kind": "dns#resourceRecordSet",
"name": "example.net.",
"rrdatas": [
"ns-cloud-a1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300"
],
"ttl": 21600,
"type": "SOA"
},
{
"kind": "dns#resourceRecordSet",
"name": "www.example.net.",
"rrdatas": ["192.0.2.10"],
"ttl": 300,
"type": "A"
}
]

To clean up:

Terminal window
gcloud dns record-sets delete www.example.net. --zone=example-zone --type=A
gcloud dns managed-zones delete example-zone
  • Managed zones, public and private, created with their apex NS and SOA records.
  • Record sets, directly or through atomic changes, with record data checked for each type and routing policies validated.
  • Private zones visible to Compute Engine VPC networks, with forwarding, peering and Service Directory bindings checked.
  • Server and response policies, and response policy rules, with one of each policy per VPC network.
  • DNSSEC key metadata for public zones.
  • Change history and zone operations to read and list.
  • IAM policies on managed zones.
  • v1beta2 and v1alpha2 requests.
  • No DNS server. Nothing answers DNS queries: there’s no resolution, forwarding, peering traffic, DNS64 or routing-policy execution.
  • Inbound forwarding on a server policy doesn’t reserve the resolver addresses Google Cloud lists in Compute Engine.
  • DNSSEC keys are metadata. Nothing is signed, and one of a zone’s two default keys is listed without digests.
  • No Cloud DNS v2. v2 requests answer 501 Not Implemented, except the global managed-zone getIamPolicy.
  • Lenient full updates. A zone PUT that omits id, nameServers or creationTime is accepted. Google Cloud rejects it.
  • IAM isn’t enforced. Requests aren’t authorized against zone policies. Setting a policy does check that its roles are supported and that modeled members exist.
  • Deleting a network leaves DNS alone: zones and policies keep the reference.
  • Quota errors haven’t been compared with Google Cloud’s.
  • Operations finish immediately, and name emulator@vera.local as their user.

Measured 2 November 2026 against recorded Google Cloud responses. What the statuses mean

managedZones

9 methods · 1 partial · 1 not tested
MethodStatusNotes
createSupportedPrivate zones need an existing VPC network.
getSupportedAccepts the zone's name or numeric ID.
listSupported
patchSupportedname, dnsName and visibility can't change.
updatePartialAccepts a PUT that omits id, nameServers or creationTime. Google Cloud rejects it.
deleteSupportedRefused while the zone has records beyond its apex NS and SOA.
getIamPolicySupported
setIamPolicySupported
testIamPermissionsNot tested

resourceRecordSets

5 methods
MethodStatusNotes
createSupportedRecord data is checked per record type.
getSupported
listSupportedSupports the name=has_suffix(...) filter.
patchSupported
deleteSupported

changes

3 methods
MethodStatusNotes
createSupportedAtomic. Reports pending, then reads back as done.
getSupported
listSupported

managedZoneOperations

2 methods
MethodStatusNotes
getSupportedOperations finish immediately.
listSupported

dnsKeys

2 methods · 1 partial
MethodStatusNotes
getSupportedKey metadata only.
listPartialOne of the zone's two default keys has no digests.

policies

6 methods
MethodStatusNotes
createSupportedOne server policy per VPC network.
getSupported
listSupported
patchSupported
updateSupported
deleteSupportedRefused while the policy is bound to networks.

responsePolicies

6 methods
MethodStatusNotes
createSupportedOne response policy per VPC network or GKE cluster.
getSupported
listSupported
patchSupported
updateSupported
deleteSupportedRefused while the policy is bound to networks.

responsePolicyRules

6 methods · 1 not tested
MethodStatusNotes
createSupportedTakes behavior or localData, not both.
getSupported
listSupported
patchNot tested
updateSupported
deleteSupported

projects

1 method
MethodStatusNotes
getSupportedReturns the project's default quotas.