Documentation ¶
Overview ¶
Package external implements external names for kubernetes clusters.
This plugin only handles three qtypes (except the apex queries, because those are handled differently). We support A, AAAA and SRV request, for all other types we return NODATA or NXDOMAIN depending on the state of the cluster.
A plugin willing to provide these services must implement the Externaler interface, although it likely only makes sense for the *kubernetes* plugin.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type External ¶
type External struct { Next plugin.Handler Zones []string Fall fall.F // contains filtered or unexported fields }
External serves records for External IPs and Loadbalance IPs of Services in Kubernetes clusters.
type Externaler ¶
type Externaler interface { // External returns a slice of msg.Services that are looked up in the backend and match // the request. External(request.Request, bool) ([]msg.Service, int) // ExternalAddress should return a string slice of addresses for the nameserving endpoint. ExternalAddress(state request.Request, headless bool) []dns.RR // ExternalServices returns all services in the given zone as a slice of msg.Service and if enabled, headless services as a map of services. ExternalServices(zone string, headless bool) ([]msg.Service, map[string][]msg.Service) // ExternalSerial gets the current serial. ExternalSerial(string) uint32 }
Externaler defines the interface that a plugin should implement in order to be used by External.