Documentation
¶
Index ¶
- Variables
- func ConvertUnstructuredToOperatorCommand(un *unstructured.Unstructured) (*v1alpha1.OperatorCommand, error)
- type CommandWatchHandler
- type CooldownQueue
- type OperatorCommandsHandler
- type RegistryCommandsHandler
- type SecurityExceptionWatchHandler
- type WatchHandler
- func (wh *WatchHandler) ContainerProfileWatch(ctx context.Context, workerPool *ants.PoolWithFunc)
- func (wh *WatchHandler) HandleContainerProfileEvents(eventQueue *CooldownQueue, producedCommands chan<- *apis.Command, ...)
- func (wh *WatchHandler) HandleSBOMEvents(eventQueue *CooldownQueue, producedCommands chan<- *apis.Command, ...)
- func (wh *WatchHandler) PodWatch(ctx context.Context, workerPool *ants.PoolWithFunc)
- func (wh *WatchHandler) SBOMWatch(ctx context.Context, workerPool *ants.PoolWithFunc)
Constants ¶
This section is empty.
Variables ¶
var ( ErrMissingWLID = fmt.Errorf("missing WLID") ErrMissingWlid = ErrMissingWLID // alias used by SBOM watcher retry path ErrMissingSlug = fmt.Errorf("missing slug") ErrMissingImageTag = fmt.Errorf("missing image ID") ErrMissingImageID = fmt.Errorf("missing image tag") ErrMissingInstanceID = fmt.Errorf("missing instanceID") ErrMissingContainerName = fmt.Errorf("missing container name") ErrUnsupportedObject = errors.New("unsupported object type") )
Functions ¶
func ConvertUnstructuredToOperatorCommand ¶ added in v0.2.40
func ConvertUnstructuredToOperatorCommand(un *unstructured.Unstructured) (*v1alpha1.OperatorCommand, error)
Types ¶
type CommandWatchHandler ¶ added in v0.2.40
type CommandWatchHandler struct {
// contains filtered or unexported fields
}
func NewCommandWatchHandler ¶ added in v0.2.40
func NewCommandWatchHandler(k8sAPI *k8sinterface.KubernetesApi, config config.IConfig) *CommandWatchHandler
func (*CommandWatchHandler) AddHandler ¶ added in v0.2.40
func (cwh *CommandWatchHandler) AddHandler(obj runtime.Object)
func (*CommandWatchHandler) CommandWatch ¶ added in v0.2.40
func (cwh *CommandWatchHandler) CommandWatch(ctx context.Context)
func (*CommandWatchHandler) RegisterForCommands ¶ added in v0.2.40
func (cwh *CommandWatchHandler) RegisterForCommands(receiver chan v1alpha1.OperatorCommand)
type CooldownQueue ¶ added in v0.2.4
type CooldownQueue struct {
ResultChan <-chan watch.Event
// contains filtered or unexported fields
}
CooldownQueue is a queue that lets clients put events into it with a cooldown
When a client puts an event into a queue, it waits for a cooldown period before the event is forwarded to the consumer. If an event for the same key is put into the queue again before the cooldown period is over, the event is overridden and the cooldown period is reset.
func NewCooldownQueue ¶ added in v0.2.4
func NewCooldownQueue() *CooldownQueue
NewCooldownQueue returns a new Cooldown Queue
func NewCooldownQueueWithParams ¶ added in v0.2.63
func NewCooldownQueueWithParams(expiration, interval time.Duration) *CooldownQueue
func (*CooldownQueue) Closed ¶ added in v0.2.4
func (q *CooldownQueue) Closed() bool
func (*CooldownQueue) Enqueue ¶ added in v0.2.4
func (q *CooldownQueue) Enqueue(e watch.Event)
Enqueue enqueues an event in the Cooldown Queue
func (*CooldownQueue) Stop ¶ added in v0.2.4
func (q *CooldownQueue) Stop()
type OperatorCommandsHandler ¶ added in v0.2.63
type OperatorCommandsHandler struct {
// contains filtered or unexported fields
}
func NewOperatorCommandsHandler ¶ added in v0.2.63
func NewOperatorCommandsHandler(ctx context.Context, pool *ants.PoolWithFunc, k8sAPI *k8sinterface.KubernetesApi, commandsWatcher *CommandWatchHandler, config config.IConfig) *OperatorCommandsHandler
func (*OperatorCommandsHandler) Start ¶ added in v0.2.63
func (ch *OperatorCommandsHandler) Start()
type RegistryCommandsHandler ¶ added in v0.2.40
type RegistryCommandsHandler struct {
// contains filtered or unexported fields
}
func NewRegistryCommandsHandler ¶ added in v0.2.40
func NewRegistryCommandsHandler(ctx context.Context, k8sAPI *k8sinterface.KubernetesApi, commandsWatcher *CommandWatchHandler, config config.IConfig) *RegistryCommandsHandler
func (*RegistryCommandsHandler) Start ¶ added in v0.2.40
func (ch *RegistryCommandsHandler) Start()
type SecurityExceptionWatchHandler ¶ added in v0.2.158
type SecurityExceptionWatchHandler struct {
// contains filtered or unexported fields
}
SecurityExceptionWatchHandler watches SecurityException and ClusterSecurityException CRDs and dispatches a cluster posture rescan whenever an exception is created, changed, removed, or expires — so results reflect the current set of exceptions without waiting for the next scheduled scan.
func NewSecurityExceptionWatchHandler ¶ added in v0.2.158
func NewSecurityExceptionWatchHandler(cfg config.IConfig, dynamicClient dynamic.Interface, workerPool *ants.PoolWithFunc) *SecurityExceptionWatchHandler
NewSecurityExceptionWatchHandler returns a handler that dispatches rescans onto the given worker pool.
func (*SecurityExceptionWatchHandler) SecurityExceptionWatch ¶ added in v0.2.158
func (wh *SecurityExceptionWatchHandler) SecurityExceptionWatch(ctx context.Context)
SecurityExceptionWatch starts the informers, the expiry sweep and the rescan dispatcher. It blocks until ctx is cancelled.
type WatchHandler ¶
type WatchHandler struct {
ImageToContainerData maps.SafeMap[string, utils.ContainerData] // map of <hash> : <container data>
SlugToImageID maps.SafeMap[string, string] // map of <Slug> : string <image ID>
WlidAndImageID mapset.Set[string] // set of <wlid+imageID>
// contains filtered or unexported fields
}
func NewWatchHandler ¶
func NewWatchHandler(cfg config.IConfig, k8sAPI *k8sinterface.KubernetesApi, storageClient kssc.Interface, eventQueue *CooldownQueue) *WatchHandler
NewWatchHandler creates a new WatchHandler, initializes the maps and returns it
func (*WatchHandler) ContainerProfileWatch ¶ added in v0.2.109
func (wh *WatchHandler) ContainerProfileWatch(ctx context.Context, workerPool *ants.PoolWithFunc)
ContainerProfileWatch watches and processes changes on ContainerProfile resources
func (*WatchHandler) HandleContainerProfileEvents ¶ added in v0.2.109
func (wh *WatchHandler) HandleContainerProfileEvents(eventQueue *CooldownQueue, producedCommands chan<- *apis.Command, errorCh chan<- error)
func (*WatchHandler) HandleSBOMEvents ¶
func (wh *WatchHandler) HandleSBOMEvents(eventQueue *CooldownQueue, producedCommands chan<- *apis.Command, errorCh chan<- error)
func (*WatchHandler) PodWatch ¶
func (wh *WatchHandler) PodWatch(ctx context.Context, workerPool *ants.PoolWithFunc)
func (*WatchHandler) SBOMWatch ¶
func (wh *WatchHandler) SBOMWatch(ctx context.Context, workerPool *ants.PoolWithFunc)
SBOMWatch watches and processes changes on SBOMs