Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Cell = cell.Module( "node-manager", "Manages the collection of Cilium nodes", cell.Provide(newAllNodeManager), cell.ProvidePrivate(func(iptMgr *iptables.Manager) ipsetManager { return iptMgr }), cell.Metric(NewNodeMetrics), )
Cell provides the NodeManager, which manages information about Cilium nodes in the cluster and informs other modules of changes to node configuration.
Functions ¶
func New ¶
func New(c Configuration, ipCache IPCache, ipsetMgr ipsetManager, nodeMetrics *nodeMetrics, healthScope cell.Scope) (*manager, error)
New returns a new node manager
func NewNodeMetrics ¶
func NewNodeMetrics() *nodeMetrics
Types ¶
type Configuration ¶
type Configuration interface { TunnelingEnabled() bool RemoteNodeIdentitiesEnabled() bool NodeEncryptionEnabled() bool }
Configuration is the set of configuration options the node manager depends on
type IPCache ¶
type IPCache interface { GetMetadataByPrefix(prefix netip.Prefix) ipcache.PrefixInfo UpsertMetadata(prefix netip.Prefix, src source.Source, resource ipcacheTypes.ResourceID, aux ...ipcache.IPMetadata) OverrideIdentity(prefix netip.Prefix, identityLabels labels.Labels, src source.Source, resource ipcacheTypes.ResourceID) RemoveMetadata(prefix netip.Prefix, resource ipcacheTypes.ResourceID, aux ...ipcache.IPMetadata) RemoveIdentityOverride(prefix netip.Prefix, identityLabels labels.Labels, resource ipcacheTypes.ResourceID) }
IPCache is the set of interactions the node manager performs with the ipcache
type NodeManager ¶
type NodeManager interface { Notifier // GetNodes returns a copy of all the nodes as a map from Identity to Node. GetNodes() map[types.Identity]types.Node // GetNodeIdentities returns a list of all node identities store in node // manager. GetNodeIdentities() []types.Identity // NodeUpdated is called when the store detects a change in node // information NodeUpdated(n types.Node) // NodeDeleted is called when the store detects a deletion of a node NodeDeleted(n types.Node) // ClusterSizeDependantInterval returns a time.Duration that is dependent on // the cluster size, i.e. the number of nodes that have been discovered. This // can be used to control sync intervals of shared or centralized resources to // avoid overloading these resources as the cluster grows. ClusterSizeDependantInterval(baseInterval time.Duration) time.Duration // StartNeighborRefresh spawns a controller which refreshes neighbor table // by sending arping periodically. StartNeighborRefresh(nh datapath.NodeNeighbors) }
type Notifier ¶
type Notifier interface { // Subscribe adds the given NodeHandler to the list of subscribers that are // notified of node changes. Upon call to this method, the NodeHandler is // being notified of all nodes that are already in the cluster by calling // the NodeHandler's NodeAdd callback. Subscribe(datapath.NodeHandler) // Unsubscribe removes the given NodeHandler from the list of subscribers. Unsubscribe(datapath.NodeHandler) }
Notifier is the interface the wraps Subscribe and Unsubscribe. An implementation of this interface notifies subscribers of nodes being added, updated or deleted.
Click to show internal directories.
Click to hide internal directories.