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 IDAlloc idalloc.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 can be used by renderers to perform a second stage of initialization.
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
- external 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