dns

package
v0.0.0-...-a6a3a47 Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2023 License: AGPL-3.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrDomainMissing = errors.New("domain is missing")

ErrDomainMissing - Indicates domain is missing

View Source
var ErrNoEntriesFound = errors.New("No entries found for this key")

ErrNoEntriesFound - Indicates no entries were found for the given key (directory)

View Source
var (

	// ErrNotImplemented - Indicates the functionality which is not implemented
	ErrNotImplemented = errors.New("The method is not implemented")
)

Functions

This section is empty.

Types

type CoreDNS

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

CoreDNS - represents dns config for coredns server.

func (*CoreDNS) Close

func (c *CoreDNS) Close() error

Close closes the internal etcd client and cannot be used further

func (*CoreDNS) Delete

func (c *CoreDNS) Delete(bucket string) error

Delete - Removes DNS entries added in Put().

func (*CoreDNS) DeleteRecord

func (c *CoreDNS) DeleteRecord(record SrvRecord) error

DeleteRecord - Removes a specific DNS entry

func (*CoreDNS) Get

func (c *CoreDNS) Get(bucket string) ([]SrvRecord, error)

Get - Retrieves DNS records for a bucket.

func (*CoreDNS) List

func (c *CoreDNS) List() (map[string][]SrvRecord, error)

List - Retrieves list of DNS entries for the domain.

func (*CoreDNS) Put

func (c *CoreDNS) Put(bucket string) error

Put - Adds DNS entries into etcd endpoint in CoreDNS etcd message format.

func (*CoreDNS) String

func (c *CoreDNS) String() string

String stringer name for this implementation of dns.Store

type ErrBucketConflict

type ErrBucketConflict Error

ErrBucketConflict for buckets that already exist

func (ErrBucketConflict) Error

func (e ErrBucketConflict) Error() string

type ErrInvalidBucketName

type ErrInvalidBucketName Error

ErrInvalidBucketName for buckets with invalid name

func (ErrInvalidBucketName) Error

func (e ErrInvalidBucketName) Error() string

type Error

type Error struct {
	Bucket string
	Err    error
}

Error - DNS related errors error.

func (Error) Error

func (e Error) Error() string

type EtcdOption

type EtcdOption func(*CoreDNS)

EtcdOption - functional options pattern style

func CoreDNSPath

func CoreDNSPath(prefix string) EtcdOption

CoreDNSPath - custom prefix on etcd to populate DNS service records, optional and can be empty. if empty then c.prefixPath is used i.e "/skydns"

func DomainIPs

func DomainIPs(domainIPs set.StringSet) EtcdOption

DomainIPs set a list of custom domain IPs, note this will fail if set to empty when constructor initializes.

func DomainNames

func DomainNames(domainNames []string) EtcdOption

DomainNames set a list of domain names used by this CoreDNS client setting, note this will fail if set to empty when constructor initializes.

func DomainPort

func DomainPort(domainPort string) EtcdOption

DomainPort - is a string version of server port

type OperatorDNS

type OperatorDNS struct {
	Endpoint string
	// contains filtered or unexported fields
}

OperatorDNS - represents dns config for MinIO k8s operator.

func (*OperatorDNS) Close

func (c *OperatorDNS) Close() error

Close closes the internal http client

func (*OperatorDNS) Delete

func (c *OperatorDNS) Delete(bucket string) error

Delete - Removes DNS entries added in Put().

func (*OperatorDNS) DeleteRecord

func (c *OperatorDNS) DeleteRecord(record SrvRecord) error

DeleteRecord - Removes a specific DNS entry No Op for Operator because operator deals on with bucket entries

func (*OperatorDNS) Get

func (c *OperatorDNS) Get(bucket string) (srvRecords []SrvRecord, err error)

Get - Retrieves DNS records for a bucket. This is a No Op for Operator because, there is no intent to enforce global namespace at MinIO level with this DNS entry. The global namespace in enforced by the Kubernetes Operator

func (*OperatorDNS) List

func (c *OperatorDNS) List() (srvRecords map[string][]SrvRecord, err error)

List - Retrieves list of DNS entries for the domain. This is a No Op for Operator because, there is no intent to enforce global namespace at MinIO level with this DNS entry. The global namespace in enforced by the Kubernetes Operator

func (*OperatorDNS) Put

func (c *OperatorDNS) Put(bucket string) error

Put - Adds DNS entries into operator webhook server

func (*OperatorDNS) String

func (c *OperatorDNS) String() string

String stringer name for this implementation of dns.Store

type OperatorOption

type OperatorOption func(*OperatorDNS)

OperatorOption - functional options pattern style for OperatorDNS

func Authentication

func Authentication(username, password string) OperatorOption

Authentication - custom username and password for authenticating at the endpoint

func RootCAs

func RootCAs(certPool *x509.CertPool) OperatorOption

RootCAs - add custom trust certs pool

type SrvRecord

type SrvRecord struct {
	Host     string      `json:"host,omitempty"`
	Port     json.Number `json:"port,omitempty"`
	Priority int         `json:"priority,omitempty"`
	Weight   int         `json:"weight,omitempty"`
	Text     string      `json:"text,omitempty"`
	Mail     bool        `json:"mail,omitempty"` // Be an MX record. Priority becomes Preference.
	TTL      uint32      `json:"ttl,omitempty"`

	// Holds info about when the entry was created first.
	CreationDate time.Time `json:"creationDate"`

	// When a SRV record with a "Host: IP-address" is added, we synthesize
	// a srv.Target domain name.  Normally we convert the full Key where
	// the record lives to a DNS name and use this as the srv.Target. When
	// TargetStrip > 0 we strip the left most TargetStrip labels from the
	// DNS name.
	TargetStrip int `json:"targetstrip,omitempty"`

	// Group is used to group (or *not* to group) different services
	// together. Services with an identical Group are returned in
	// the same answer.
	Group string `json:"group,omitempty"`

	// Key carries the original key used during Put().
	Key string `json:"-"`
}

SrvRecord - represents a DNS service record

type Store

type Store interface {
	Put(bucket string) error
	Get(bucket string) ([]SrvRecord, error)
	Delete(bucket string) error
	List() (map[string][]SrvRecord, error)
	DeleteRecord(record SrvRecord) error
	Close() error
	String() string
}

Store dns record store

func NewCoreDNS

func NewCoreDNS(cfg clientv3.Config, setters ...EtcdOption) (Store, error)

NewCoreDNS - initialize a new coreDNS set/unset values.

func NewOperatorDNS

func NewOperatorDNS(endpoint string, setters ...OperatorOption) (Store, error)

NewOperatorDNS - initialize a new K8S Operator DNS set/unset values.

Jump to

Keyboard shortcuts

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