Skip to content

Commit

Permalink
k8s/watchers: Fix calling Done() with proper error
Browse files Browse the repository at this point in the history
Previously, the error was not passed down to the Done() which would
never attempt a retry if there was an error in the node handler.

Fixes: b4335ee ("k8s: Introduce shared resources")
Fixes: cilium#21744
Signed-off-by: Chris Tarazi <chris@isovalent.com>
  • Loading branch information
christarazi committed Mar 29, 2023
1 parent 9be3b28 commit 37aa64b
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions pkg/k8s/watchers/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,26 +72,27 @@ func (k *K8sWatcher) nodeEventLoop(synced *atomic.Bool, swg *lock.StoppableWaitG
if !ok {
return
}
var errs error
switch event.Kind {
case resource.Sync:
synced.Store(true)
case resource.Upsert:
newNode := event.Object
if oldNode == nil {
k.K8sEventReceived(apiGroup, metricNode, resources.MetricCreate, true, false)
errs := k.NodeChain.OnAddNode(newNode, swg)
errs = k.NodeChain.OnAddNode(newNode, swg)
k.K8sEventProcessed(metricNode, resources.MetricCreate, errs == nil)
} else {
equal := nodeEventsAreEqual(oldNode, newNode)
k.K8sEventReceived(apiGroup, metricNode, resources.MetricUpdate, true, equal)
if !equal {
errs := k.NodeChain.OnUpdateNode(oldNode, newNode, swg)
errs = k.NodeChain.OnUpdateNode(oldNode, newNode, swg)
k.K8sEventProcessed(metricNode, resources.MetricUpdate, errs == nil)
}
}
oldNode = newNode
}
event.Done(nil)
event.Done(errs)
}
}
}
Expand Down

0 comments on commit 37aa64b

Please sign in to comment.