controller

package
v0.7.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 13, 2021 License: Apache-2.0 Imports: 10 Imported by: 1

Documentation

Index

Constants

View Source
const MinInterval = 5 * time.Second

MinInterval is used as window for batching events

Variables

This section is empty.

Functions

This section is empty.

Types

type Controller

type Controller struct {
	Source   source.Source
	Registry registry.Registry
	// The policy that defines which changes to DNS records are allowed
	Policy plan.Policy
	// The interval between individual synchronizations
	Interval time.Duration
	// The DomainFilter defines which DNS records to keep or exclude
	DomainFilter endpoint.DomainFilter

	// DNS record types that will be considered for management
	ManagedRecordTypes []string
	// contains filtered or unexported fields
}

Controller is responsible for orchestrating the different components. It works in the following way: * Ask the DNS provider for current list of endpoints. * Ask the Source for the desired list of endpoints. * Take both lists and calculate a Plan to move current towards desired state. * Tell the DNS provider to apply the changes calculated by the Plan.

func (*Controller) Run

func (c *Controller) Run(ctx context.Context)

Run runs RunOnce in a loop with a delay until context is canceled

func (*Controller) RunOnce

func (c *Controller) RunOnce(ctx context.Context) error

RunOnce runs a single iteration of a reconciliation loop.

func (*Controller) ScheduleRunOnce added in v0.7.2

func (c *Controller) ScheduleRunOnce(now time.Time)

ScheduleRunOnce makes sure execution happens at most once per interval.

func (*Controller) ShouldRunOnce added in v0.7.2

func (c *Controller) ShouldRunOnce(now time.Time) bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL