endpoint

package
v0.15.0 Latest Latest
Warning

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

Go to latest
Published: Sep 4, 2024 License: Apache-2.0 Imports: 18 Imported by: 86

Documentation

Index

Constants

View Source
const (
	// RecordTypeA is a RecordType enum value
	RecordTypeA = "A"
	// RecordTypeAAAA is a RecordType enum value
	RecordTypeAAAA = "AAAA"
	// RecordTypeCNAME is a RecordType enum value
	RecordTypeCNAME = "CNAME"
	// RecordTypeTXT is a RecordType enum value
	RecordTypeTXT = "TXT"
	// RecordTypeSRV is a RecordType enum value
	RecordTypeSRV = "SRV"
	// RecordTypeNS is a RecordType enum value
	RecordTypeNS = "NS"
	// RecordTypePTR is a RecordType enum value
	RecordTypePTR = "PTR"
	// RecordTypeMX is a RecordType enum value
	RecordTypeMX = "MX"
	// RecordTypeNAPTR is a RecordType enum value
	RecordTypeNAPTR = "NAPTR"
)
View Source
const (

	// OwnerLabelKey is the name of the label that defines the owner of an Endpoint.
	OwnerLabelKey = "owner"
	// ResourceLabelKey is the name of the label that identifies k8s resource which wants to acquire the DNS name
	ResourceLabelKey = "resource"
	// OwnedRecordLabelKey is the name of the label that identifies the record that is owned by the labeled TXT registry record
	OwnedRecordLabelKey = "ownedRecord"

	// AWSSDDescriptionLabel label responsible for storing raw owner/resource combination information in the Labels
	// supposed to be inserted by AWS SD Provider, and parsed into OwnerLabelKey and ResourceLabelKey key by AWS SD Registry
	AWSSDDescriptionLabel = "aws-sd-description"

	// DualstackLabelKey is the name of the label that identifies dualstack endpoints
	DualstackLabelKey = "dualstack"
)

Variables

View Source
var ErrInvalidHeritage = errors.New("heritage is unknown or not found")

ErrInvalidHeritage is returned when heritage was not found, or different heritage is found

Functions

func DecryptText added in v0.13.5

func DecryptText(text string, aesKey []byte) (decryptResult string, encryptNonce string, err error)

DecryptText decrypt gziped data using a supplied AES encryption key ang ungzip it in case of decryption failed, will return original input and decryption error

func EncryptText added in v0.13.5

func EncryptText(text string, aesKey []byte, nonceEncoded []byte) (string, error)

EncryptText gzip input data and encrypts it using the supplied AES key

func GenerateNonce added in v0.14.0

func GenerateNonce() ([]byte, error)

GenerateNonce creates a random nonce of a fixed size

Types

type DNSEndpoint added in v0.5.6

type DNSEndpoint struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   DNSEndpointSpec   `json:"spec,omitempty"`
	Status DNSEndpointStatus `json:"status,omitempty"`
}

func (*DNSEndpoint) DeepCopy added in v0.5.6

func (in *DNSEndpoint) DeepCopy() *DNSEndpoint

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSEndpoint.

func (*DNSEndpoint) DeepCopyInto added in v0.5.6

func (in *DNSEndpoint) DeepCopyInto(out *DNSEndpoint)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DNSEndpoint) DeepCopyObject added in v0.5.6

func (in *DNSEndpoint) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DNSEndpointList added in v0.5.6

type DNSEndpointList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []DNSEndpoint `json:"items"`
}

+kubebuilder:object:root=true DNSEndpointList is a list of DNSEndpoint objects

func (*DNSEndpointList) DeepCopy added in v0.5.6

func (in *DNSEndpointList) DeepCopy() *DNSEndpointList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSEndpointList.

func (*DNSEndpointList) DeepCopyInto added in v0.5.6

func (in *DNSEndpointList) DeepCopyInto(out *DNSEndpointList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DNSEndpointList) DeepCopyObject added in v0.5.6

func (in *DNSEndpointList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DNSEndpointSpec added in v0.5.6

type DNSEndpointSpec struct {
	Endpoints []*Endpoint `json:"endpoints,omitempty"`
}

DNSEndpointSpec defines the desired state of DNSEndpoint

func (*DNSEndpointSpec) DeepCopy added in v0.5.6

func (in *DNSEndpointSpec) DeepCopy() *DNSEndpointSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSEndpointSpec.

func (*DNSEndpointSpec) DeepCopyInto added in v0.5.6

func (in *DNSEndpointSpec) DeepCopyInto(out *DNSEndpointSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DNSEndpointStatus added in v0.5.6

type DNSEndpointStatus struct {
	// The generation observed by the external-dns controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

DNSEndpointStatus defines the observed state of DNSEndpoint

func (*DNSEndpointStatus) DeepCopy added in v0.5.6

func (in *DNSEndpointStatus) DeepCopy() *DNSEndpointStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSEndpointStatus.

func (*DNSEndpointStatus) DeepCopyInto added in v0.5.6

func (in *DNSEndpointStatus) DeepCopyInto(out *DNSEndpointStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DomainFilter added in v0.7.0

type DomainFilter struct {
	// Filters define what domains to match
	Filters []string
	// contains filtered or unexported fields
}

DomainFilter holds a lists of valid domain names

func NewDomainFilter added in v0.7.0

func NewDomainFilter(domainFilters []string) DomainFilter

NewDomainFilter returns a new DomainFilter given a comma separated list of domains

func NewDomainFilterWithExclusions added in v0.7.0

func NewDomainFilterWithExclusions(domainFilters []string, excludeDomains []string) DomainFilter

NewDomainFilterWithExclusions returns a new DomainFilter, given a list of matches and exclusions

func NewRegexDomainFilter added in v0.8.0

func NewRegexDomainFilter(regexDomainFilter *regexp.Regexp, regexDomainExclusion *regexp.Regexp) DomainFilter

NewRegexDomainFilter returns a new DomainFilter given a regular expression

func (DomainFilter) IsConfigured added in v0.7.0

func (df DomainFilter) IsConfigured() bool

IsConfigured returns true if any inclusion or exclusion rules have been specified.

func (DomainFilter) MarshalJSON added in v0.13.6

func (df DomainFilter) MarshalJSON() ([]byte, error)

func (DomainFilter) Match added in v0.7.0

func (df DomainFilter) Match(domain string) bool

Match checks whether a domain can be found in the DomainFilter. RegexFilter takes precedence over Filters

func (DomainFilter) MatchParent added in v0.9.0

func (df DomainFilter) MatchParent(domain string) bool

func (*DomainFilter) UnmarshalJSON added in v0.13.6

func (df *DomainFilter) UnmarshalJSON(b []byte) error

type DomainFilterInterface added in v0.9.0

type DomainFilterInterface interface {
	Match(domain string) bool
}

type Endpoint

type Endpoint struct {
	// The hostname of the DNS record
	DNSName string `json:"dnsName,omitempty"`
	// The targets the DNS record points to
	Targets Targets `json:"targets,omitempty"`
	// RecordType type of record, e.g. CNAME, A, AAAA, SRV, TXT etc
	RecordType string `json:"recordType,omitempty"`
	// Identifier to distinguish multiple records with the same name and type (e.g. Route53 records with routing policies other than 'simple')
	SetIdentifier string `json:"setIdentifier,omitempty"`
	// TTL for the record
	RecordTTL TTL `json:"recordTTL,omitempty"`
	// Labels stores labels defined for the Endpoint
	// +optional
	Labels Labels `json:"labels,omitempty"`
	// ProviderSpecific stores provider specific config
	// +optional
	ProviderSpecific ProviderSpecific `json:"providerSpecific,omitempty"`
}

Endpoint is a high-level way of a connection between a service and an IP

func FilterEndpointsByOwnerID added in v0.14.0

func FilterEndpointsByOwnerID(ownerID string, eps []*Endpoint) []*Endpoint

Apply filter to slice of endpoints and return new filtered slice that includes only endpoints that match.

func NewEndpoint added in v0.2.0

func NewEndpoint(dnsName, recordType string, targets ...string) *Endpoint

NewEndpoint initialization method to be used to create an endpoint

func NewEndpointWithTTL added in v0.4.6

func NewEndpointWithTTL(dnsName, recordType string, ttl TTL, targets ...string) *Endpoint

NewEndpointWithTTL initialization method to be used to create an endpoint with a TTL struct

func RemoveDuplicates added in v0.14.2

func RemoveDuplicates(endpoints []*Endpoint) []*Endpoint

RemoveDuplicates returns a slice holding the unique endpoints. This function doesn't contemplate the Targets of an Endpoint as part of the primary Key

func (*Endpoint) DeepCopy added in v0.5.6

func (in *Endpoint) DeepCopy() *Endpoint

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint.

func (*Endpoint) DeepCopyInto added in v0.5.6

func (in *Endpoint) DeepCopyInto(out *Endpoint)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Endpoint) DeleteProviderSpecificProperty added in v0.13.6

func (e *Endpoint) DeleteProviderSpecificProperty(key string)

DeleteProviderSpecificProperty deletes any ProviderSpecificProperty of the specified name.

func (*Endpoint) GetProviderSpecificProperty added in v0.5.10

func (e *Endpoint) GetProviderSpecificProperty(key string) (string, bool)

GetProviderSpecificProperty returns the value of a ProviderSpecificProperty if the property exists.

func (*Endpoint) IsOwnedBy added in v0.14.0

func (e *Endpoint) IsOwnedBy(ownerID string) bool

IsOwnedBy returns true if the endpoint owner label matches the given ownerID, false otherwise

func (*Endpoint) Key added in v0.13.6

func (e *Endpoint) Key() EndpointKey

Key returns the EndpointKey of the Endpoint.

func (*Endpoint) SetProviderSpecificProperty added in v0.13.6

func (e *Endpoint) SetProviderSpecificProperty(key string, value string)

SetProviderSpecificProperty sets the value of a ProviderSpecificProperty.

func (*Endpoint) String added in v0.3.0

func (e *Endpoint) String() string

func (*Endpoint) WithProviderSpecific added in v0.5.8

func (e *Endpoint) WithProviderSpecific(key, value string) *Endpoint

WithProviderSpecific attaches a key/value pair to the Endpoint and returns the Endpoint. This can be used to pass additional data through the stages of ExternalDNS's Endpoint processing. The assumption is that most of the time this will be provider specific metadata that doesn't warrant its own field on the Endpoint object itself. It differs from Labels in the fact that it's not persisted in the Registry but only kept in memory during a single record synchronization.

func (*Endpoint) WithSetIdentifier added in v0.5.18

func (e *Endpoint) WithSetIdentifier(setIdentifier string) *Endpoint

WithSetIdentifier applies the given set identifier to the endpoint.

type EndpointKey added in v0.13.6

type EndpointKey struct {
	DNSName       string
	RecordType    string
	SetIdentifier string
}

EndpointKey is the type of a map key for separating endpoints or targets.

type Labels added in v0.5.0

type Labels map[string]string

Labels store metadata related to the endpoint it is then stored in a persistent storage via serialization

func NewLabels added in v0.5.0

func NewLabels() Labels

NewLabels returns empty Labels

func NewLabelsFromString added in v0.5.0

func NewLabelsFromString(labelText string, aesKey []byte) (Labels, error)

func NewLabelsFromStringPlain added in v0.13.5

func NewLabelsFromStringPlain(labelText string) (Labels, error)

NewLabelsFromString constructs endpoints labels from a provided format string if heritage set to another value is found then error is returned no heritage automatically assumes is not owned by external-dns and returns invalidHeritage error

func (Labels) DeepCopy added in v0.5.6

func (in Labels) DeepCopy() Labels

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Labels.

func (Labels) DeepCopyInto added in v0.5.6

func (in Labels) DeepCopyInto(out *Labels)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Labels) Serialize added in v0.5.0

func (l Labels) Serialize(withQuotes bool, txtEncryptEnabled bool, aesKey []byte) string

Serialize same to SerializePlain, but encrypt data, if encryption enabled

func (Labels) SerializePlain added in v0.13.5

func (l Labels) SerializePlain(withQuotes bool) string

SerializePlain transforms endpoints labels into a external-dns recognizable format string withQuotes adds additional quotes

type MatchAllDomainFilters added in v0.9.0

type MatchAllDomainFilters []DomainFilterInterface

func (MatchAllDomainFilters) Match added in v0.9.0

func (f MatchAllDomainFilters) Match(domain string) bool

type ProviderSpecific added in v0.5.6

type ProviderSpecific []ProviderSpecificProperty

ProviderSpecific holds configuration which is specific to individual DNS providers

func (ProviderSpecific) DeepCopy added in v0.5.6

func (in ProviderSpecific) DeepCopy() ProviderSpecific

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderSpecific.

func (ProviderSpecific) DeepCopyInto added in v0.5.6

func (in ProviderSpecific) DeepCopyInto(out *ProviderSpecific)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProviderSpecificProperty added in v0.5.10

type ProviderSpecificProperty struct {
	Name  string `json:"name,omitempty"`
	Value string `json:"value,omitempty"`
}

ProviderSpecificProperty holds the name and value of a configuration which is specific to individual DNS providers

type TTL added in v0.4.6

type TTL int64

TTL is a structure defining the TTL of a DNS record

func (TTL) IsConfigured added in v0.4.6

func (ttl TTL) IsConfigured() bool

IsConfigured returns true if TTL is configured, false otherwise

type TargetFilterInterface added in v0.13.0

type TargetFilterInterface interface {
	Match(target string) bool
}

TargetFilterInterface defines the interface to select matching targets for a specific provider or runtime

type TargetNetFilter added in v0.13.0

type TargetNetFilter struct {
	// FilterNets define what targets to match
	FilterNets []*net.IPNet
	// contains filtered or unexported fields
}

TargetNetFilter holds a lists of valid target names

func NewTargetNetFilterWithExclusions added in v0.13.0

func NewTargetNetFilterWithExclusions(targetFilterNets []string, excludeNets []string) TargetNetFilter

NewTargetNetFilterWithExclusions returns a new TargetNetFilter, given a list of matches and exclusions

func (TargetNetFilter) Match added in v0.13.0

func (tf TargetNetFilter) Match(target string) bool

Match checks whether a target can be found in the TargetNetFilter.

type Targets added in v0.5.0

type Targets []string

Targets is a representation of a list of targets for an endpoint.

func NewTargets added in v0.5.0

func NewTargets(target ...string) Targets

NewTargets is a convenience method to create a new Targets object from a vararg of strings

func (Targets) DeepCopy added in v0.5.6

func (in Targets) DeepCopy() Targets

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Targets.

func (Targets) DeepCopyInto added in v0.5.6

func (in Targets) DeepCopyInto(out *Targets)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Targets) IsLess added in v0.5.0

func (t Targets) IsLess(o Targets) bool

IsLess should fulfill the requirement to compare two targets and choose the 'lesser' one. In the past target was a simple string so simple string comparison could be used. Now we define 'less' as either being the shorter list of targets or where the first entry is less. FIXME We really need to define under which circumstances a list Targets is considered 'less' than another.

func (Targets) Len added in v0.5.0

func (t Targets) Len() int

func (Targets) Less added in v0.5.0

func (t Targets) Less(i, j int) bool

func (Targets) Same added in v0.5.0

func (t Targets) Same(o Targets) bool

Same compares to Targets and returns true if they are identical (case-insensitive)

func (Targets) String added in v0.5.0

func (t Targets) String() string

func (Targets) Swap added in v0.5.0

func (t Targets) Swap(i, j int)

Jump to

Keyboard shortcuts

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