Skip to content

Commit 56e28dd

Browse files
committed
added container receivers
Signed-off-by: Afek Berger <[email protected]>
1 parent 71c9e61 commit 56e28dd

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

pkg/containerwatcher/container_watcher_interface.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ type ContainerWatcher interface {
2323
GetContainerCollection() *containercollection.ContainerCollection
2424
GetSocketEnricher() *socketenricher.SocketEnricher
2525
GetContainerSelector() *containercollection.ContainerSelector
26+
RegisterContainerReceiver(receiver ContainerReceiver)
27+
UnregisterContainerReceiver(receiver ContainerReceiver)
2628
}
2729

2830
type CustomTracerInitializer interface {

pkg/containerwatcher/v2/container_watcher.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ type ContainerWatcher struct {
7676
// Third party components
7777
thirdPartyTracersInitializers mapset.Set[containerwatcher.CustomTracerInitializer]
7878
thirdPartyEnricher containerwatcher.TaskBasedEnricher
79+
thirdPartyContainerReceivers mapset.Set[containerwatcher.ContainerReceiver]
7980

8081
// Cache and state
8182
objectCache objectcache.ObjectCache
@@ -380,6 +381,15 @@ func (cw *ContainerWatcher) GetContainerSelector() *containercollection.Containe
380381
return &cw.containerSelector
381382
}
382383

384+
func (cw *ContainerWatcher) RegisterContainerReceiver(receiver containerwatcher.ContainerReceiver) {
385+
cw.thirdPartyContainerReceivers.Add(receiver)
386+
}
387+
388+
// UnregisterContainerReceiver unregisters a container receiver
389+
func (cw *ContainerWatcher) UnregisterContainerReceiver(receiver containerwatcher.ContainerReceiver) {
390+
cw.thirdPartyContainerReceivers.Remove(receiver)
391+
}
392+
383393
func (cw *ContainerWatcher) eventProcessingLoop() {
384394
ticker := time.NewTicker(50 * time.Millisecond)
385395
defer ticker.Stop()

pkg/containerwatcher/v2/container_watcher_collection.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ func (cw *ContainerWatcher) StartContainerCollection(ctx context.Context) error
5757
cw.networkStreamClient.ContainerCallback,
5858
}
5959

60+
for receiver := range cw.thirdPartyContainerReceivers.Iter() {
61+
cw.callbacks = append(cw.callbacks, receiver.ContainerCallback)
62+
}
63+
6064
// Define the different options for the container collection instance
6165
opts := []containercollection.ContainerCollectionOption{
6266
// Get Notifications from the container collection

0 commit comments

Comments
 (0)