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.DomainFilter
- func (im *AWSSDRegistry) OwnerID() string
- func (sdr *AWSSDRegistry) Records(ctx context.Context) ([]*endpoint.Endpoint, error)
- type CRDClient
- type CRDConfig
- type CRDRegistry
- func (im *CRDRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
- func (im *CRDRegistry) ApplyChanges(ctx context.Context, changes *plan.Changes) error
- func (im *CRDRegistry) GetDomainFilter() endpoint.DomainFilter
- func (im *CRDRegistry) OwnerID() string
- func (im *CRDRegistry) Records(ctx context.Context) ([]*endpoint.Endpoint, error)
- type CRDRequest
- type CRDResult
- 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.DomainFilter
- 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.DomainFilter
- 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.DomainFilter
- 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 ¶
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 ¶
func NewAWSSDRegistry(provider provider.Provider, ownerID string) (*AWSSDRegistry, error)
NewAWSSDRegistry returns implementation of registry for AWS SD
func (*AWSSDRegistry) AdjustEndpoints ¶
func (sdr *AWSSDRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
AdjustEndpoints modifies the endpoints as needed by the specific provider
func (*AWSSDRegistry) ApplyChanges ¶
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 ¶
func (sdr *AWSSDRegistry) GetDomainFilter() endpoint.DomainFilter
func (*AWSSDRegistry) OwnerID ¶
func (im *AWSSDRegistry) OwnerID() string
type CRDClient ¶
type CRDClient interface { Get() CRDRequest List() CRDRequest Put() CRDRequest Post() CRDRequest Delete() CRDRequest }
The CRD interfaces are built as k8s' rest.Interface doesn't have proper support for testing These interfaces exists so the runtime will use the rest.Interface but gives an option for writing tests without building a complete k8s client.
func NewCRDClientForAPIVersionKind ¶
func NewCRDClientForAPIVersionKind(client kubernetes.Interface, kubeConfig, apiServerURL, apiVersion string) (CRDClient, error)
NewCRDClientForAPIVersionKind return rest client for the given apiVersion and kind of the CRD
type CRDRegistry ¶
type CRDRegistry struct {
// contains filtered or unexported fields
}
CRDRegistry implements registry interface with ownership implemented via associated custom resource records (DSNEntry)
func NewCRDRegistry ¶
func NewCRDRegistry(provider provider.Provider, crdClient CRDClient, ownerID string, cacheInterval time.Duration, namespace string) (*CRDRegistry, error)
NewCRDRegistry returns new CRDRegistry object
func (*CRDRegistry) AdjustEndpoints ¶
func (im *CRDRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
AdjustEndpoints modifies the endpoints as needed by the specific provider
func (*CRDRegistry) ApplyChanges ¶
ApplyChanges updates dns provider with the changes and creates/updates/delete a DNSEntry custom resource as the registry entry.
func (*CRDRegistry) GetDomainFilter ¶
func (im *CRDRegistry) GetDomainFilter() endpoint.DomainFilter
func (*CRDRegistry) OwnerID ¶
func (im *CRDRegistry) OwnerID() string
type CRDRequest ¶
type CRDRequest interface { Name(string) CRDRequest Namespace(string) CRDRequest Body(interface{}) CRDRequest Params(runtime.Object) CRDRequest Do(context.Context) CRDResult }
type DynamoDBAPI ¶
type DynamoDBAPI interface { DescribeTableWithContext(ctx aws.Context, input *dynamodb.DescribeTableInput, opts ...request.Option) (*dynamodb.DescribeTableOutput, error) ScanPagesWithContext(ctx aws.Context, input *dynamodb.ScanInput, fn func(*dynamodb.ScanOutput, bool) bool, opts ...request.Option) error BatchExecuteStatementWithContext(aws.Context, *dynamodb.BatchExecuteStatementInput, ...request.Option) (*dynamodb.BatchExecuteStatementOutput, error) }
DynamoDBAPI is the subset of the AWS Route53 API that we actually use. Add methods as required. Signatures must match exactly.
type DynamoDBRegistry ¶
type DynamoDBRegistry struct {
// contains filtered or unexported fields
}
DynamoDBRegistry implements registry interface with ownership implemented via an AWS DynamoDB table.
func NewDynamoDBRegistry ¶
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 ¶
func (im *DynamoDBRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
AdjustEndpoints modifies the endpoints as needed by the specific provider.
func (*DynamoDBRegistry) ApplyChanges ¶
ApplyChanges updates the DNS provider and DynamoDB table with the changes.
func (*DynamoDBRegistry) GetDomainFilter ¶
func (im *DynamoDBRegistry) GetDomainFilter() endpoint.DomainFilter
func (*DynamoDBRegistry) OwnerID ¶
func (im *DynamoDBRegistry) OwnerID() string
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 ¶
func (im *NoopRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
AdjustEndpoints modifies the endpoints as needed by the specific provider
func (*NoopRegistry) ApplyChanges ¶
ApplyChanges propagates changes to the dns provider
func (*NoopRegistry) GetDomainFilter ¶
func (im *NoopRegistry) GetDomainFilter() endpoint.DomainFilter
func (*NoopRegistry) OwnerID ¶
func (im *NoopRegistry) OwnerID() string
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.DomainFilter 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) (*TXTRegistry, error)
NewTXTRegistry returns new TXTRegistry object
func (*TXTRegistry) AdjustEndpoints ¶
func (im *TXTRegistry) AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error)
AdjustEndpoints modifies the endpoints as needed by the specific provider
func (*TXTRegistry) ApplyChanges ¶
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 ¶
func (im *TXTRegistry) GetDomainFilter() endpoint.DomainFilter
func (*TXTRegistry) OwnerID ¶
func (im *TXTRegistry) OwnerID() string