Documentation ¶
Overview ¶
Copyright 2017 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- Variables
- func Difference(current, desired []string) ([]string, []string, []string)
- func EnsureTrailingDot(hostname string) string
- func NewSoftError(err error) error
- func SupportedRecordType(recordType string) bool
- type BaseProvider
- type CachedProvider
- type Provider
- type ZoneIDFilter
- type ZoneIDName
- type ZoneTagFilter
- type ZoneTypeFilter
Constants ¶
This section is empty.
Variables ¶
var RecordsContextKey = &contextKey{"records"}
RecordsContextKey is a context key. It can be used during ApplyChanges to access previously cached records. The associated value will be of type []*endpoint.Endpoint.
var SoftError error = errors.New("soft error")
SoftError is an error, that provider will only log as error instead of fatal. It is meant for error propagation from providers to tell that this is a transient error.
Functions ¶
func Difference ¶ added in v0.7.2
Difference tells which entries need to be respectively added, removed, or left untouched for "current" to be transformed to "desired"
func EnsureTrailingDot ¶ added in v0.7.2
EnsureTrailingDot ensures that the hostname receives a trailing dot if it hasn't already.
func NewSoftError ¶ added in v0.14.1
NewSoftError creates a SoftError from the given error
func SupportedRecordType ¶ added in v0.7.2
SupportedRecordType returns true only for supported record types. Currently A, AAAA, CNAME, SRV, TXT and NS record types are supported.
Types ¶
type BaseProvider ¶ added in v0.7.2
type BaseProvider struct{}
func (BaseProvider) AdjustEndpoints ¶ added in v0.7.5
func (BaseProvider) GetDomainFilter ¶ added in v0.9.0
func (b BaseProvider) GetDomainFilter() endpoint.DomainFilterInterface
type CachedProvider ¶ added in v0.15.0
type CachedProvider struct { Provider RefreshDelay time.Duration // contains filtered or unexported fields }
func NewCachedProvider ¶ added in v0.15.0
func NewCachedProvider(provider Provider, refreshDelay time.Duration) *CachedProvider
func (*CachedProvider) ApplyChanges ¶ added in v0.15.0
func (*CachedProvider) Reset ¶ added in v0.15.0
func (c *CachedProvider) Reset()
type Provider ¶
type Provider interface { Records(ctx context.Context) ([]*endpoint.Endpoint, error) ApplyChanges(ctx context.Context, changes *plan.Changes) error // AdjustEndpoints canonicalizes a set of candidate endpoints. // It is called with a set of candidate endpoints obtained from the various sources. // It returns a set modified as required by the provider. The provider is responsible for // adding, removing, and modifying the ProviderSpecific properties to match // the endpoints that the provider returns in `Records` so that the change plan will not have // unnecessary (potentially failing) changes. It may also modify other fields, add, or remove // Endpoints. It is permitted to modify the supplied endpoints. AdjustEndpoints(endpoints []*endpoint.Endpoint) ([]*endpoint.Endpoint, error) GetDomainFilter() endpoint.DomainFilterInterface }
Provider defines the interface DNS providers should implement.
type ZoneIDFilter ¶ added in v0.5.0
type ZoneIDFilter struct {
ZoneIDs []string
}
ZoneIDFilter holds a list of zone ids to filter by
func NewZoneIDFilter ¶ added in v0.5.0
func NewZoneIDFilter(zoneIDs []string) ZoneIDFilter
NewZoneIDFilter returns a new ZoneIDFilter given a list of zone ids
func (ZoneIDFilter) IsConfigured ¶ added in v0.13.0
func (f ZoneIDFilter) IsConfigured() bool
IsConfigured returns true if DomainFilter is configured, false otherwise
func (ZoneIDFilter) Match ¶ added in v0.5.0
func (f ZoneIDFilter) Match(zoneID string) bool
Match checks whether a zone matches one of the provided zone ids
type ZoneIDName ¶ added in v0.7.2
func (ZoneIDName) Add ¶ added in v0.7.2
func (z ZoneIDName) Add(zoneID, zoneName string)
func (ZoneIDName) FindZone ¶ added in v0.7.2
func (z ZoneIDName) FindZone(hostname string) (suitableZoneID, suitableZoneName string)
type ZoneTagFilter ¶ added in v0.5.10
type ZoneTagFilter struct {
// contains filtered or unexported fields
}
ZoneTagFilter holds a list of zone tags to filter by
func NewZoneTagFilter ¶ added in v0.5.10
func NewZoneTagFilter(tags []string) ZoneTagFilter
NewZoneTagFilter returns a new ZoneTagFilter given a list of zone tags
func (ZoneTagFilter) IsEmpty ¶ added in v0.5.10
func (f ZoneTagFilter) IsEmpty() bool
IsEmpty returns true if there are no tags for the filter
type ZoneTypeFilter ¶ added in v0.4.5
type ZoneTypeFilter struct {
// contains filtered or unexported fields
}
ZoneTypeFilter holds a zone type to filter for.
func NewZoneTypeFilter ¶ added in v0.4.5
func NewZoneTypeFilter(zoneType string) ZoneTypeFilter
NewZoneTypeFilter returns a new ZoneTypeFilter given a zone type to filter for.
func (ZoneTypeFilter) Match ¶ added in v0.4.5
func (f ZoneTypeFilter) Match(rawZoneType interface{}) bool
Match checks whether a zone matches the zone type that's filtered for.