kubernetesk8s.io/kubernetes/pkg/proxy/config Index | Files

package config

import "k8s.io/kubernetes/pkg/proxy/config"

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

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) RegisterEventHandler

func (c *EndpointsConfig) RegisterEventHandler(handler EndpointsHandler)

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

func (*EndpointsConfig) Run

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

Run starts the goroutine responsible for calling registered handlers.

type EndpointsHandler

type EndpointsHandler interface {
	// OnEndpointsAdd is called whenever creation of new endpoints object
	// is observed.
	OnEndpointsAdd(endpoints *api.Endpoints)
	// OnEndpointsUpdate is called whenever modification of an existing
	// endpoints object is observed.
	OnEndpointsUpdate(oldEndpoints, endpoints *api.Endpoints)
	// OnEndpointsDelete is called whever deletion of an existing endpoints
	// object is observed.
	OnEndpointsDelete(endpoints *api.Endpoints)
	// OnEndpointsSynced is called once all the initial event handlers were
	// called and the state is fully propagated to local cache.
	OnEndpointsSynced()
}

EndpointsHandler is an abstract interface o objects which receive notifications about endpoints object changes.

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

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.

Source Files

config.go doc.go

Version
v1.7.0-alpha.2
Published
Apr 19, 2017
Platform
js/wasm
Imports
11 packages
Last checked
11 seconds ago

Tools for package owners.