registry

package
v0.7.1 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2020 License: Apache-2.0 Imports: 9 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AWSSDRegistry added in v0.5.2

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

AWSSDRegistry implements registry interface with ownership information associated via the Description field of SD Service

func NewAWSSDRegistry added in v0.5.2

func NewAWSSDRegistry(provider provider.Provider, ownerID string) (*AWSSDRegistry, error)

NewAWSSDRegistry returns implementation of registry for AWS SD

func (*AWSSDRegistry) ApplyChanges added in v0.5.2

func (sdr *AWSSDRegistry) ApplyChanges(ctx context.Context, changes *plan.Changes) error

ApplyChanges filters out records not owned the External-DNS, additionally it adds the required label inserted in the AWS SD instance as a CreateID field

func (*AWSSDRegistry) Records added in v0.5.2

func (sdr *AWSSDRegistry) Records(ctx context.Context) ([]*endpoint.Endpoint, error)

Records calls AWS SD API and expects AWS SD provider to provider Owner/Resource information as a serialized value in the AWSSDDescriptionLabel value in the Labels map

type NoopRegistry

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

NoopRegistry implements registry interface without ownership directly propagating changes to dns provider

func NewNoopRegistry

func NewNoopRegistry(provider provider.Provider) (*NoopRegistry, error)

NewNoopRegistry returns new NoopRegistry object

func (*NoopRegistry) ApplyChanges

func (im *NoopRegistry) ApplyChanges(ctx context.Context, changes *plan.Changes) error

ApplyChanges propagates changes to the dns provider

func (*NoopRegistry) Records

func (im *NoopRegistry) Records(ctx context.Context) ([]*endpoint.Endpoint, error)

Records returns the current records from the dns provider

type Registry

type Registry interface {
	Records(ctx context.Context) ([]*endpoint.Endpoint, error)
	ApplyChanges(ctx context.Context, changes *plan.Changes) error
}

Registry is an interface which should enables ownership concept in external-dns Records() returns ALL records registered with DNS provider each entry includes owner information ApplyChanges(changes *plan.Changes) propagates the changes to the DNS Provider API and correspondingly updates ownership depending on type of registry being used

type TXTRegistry

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

TXTRegistry implements registry interface with ownership implemented via associated TXT records

func NewTXTRegistry

func NewTXTRegistry(provider provider.Provider, txtPrefix, ownerID string, cacheInterval time.Duration) (*TXTRegistry, error)

NewTXTRegistry returns new TXTRegistry object

func (*TXTRegistry) ApplyChanges

func (im *TXTRegistry) ApplyChanges(ctx context.Context, changes *plan.Changes) error

ApplyChanges updates dns provider with the changes for each created/deleted record it will also take into account TXT records for creation/deletion

func (*TXTRegistry) Records

func (im *TXTRegistry) Records(ctx context.Context) ([]*endpoint.Endpoint, error)

Records returns the current records from the registry excluding TXT Records If TXT records was created previously to indicate ownership its corresponding value will be added to the endpoints Labels map

Jump to

Keyboard shortcuts

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