Skip to content

DNSRecordSet: Support externalEndpoints in healthCheckedTargets for routing policies #7603

@kamal-pandala-thg

Description

@kamal-pandala-thg

Description

The DNSRecordSet resource currently supports healthCheckedTargets.internalLoadBalancers for routing policies (WRR, GEO, primaryBackup), but does not support healthCheckedTargets.externalEndpoints. This means users cannot configure Cloud DNS health-checked routing policies that target external endpoints, including GCP external load balancers.

The internalLoadBalancers field only covers GCP internal load balancers (internal Application LBs, internal passthrough Network LBs, internal proxy Network LBs) used in private zones. The externalEndpoints field is needed for health checking publicly reachable endpoints in public zones, which includes:

  • GCP external load balancers (regional/global external Application LBs, global external proxy Network LBs)
  • On-premises endpoints
  • Any other publicly reachable IP address

The underlying Cloud DNS API supports both fields, and the Terraform google provider already supports this via the external_endpoints field within health_checked_targets.

Current behavior

The healthCheckedTargets block only exposes internalLoadBalancers:

spec:
  routingPolicy:
    geo:
      - location: us-west1
        healthCheckedTargets:
          internalLoadBalancers:   # only option available
            - ipAddressRef: ...
              ipProtocol: tcp
              loadBalancerType: regionalL4ilb
              networkRef: ...
              port: "80"

There is no way to specify external endpoints for health checking.

Expected behavior

Support externalEndpoints in healthCheckedTargets across all routing policy types (WRR, GEO, primaryBackup):

spec:
  routingPolicy:
    geo:
      - location: us-west1
        healthCheckedTargets:
          externalEndpoints:
            - "203.0.113.1"
            - "198.51.100.1"

Use case

Any scenario requiring DNS health-checked routing with external endpoints, including:

  • Failover across GCP external load balancers
  • Hybrid/multi-cloud DNS failover to on-premises or other cloud endpoints
  • Health-checked geo routing to publicly reachable services

References

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions