Help us shape the future of Go! Take the 2026 Go Developer Survey

dns

package
v1.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 24, 2017 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewCachedEndpointsAccessorAndStore added in v1.3.0

func NewCachedEndpointsAccessorAndStore() (client.EndpointsNamespacer, cache.Store)

func NewServerDefaults

func NewServerDefaults() (*server.Config, error)

NewServerDefaults returns the default SkyDNS server configuration for a DNS server.

Types

type FallbackFunc added in v0.4.3

type FallbackFunc func(name string, exact bool) (string, bool)

type Server added in v1.3.0

type Server struct {
	Config      *server.Config
	Services    ServiceAccessor
	Endpoints   client.EndpointsNamespacer
	MetricsName string

	Stop chan struct{}
}

func NewServer added in v1.3.0

func NewServer(config *server.Config, client *client.Client) *Server

NewServer creates a server from the provided config and client.

func (*Server) ListenAndServe added in v1.3.0

func (s *Server) ListenAndServe() error

ListenAndServe starts a DNS server that exposes services and values stored in etcd (if etcdclient is not nil). It will block until the server exits.

type ServiceAccessor

type ServiceAccessor interface {
	client.ServicesNamespacer
	ServiceByClusterIP(ip string) (*api.Service, error)
}

ServiceAccessor is the interface used by the ServiceResolver to access services.

func NewCachedServiceAccessor

func NewCachedServiceAccessor(client cache.Getter, stopCh <-chan struct{}) ServiceAccessor

NewCachedServiceAccessor returns a service accessor that can answer queries about services. It uses a backing cache to make ClusterIP lookups efficient.

func NewCachedServiceAccessorAndStore added in v1.3.0

func NewCachedServiceAccessorAndStore() (ServiceAccessor, cache.Store)

type ServiceResolver

type ServiceResolver struct {
	// contains filtered or unexported fields
}

ServiceResolver is a SkyDNS backend that will serve lookups for DNS entries based on Kubernetes service entries. The default DNS name for each service will be `<name>.<namespace>.<base>` where base can be an arbitrary depth DNS suffix. Queries not recognized within this base will return an error.

func NewServiceResolver

func NewServiceResolver(config *server.Config, accessor ServiceAccessor, endpoints kclient.EndpointsNamespacer, fn FallbackFunc) *ServiceResolver

NewServiceResolver creates an object that will return DNS record entries for SkyDNS based on service names.

func (*ServiceResolver) Records

func (b *ServiceResolver) Records(dnsName string, exact bool) ([]msg.Service, error)

Records implements the SkyDNS Backend interface and returns standard records for a name.

The standard pattern is <prefix>.<service_name>.<namespace>.(svc|endpoints|pod).<base>

* prefix may be any series of prefix values

  • _endpoints is a special prefix that returns the same as <service_name>.<namespace>.svc.<base>

* service_name and namespace must locate a real service

  • unless a fallback is defined, in which case the fallback name will be looked up

* svc indicates standard service rules apply (clusterIP or endpoints as A records)

  • reverse lookup of IP is only possible for clusterIP
  • SRV records are returned for each host+port combination as: _<port_name>._<port_protocol>.<dns> _<port_name>.<endpoint_id>.<dns>

* endpoints always returns each individual endpoint as A records

  • SRV records for endpoints are similar to SVC, but are prefixed with a single label that is a hash of the endpoint IP

* pods is of the form <IP_with_dashes>.<namespace>.pod.<base> and resolves to <IP>

func (*ServiceResolver) ReverseRecord

func (b *ServiceResolver) ReverseRecord(name string) (*msg.Service, error)

ReverseRecord implements the SkyDNS Backend interface and returns standard records for a name.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL