config

package
v1.7.0-alpha.1 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2017 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package config provides decoupling between various configuration sources (etcd, files,...) and the pieces that actually care about them (loadbalancer, proxy). Config takes 1 or more configuration sources and allows for incremental (add/remove) and full replace (set) changes from each of the sources, then creates a union of the configuration and provides a unified view for both service handlers as well as endpoint handlers. There is no attempt to resolve conflicts of any sort. Basic idea is that each configuration source gets a channel from the Config service and pushes updates to it via that channel. Config then keeps track of incremental & replace changes and distributes them to listeners as appropriate.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EndpointsConfig

type EndpointsConfig struct {
	// contains filtered or unexported fields
}

EndpointsConfig tracks a set of endpoints configurations. It accepts "set", "add" and "remove" operations of endpoints via channels, and invokes registered handlers on change.

func NewEndpointsConfig

func NewEndpointsConfig(endpointsInformer coreinformers.EndpointsInformer, resyncPeriod time.Duration) *EndpointsConfig

NewEndpointsConfig creates a new EndpointsConfig.

func (*EndpointsConfig) RegisterHandler

func (c *EndpointsConfig) RegisterHandler(handler EndpointsConfigHandler)

RegisterHandler registers a handler which is called on every endpoints change.

func (*EndpointsConfig) Run added in v1.7.0

func (c *EndpointsConfig) Run(stopCh <-chan struct{})

Run starts the goroutine responsible for calling registered handlers.

type EndpointsConfigHandler

type EndpointsConfigHandler interface {
	// OnEndpointsUpdate gets called when endpoints configuration is changed for a given
	// service on any of the configuration sources. An example is when a new
	// service comes up, or when containers come up or down for an existing service.
	//
	// NOTE: For efficiency, endpoints are being passed by reference, thus,
	// OnEndpointsUpdate should NOT modify pointers of a given slice.
	// Those endpoints objects are shared with other layers of the system and
	// are guaranteed to be immutable with the assumption that are also
	// not mutated by those handlers. Make a deep copy if you need to modify
	// them in your code.
	OnEndpointsUpdate(endpoints []*api.Endpoints)
}

EndpointsConfigHandler is an abstract interface of objects which receive update notifications for the set of endpoints.

type ServiceConfig

type ServiceConfig struct {
	// contains filtered or unexported fields
}

ServiceConfig tracks a set of service configurations. It accepts "set", "add" and "remove" operations of services via channels, and invokes registered handlers on change.

func NewServiceConfig

func NewServiceConfig(serviceInformer coreinformers.ServiceInformer, resyncPeriod time.Duration) *ServiceConfig

NewServiceConfig creates a new ServiceConfig.

func (*ServiceConfig) RegisterHandler

func (c *ServiceConfig) RegisterHandler(handler ServiceConfigHandler)

RegisterHandler registers a handler which is called on every services change.

func (*ServiceConfig) Run added in v1.7.0

func (c *ServiceConfig) Run(stopCh <-chan struct{})

Run starts the goroutine responsible for calling registered handlers.

type ServiceConfigHandler

type ServiceConfigHandler interface {
	// OnServiceUpdate gets called when a service is created, removed or changed
	// on any of the configuration sources. An example is when a new service
	// comes up.
	//
	// NOTE: For efficiency, services are being passed by reference, thus,
	// OnServiceUpdate should NOT modify pointers of a given slice.
	// Those service objects are shared with other layers of the system and
	// are guaranteed to be immutable with the assumption that are also
	// not mutated by those handlers. Make a deep copy if you need to modify
	// them in your code.
	OnServiceUpdate(services []*api.Service)
}

ServiceConfigHandler is an abstract interface of objects which receive update notifications for the set of services.

Jump to

Keyboard shortcuts

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