Documentation
¶
Overview ¶
Package sfc implements Service Function Chaining between k8s pods and external interfaces in Contiv-VPP.
Index ¶
- type Deps
- type Option
- type Plugin
- func (p *Plugin) AfterInit() error
- func (p *Plugin) Close() error
- func (p *Plugin) HandlesEvent(event controller.Event) bool
- func (p *Plugin) Init() error
- func (p *Plugin) Resync(event controller.Event, kubeStateData controller.KubeStateData, ...) error
- func (p *Plugin) Revert(event controller.Event) error
- func (p *Plugin) Update(event controller.Event, txn controller.UpdateOperations) (changeDescription string, err error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Deps ¶
type Deps struct { infra.PluginDeps ServiceLabel servicelabel.ReaderAPI ContivConf contivconf.API IPAM ipam.API IPNet ipnet.API NodeSync nodesync.API PodManager podmanager.API GoVPP govppmux.API Stats statscollector.API ConfigRetriever controller.ConfigRetriever }
Deps defines dependencies of the SFC plugin.
type Option ¶
type Option func(*Plugin)
Option is a function that acts on a Plugin to inject Dependencies or configuration
type Plugin ¶
type Plugin struct { Deps // contains filtered or unexported fields }
Plugin watches configuration of K8s resources (as reflected by KSR+CRD into ETCD) for changes in SFCs and pods and updates the chaining configuration in the VPP accordingly.
func (*Plugin) AfterInit ¶
AfterInit registers to the ResyncOrchestrator. The registration is done in this phase in order to ensure that the resync for this plugin is triggered only after resync of the Contiv plugin has finished.
func (*Plugin) HandlesEvent ¶
func (p *Plugin) HandlesEvent(event controller.Event) bool
HandlesEvent selects:
- any resync event
- KubeStateChange for SFCs and pods
- pod custom interfaces update
func (*Plugin) Init ¶
Init initializes the SFC plugin and starts watching ETCD for K8s configuration.
func (*Plugin) Resync ¶
func (p *Plugin) Resync(event controller.Event, kubeStateData controller.KubeStateData, resyncCount int, txn controller.ResyncOperations) error
Resync is called by Controller to handle event that requires full re-synchronization. For startup resync, resyncCount is 1. Higher counter values identify run-time resync.
func (*Plugin) Update ¶
func (p *Plugin) Update(event controller.Event, txn controller.UpdateOperations) (changeDescription string, err error)
Update is called for:
- KubeStateChange for or SFCs and pods
- pod custom interfaces update