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

dns

package
v1.0.6 Latest Latest
Warning

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

Go to latest
Published: Sep 13, 2015 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ListenAndServe

func ListenAndServe(config *server.Config, client *client.Client, etcdclient *etcd.Client) 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. TODO: hoist the service accessor out of this package so it can be reused.

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 ServiceAccessor

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

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

func NewCachedServiceAccessor

func NewCachedServiceAccessor(client *client.Client, stopCh <-chan struct{}) ServiceAccessor

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

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(name 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).<base>

* prefix may be any series of prefix values * service_name and namespace must locate a real service * svc indicates standard service rules apply (portalIP or endpoints as A records)

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

* endpoints always returns each individual endpoint as A records

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