StackExchange / dnscontrol

Infrastructure as code for DNS!
https://dnscontrol.org/
MIT License
3.07k stars 389 forks source link

GCLOUD: split horizon domains within the same GCP project #2483

Open asn-iac opened 1 year ago

asn-iac commented 1 year ago

Is your feature request related to a problem? Please describe. Google Cloud DNS API supports "Private" dns zones, and can have multiple dns zones with the same dns name in the same project, enabling split horizon dns (https://cloud.google.com/dns/docs/zones/zones-overview#split-horizon). #2482 adds support for private dns zones, however the dnscontrol GCLOUD provider still cannot support split horizon dns within the same GCP project.

Describe the solution you'd like Support split horizon domains within the same GCP project

Describe alternatives you've considered Private and Public zones can be defined in different GCP projects to enable split horizon dns.

Additional context In order to fully support split horizon domains within the same GCP project, need to parse the zone Visibility field from ManagedZone in gcloudProvider.loadZoneInfo(), but currently gcloudProvider.zones is map[string]*gdns.ManagedZone where the map keys are the zone dns names. A given GCP project can have multiple zones of the same dns name.

tlimoncelli commented 1 year ago

CC @riyadhalnur (maintainer of the Google DNS provider)

tlimoncelli commented 8 months ago

This should be fixed as of https://github.com/StackExchange/dnscontrol/issues/2481. If not, please re-open this issue. Thanks!

riyadhalnur commented 8 months ago

Hey @tlimoncelli, I asked @asn-iac to open this as an actionable ticket for the TODO from the original support in #2481. We can re-open in case someone's interested in picking this up

asn-iac commented 8 months ago

for additional context, #2481 only added support for private domains. the provider would still need to be refactored to support split-horizon domains in the same gcloud project as it currently relies on the zone dns name. https://github.com/StackExchange/dnscontrol/blob/d4f6e01e7a6b2516e3f4a264012f83761ee6a80a/providers/gcloud/gcloudProvider.go#L146-L150

we haven't had a direct need for this yet but if we decide to spend cycles on it I'll pick this up and re-open.

tlimoncelli commented 8 months ago

Sounds good! I've re-opened the issue!