Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Policies = map[string]Policy{
"sync": &SyncPolicy{},
"upsert-only": &UpsertOnlyPolicy{},
}
Policies is a registry of available policies.
Functions ¶
This section is empty.
Types ¶
type Changes ¶
type Changes struct {
// Records that need to be created
Create []*endpoint.Endpoint
// Records that need to be updated (current data)
UpdateOld []*endpoint.Endpoint
// Records that need to be updated (desired data)
UpdateNew []*endpoint.Endpoint
// Records that need to be deleted
Delete []*endpoint.Endpoint
}
Changes holds lists of actions to be executed by dns providers
type Plan ¶
type Plan struct {
// List of current records
Current []*endpoint.Endpoint
// List of desired records
Desired []*endpoint.Endpoint
// Policies under which the desired changes are calculated
Policies []Policy
// List of changes necessary to move towards desired state
// Populated after calling Calculate()
Changes *Changes
}
Plan can convert a list of desired and current records to a series of create, update and delete actions.
Example ¶
ExamplePlan shows how plan can be used.
Output:
type Policy ¶ added in v0.3.0
type Policy interface {
Apply(changes *Changes) *Changes
}
Policy allows to apply different rules to a set of changes.
type SyncPolicy ¶ added in v0.3.0
type SyncPolicy struct{}
SyncPolicy allows for full synchronization of DNS records.
type UpsertOnlyPolicy ¶ added in v0.3.0
type UpsertOnlyPolicy struct{}
UpsertOnlyPolicy allows evrything but deleting DNS records.
Click to show internal directories.
Click to hide internal directories.