Documentation ¶
Index ¶
- type AWSConfig
- type AWSProvider
- func (p *AWSProvider) AdjustEndpoints(endpoints []*endpoint.Endpoint) []*endpoint.Endpoint
- func (p *AWSProvider) ApplyChanges(ctx context.Context, changes *plan.Changes) error
- func (p *AWSProvider) CreateRecords(ctx context.Context, endpoints []*endpoint.Endpoint) error
- func (p *AWSProvider) DeleteRecords(ctx context.Context, endpoints []*endpoint.Endpoint) error
- func (p *AWSProvider) GetDomainFilter() endpoint.DomainFilterInterface
- func (p *AWSProvider) PropertyValuesEqual(name string, previous string, current string) bool
- func (p *AWSProvider) Records(ctx context.Context) (endpoints []*endpoint.Endpoint, _ error)
- func (p *AWSProvider) UpdateRecords(ctx context.Context, updates, current []*endpoint.Endpoint) error
- func (p *AWSProvider) Zones(ctx context.Context) (map[string]*route53.HostedZone, error)
- type Route53API
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AWSConfig ¶
type AWSConfig struct { DomainFilter endpoint.DomainFilter ZoneIDFilter provider.ZoneIDFilter ZoneTypeFilter provider.ZoneTypeFilter ZoneTagFilter provider.ZoneTagFilter BatchChangeSize int BatchChangeInterval time.Duration EvaluateTargetHealth bool AssumeRole string APIRetries int PreferCNAME bool DryRun bool ZoneCacheDuration time.Duration }
AWSConfig contains configuration to create a new AWS provider.
type AWSProvider ¶
type AWSProvider struct { provider.BaseProvider // contains filtered or unexported fields }
AWSProvider is an implementation of Provider for AWS Route53.
func NewAWSProvider ¶
func NewAWSProvider(awsConfig AWSConfig) (*AWSProvider, error)
NewAWSProvider initializes a new AWS Route53 based Provider.
func (*AWSProvider) AdjustEndpoints ¶ added in v0.8.0
func (p *AWSProvider) AdjustEndpoints(endpoints []*endpoint.Endpoint) []*endpoint.Endpoint
AdjustEndpoints modifies the provided endpoints (coming from various sources) to match the endpoints that the provider returns in `Records` so that the change plan will not have unneeded (potentially failing) changes. Example: CNAME endpoints pointing to ELBs will have a `alias` provider-specific property added to match the endpoints generated from existing alias records in Route53.
func (*AWSProvider) ApplyChanges ¶
ApplyChanges applies a given set of changes in a given zone.
func (*AWSProvider) CreateRecords ¶
CreateRecords creates a given set of DNS records in the given hosted zone.
func (*AWSProvider) DeleteRecords ¶
DeleteRecords deletes a given set of DNS records in a given zone.
func (*AWSProvider) GetDomainFilter ¶ added in v0.9.0
func (p *AWSProvider) GetDomainFilter() endpoint.DomainFilterInterface
GetDomainFilter generates a filter to exclude any domain that is not controlled by the provider
func (*AWSProvider) PropertyValuesEqual ¶ added in v0.7.5
func (p *AWSProvider) PropertyValuesEqual(name string, previous string, current string) bool
func (*AWSProvider) UpdateRecords ¶
func (p *AWSProvider) UpdateRecords(ctx context.Context, updates, current []*endpoint.Endpoint) error
UpdateRecords updates a given set of old records to a new set of records in a given hosted zone.
func (*AWSProvider) Zones ¶
func (p *AWSProvider) Zones(ctx context.Context) (map[string]*route53.HostedZone, error)
Zones returns the list of hosted zones.
type Route53API ¶
type Route53API interface { ListResourceRecordSetsPagesWithContext(ctx context.Context, input *route53.ListResourceRecordSetsInput, fn func(resp *route53.ListResourceRecordSetsOutput, lastPage bool) (shouldContinue bool), opts ...request.Option) error ChangeResourceRecordSetsWithContext(ctx context.Context, input *route53.ChangeResourceRecordSetsInput, opts ...request.Option) (*route53.ChangeResourceRecordSetsOutput, error) CreateHostedZoneWithContext(ctx context.Context, input *route53.CreateHostedZoneInput, opts ...request.Option) (*route53.CreateHostedZoneOutput, error) ListHostedZonesPagesWithContext(ctx context.Context, input *route53.ListHostedZonesInput, fn func(resp *route53.ListHostedZonesOutput, lastPage bool) (shouldContinue bool), opts ...request.Option) error ListTagsForResourceWithContext(ctx context.Context, input *route53.ListTagsForResourceInput, opts ...request.Option) (*route53.ListTagsForResourceOutput, error) }
Route53API is the subset of the AWS Route53 API that we actually use. Add methods as required. Signatures must match exactly. mostly taken from: https://github.com/kubernetes/kubernetes/blob/853167624edb6bc0cfdcdfb88e746e178f5db36c/federation/pkg/dnsprovider/providers/aws/route53/stubs/route53api.go