config

package
v1.30.0 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2024 License: Apache-2.0 Imports: 13 Imported by: 314

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 EndpointSliceConfig added in v1.16.0

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

EndpointSliceConfig tracks a set of endpoints configurations.

func NewEndpointSliceConfig added in v1.16.0

func NewEndpointSliceConfig(endpointSliceInformer discoveryv1informers.EndpointSliceInformer, resyncPeriod time.Duration) *EndpointSliceConfig

NewEndpointSliceConfig creates a new EndpointSliceConfig.

func (*EndpointSliceConfig) RegisterEventHandler added in v1.16.0

func (c *EndpointSliceConfig) RegisterEventHandler(handler EndpointSliceHandler)

RegisterEventHandler registers a handler which is called on every endpoint slice change.

func (*EndpointSliceConfig) Run added in v1.16.0

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

Run waits for cache synced and invokes handlers after syncing.

type EndpointSliceHandler added in v1.16.0

type EndpointSliceHandler interface {
	// OnEndpointSliceAdd is called whenever creation of new endpoint slice
	// object is observed.
	OnEndpointSliceAdd(endpointSlice *discoveryv1.EndpointSlice)
	// OnEndpointSliceUpdate is called whenever modification of an existing
	// endpoint slice object is observed.
	OnEndpointSliceUpdate(oldEndpointSlice, newEndpointSlice *discoveryv1.EndpointSlice)
	// OnEndpointSliceDelete is called whenever deletion of an existing
	// endpoint slice object is observed.
	OnEndpointSliceDelete(endpointSlice *discoveryv1.EndpointSlice)
	// OnEndpointSlicesSynced is called once all the initial event handlers were
	// called and the state is fully propagated to local cache.
	OnEndpointSlicesSynced()
}

EndpointSliceHandler is an abstract interface of objects which receive notifications about endpoint slice object changes.

type NodeConfig added in v1.17.0

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

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

func NewNodeConfig added in v1.17.0

func NewNodeConfig(nodeInformer v1informers.NodeInformer, resyncPeriod time.Duration) *NodeConfig

NewNodeConfig creates a new NodeConfig.

func (*NodeConfig) RegisterEventHandler added in v1.17.0

func (c *NodeConfig) RegisterEventHandler(handler NodeHandler)

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

func (*NodeConfig) Run added in v1.17.0

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

Run starts the goroutine responsible for calling registered handlers.

type NodeHandler added in v1.17.0

type NodeHandler interface {
	// OnNodeAdd is called whenever creation of new node object
	// is observed.
	OnNodeAdd(node *v1.Node)
	// OnNodeUpdate is called whenever modification of an existing
	// node object is observed.
	OnNodeUpdate(oldNode, node *v1.Node)
	// OnNodeDelete is called whenever deletion of an existing node
	// object is observed.
	OnNodeDelete(node *v1.Node)
	// OnNodeSynced is called once all the initial event handlers were
	// called and the state is fully propagated to local cache.
	OnNodeSynced()
}

NodeHandler is an abstract interface of objects which receive notifications about node object changes.

type NoopNodeHandler added in v1.17.0

type NoopNodeHandler struct{}

NoopNodeHandler is a noop handler for proxiers that have not yet implemented a full NodeHandler.

func (*NoopNodeHandler) OnNodeAdd added in v1.17.0

func (*NoopNodeHandler) OnNodeAdd(node *v1.Node)

OnNodeAdd is a noop handler for Node creates.

func (*NoopNodeHandler) OnNodeDelete added in v1.17.0

func (*NoopNodeHandler) OnNodeDelete(node *v1.Node)

OnNodeDelete is a noop handler for Node deletes.

func (*NoopNodeHandler) OnNodeSynced added in v1.17.0

func (*NoopNodeHandler) OnNodeSynced()

OnNodeSynced is a noop handler for Node syncs.

func (*NoopNodeHandler) OnNodeUpdate added in v1.17.0

func (*NoopNodeHandler) OnNodeUpdate(oldNode, node *v1.Node)

OnNodeUpdate is a noop handler for Node updates.

type ServiceCIDRConfig added in v1.30.0

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

ServiceCIDRConfig tracks a set of service configurations.

func NewServiceCIDRConfig added in v1.30.0

func NewServiceCIDRConfig(serviceCIDRInformer networkingv1alpha1informers.ServiceCIDRInformer, resyncPeriod time.Duration) *ServiceCIDRConfig

NewServiceCIDRConfig creates a new ServiceCIDRConfig.

func (*ServiceCIDRConfig) RegisterEventHandler added in v1.30.0

func (c *ServiceCIDRConfig) RegisterEventHandler(handler ServiceCIDRHandler)

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

func (*ServiceCIDRConfig) Run added in v1.30.0

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

Run waits for cache synced and invokes handlers after syncing.

type ServiceCIDRHandler added in v1.30.0

type ServiceCIDRHandler interface {
	// OnServiceCIDRsChanged is called whenever a change is observed
	// in any of the ServiceCIDRs, and provides complete list of service cidrs.
	OnServiceCIDRsChanged(cidrs []string)
}

ServiceCIDRHandler is an abstract interface of objects which receive notifications about ServiceCIDR object changes.

type ServiceConfig

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

ServiceConfig tracks a set of service configurations.

func NewServiceConfig

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

NewServiceConfig creates a new ServiceConfig.

func (*ServiceConfig) RegisterEventHandler added in v1.7.0

func (c *ServiceConfig) RegisterEventHandler(handler ServiceHandler)

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

func (*ServiceConfig) Run added in v1.7.0

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

Run waits for cache synced and invokes handlers after syncing.

type ServiceHandler added in v1.7.0

type ServiceHandler interface {
	// OnServiceAdd is called whenever creation of new service object
	// is observed.
	OnServiceAdd(service *v1.Service)
	// OnServiceUpdate is called whenever modification of an existing
	// service object is observed.
	OnServiceUpdate(oldService, service *v1.Service)
	// OnServiceDelete is called whenever deletion of an existing service
	// object is observed.
	OnServiceDelete(service *v1.Service)
	// OnServiceSynced is called once all the initial event handlers were
	// called and the state is fully propagated to local cache.
	OnServiceSynced()
}

ServiceHandler is an abstract interface of objects which receive notifications about service object changes.

Jump to

Keyboard shortcuts

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