Documentation
¶
Index ¶
- type AWSSDRegistry
- func (sdr *AWSSDRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
- func (sdr *AWSSDRegistry) ApplyChanges(ctx context.Context, changes *plan.Changes) error
- func (sdr *AWSSDRegistry) GetDomainFilter() endpoint.DomainFilterInterface
- func (im *AWSSDRegistry) OwnerID() string
- func (sdr *AWSSDRegistry) Records(ctx context.Context) ([]*endpoint.Endpoint, error)
- type DynamoDBAPI
- type DynamoDBRegistry
- func (im *DynamoDBRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
- func (im *DynamoDBRegistry) ApplyChanges(ctx context.Context, changes *plan.Changes) error
- func (im *DynamoDBRegistry) GetDomainFilter() endpoint.DomainFilterInterface
- func (im *DynamoDBRegistry) OwnerID() string
- func (im *DynamoDBRegistry) Records(ctx context.Context) ([]*endpoint.Endpoint, error)
- type NoopRegistry
- func (im *NoopRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
- func (im *NoopRegistry) ApplyChanges(ctx context.Context, changes *plan.Changes) error
- func (im *NoopRegistry) GetDomainFilter() endpoint.DomainFilterInterface
- func (im *NoopRegistry) OwnerID() string
- func (im *NoopRegistry) Records(ctx context.Context) ([]*endpoint.Endpoint, error)
- type Registry
- type TXTRegistry
- func (im *TXTRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
- func (im *TXTRegistry) ApplyChanges(ctx context.Context, changes *plan.Changes) error
- func (im *TXTRegistry) GetDomainFilter() endpoint.DomainFilterInterface
- func (im *TXTRegistry) OwnerID() string
- func (im *TXTRegistry) Records(ctx context.Context) ([]*endpoint.Endpoint, error)
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) AdjustEndpoints ¶ added in v0.7.5
func (sdr *AWSSDRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
AdjustEndpoints modifies the endpoints as needed by the specific provider
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) GetDomainFilter ¶ added in v0.9.0
func (sdr *AWSSDRegistry) GetDomainFilter() endpoint.DomainFilterInterface
type DynamoDBAPI ¶ added in v0.13.6
type DynamoDBAPI interface {
DescribeTable(context.Context, *dynamodb.DescribeTableInput, ...func(*dynamodb.Options)) (*dynamodb.DescribeTableOutput, error)
Scan(context.Context, *dynamodb.ScanInput, ...func(*dynamodb.Options)) (*dynamodb.ScanOutput, error)
BatchExecuteStatement(context.Context, *dynamodb.BatchExecuteStatementInput, ...func(*dynamodb.Options)) (*dynamodb.BatchExecuteStatementOutput, error)
}
DynamoDBAPI is the subset of the AWS DynamoDB API that we actually use. Add methods as required. Signatures must match exactly.
type DynamoDBRegistry ¶ added in v0.13.6
type DynamoDBRegistry struct {
// contains filtered or unexported fields
}
DynamoDBRegistry implements registry interface with ownership implemented via an AWS DynamoDB table.
func NewDynamoDBRegistry ¶ added in v0.13.6
func NewDynamoDBRegistry(provider provider.Provider, ownerID string, dynamodbAPI DynamoDBAPI, table string, txtPrefix, txtSuffix, txtWildcardReplacement string, managedRecordTypes, excludeRecordTypes []string, txtEncryptAESKey []byte, cacheInterval time.Duration) (*DynamoDBRegistry, error)
NewDynamoDBRegistry returns a new DynamoDBRegistry object.
func (*DynamoDBRegistry) AdjustEndpoints ¶ added in v0.13.6
func (im *DynamoDBRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
AdjustEndpoints modifies the endpoints as needed by the specific provider.
func (*DynamoDBRegistry) ApplyChanges ¶ added in v0.13.6
func (im *DynamoDBRegistry) ApplyChanges(ctx context.Context, changes *plan.Changes) error
ApplyChanges updates the DNS provider and DynamoDB table with the changes.
func (*DynamoDBRegistry) GetDomainFilter ¶ added in v0.13.6
func (im *DynamoDBRegistry) GetDomainFilter() endpoint.DomainFilterInterface
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) AdjustEndpoints ¶ added in v0.7.5
func (im *NoopRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
AdjustEndpoints modifies the endpoints as needed by the specific provider
func (*NoopRegistry) ApplyChanges ¶
func (im *NoopRegistry) ApplyChanges(ctx context.Context, changes *plan.Changes) error
ApplyChanges propagates changes to the dns provider
func (*NoopRegistry) GetDomainFilter ¶ added in v0.9.0
func (im *NoopRegistry) GetDomainFilter() endpoint.DomainFilterInterface
type Registry ¶
type Registry interface {
Records(ctx context.Context) ([]*endpoint.Endpoint, error)
ApplyChanges(ctx context.Context, changes *plan.Changes) error
AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
GetDomainFilter() endpoint.DomainFilterInterface
OwnerID() string
}
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, txtSuffix, ownerID string,
cacheInterval time.Duration, txtWildcardReplacement string,
managedRecordTypes, excludeRecordTypes []string,
txtEncryptEnabled bool, txtEncryptAESKey []byte,
newFormatOnly bool) (*TXTRegistry, error)
NewTXTRegistry returns a new TXTRegistry object. When newFormatOnly is true, it will only generate new format TXT records, otherwise it generates both old and new formats for backwards compatibility.
func (*TXTRegistry) AdjustEndpoints ¶ added in v0.7.5
func (im *TXTRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
AdjustEndpoints modifies the endpoints as needed by the specific provider
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) GetDomainFilter ¶ added in v0.9.0
func (im *TXTRegistry) GetDomainFilter() endpoint.DomainFilterInterface
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