Skip to content

Commit

Permalink
podSelectorAddressSet: fix deleting namespaceHandler.
Browse files Browse the repository at this point in the history
namespace and pod handlers need different commands to be
cleaned up. we used to call RemovePodHandler for both namespace
and pod handlers

Signed-off-by: Nadia Pinaeva <npinaeva@redhat.com>
  • Loading branch information
npinaeva authored and jcaamano committed Jul 10, 2023
1 parent c5b7e25 commit ef362a8
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions go-controller/pkg/ovn/pod_selector_address_set.go
Expand Up @@ -38,7 +38,8 @@ type PodSelectorAddressSet struct {
backRefs map[string]bool

// handler is either pod or namespace handler
handler *factory.Handler
nsHandler *factory.Handler
podHandler *factory.Handler

podSelector labels.Selector
namespaceSelector labels.Selector
Expand Down Expand Up @@ -177,7 +178,7 @@ func (psas *PodSelectorAddressSet) init(bnc *BaseNetworkController) error {
}

var err error
if psas.handler == nil {
if psas.nsHandler == nil && psas.podHandler == nil {
if psas.namespace != "" {
// static namespace
if psas.podSelector.Empty() {
Expand Down Expand Up @@ -216,9 +217,13 @@ func (psas *PodSelectorAddressSet) destroy(bnc *BaseNetworkController) error {
return fmt.Errorf("failed to delete handler resources: %w", err)
}
}
if psas.handler != nil {
bnc.watchFactory.RemovePodHandler(psas.handler)
psas.handler = nil
if psas.podHandler != nil {
bnc.watchFactory.RemovePodHandler(psas.podHandler)
psas.podHandler = nil
}
if psas.nsHandler != nil {
bnc.watchFactory.RemoveNamespaceHandler(psas.nsHandler)
psas.nsHandler = nil
}
psas.needsCleanup = false
return nil
Expand All @@ -243,7 +248,7 @@ func (bnc *BaseNetworkController) addPodSelectorHandler(psAddrSet *PodSelectorAd
klog.Errorf("Failed WatchResource for addPodSelectorHandler: %v", err)
return err
}
psAddrSet.handler = podHandler
psAddrSet.podHandler = podHandler
return nil
}

Expand All @@ -265,7 +270,7 @@ func (bnc *BaseNetworkController) addNamespacedPodSelectorHandler(psAddrSet *Pod
return err
}

psAddrSet.handler = namespaceHandler
psAddrSet.nsHandler = namespaceHandler
return nil
}

Expand Down

0 comments on commit ef362a8

Please sign in to comment.