Documentation ¶
Index ¶
Constants ¶
const ( // default qps limit value for workqueues, this only for retries. CESControllerWorkQueueQPSLimit = 10 // default burst limit value for workqueues. CESControllerWorkQueueBurstLimit = 100 // Delayed CES Synctime, CES's are synced with k8s-apiserver after certain delay // Some CES's are delayed to sync with k8s-apiserver. DelayedCESSyncTime = 15 * time.Second // Default CES Synctime, sync instantaeously with k8s-apiserver. DefaultCESSyncTime = 0 )
Variables ¶
This section is empty.
Functions ¶
func GetCEPNameFromCCEP ¶
func GetCEPNameFromCCEP(cep *capi_v2a1.CoreCiliumEndpoint, namespace string) string
Derives the unique name from CoreCiliumEndpoint object. This unique name is used for mapping CiliumEndpoint to CiliumEndpointSlice. Used widely, to determine if the given CEP is mapped to any CES or not.
Types ¶
type CESToCEPMapping ¶
type CESToCEPMapping struct {
// contains filtered or unexported fields
}
CESToCEPMapping is used to map CiliumEndpointSlice name to cesTracker object which in turn consists of CEPs, a CES name to list of all CEPs. Also, it manages a map CEP name to CES name. These maps are used by the CES manager, primarily used for storing and retrieving the desired CESs by thread-safe. This map is protected by lock for consistent and concurrent access.
type CiliumEndpointSliceController ¶
type CiliumEndpointSliceController struct { // Manager is used to create and maintain a local datastore. Manager watches for // cilium endpoint changes and enqueues/dequeues the cilium endpoint changes in CES. // It maintains the desired state of the CESs in dataStore Manager operations // contains filtered or unexported fields }
func NewCESController ¶
func NewCESController( ctx context.Context, wg *sync.WaitGroup, clientset k8sClient.Clientset, maxCEPsInCES int, slicingMode string, qpsLimit float64, burstLimit int, ) *CiliumEndpointSliceController
NewCESController, creates and initializes the CES controller
func (*CiliumEndpointSliceController) Run ¶
func (c *CiliumEndpointSliceController) Run(ces cache.Indexer, stopCh <-chan struct{})
start the worker thread, reconciles the modified CESs with api-server