diff --git a/tap/passive_tapper.go b/tap/passive_tapper.go index 24f1cbddf..2abb19eb3 100644 --- a/tap/passive_tapper.go +++ b/tap/passive_tapper.go @@ -110,10 +110,8 @@ func UpdateTapTargets(newTapTargets []v1.Pod) { success := true tapTargets = newTapTargets - if err := initializePacketSources(); err != nil { - logger.Log.Fatal(err) - success = false - } + + packetSourceManager.UpdatePods(tapTargets) if tlsTapperInstance != nil { if err := tlstapper.UpdateTapTargets(tlsTapperInstance, &tapTargets, *procfs); err != nil { diff --git a/tap/source/packet_source_manager.go b/tap/source/packet_source_manager.go index 9dc538377..3fc0ee0b9 100644 --- a/tap/source/packet_source_manager.go +++ b/tap/source/packet_source_manager.go @@ -11,8 +11,16 @@ import ( const bpfFilterMaxPods = 150 const hostSourcePid = "0" +type PacketSourceManagerConfig struct { + mtls bool + procfs string + interfaceName string + behaviour TcpPacketSourceBehaviour +} + type PacketSourceManager struct { sources map[string]*tcpPacketSource + config PacketSourceManagerConfig } func NewPacketSourceManager(procfs string, filename string, interfaceName string, @@ -28,7 +36,14 @@ func NewPacketSourceManager(procfs string, filename string, interfaceName string }, } - sourceManager.UpdatePods(mtls, procfs, pods, interfaceName, behaviour) + sourceManager.config = PacketSourceManagerConfig{ + mtls: mtls, + procfs: procfs, + interfaceName: interfaceName, + behaviour: behaviour, + } + + sourceManager.UpdatePods(pods) return sourceManager, nil } @@ -49,10 +64,9 @@ func newHostPacketSource(filename string, interfaceName string, return source, nil } -func (m *PacketSourceManager) UpdatePods(mtls bool, procfs string, pods []v1.Pod, - interfaceName string, behaviour TcpPacketSourceBehaviour) { - if mtls { - m.updateMtlsPods(procfs, pods, interfaceName, behaviour) +func (m *PacketSourceManager) UpdatePods(pods []v1.Pod) { + if m.config.mtls { + m.updateMtlsPods(m.config.procfs, pods, m.config.interfaceName, m.config.behaviour) } m.setBPFFilter(pods)