diff --git a/pkg/provider/kubernetes/crd/kubernetes.go b/pkg/provider/kubernetes/crd/kubernetes.go index 4371b5e34..51546914b 100644 --- a/pkg/provider/kubernetes/crd/kubernetes.go +++ b/pkg/provider/kubernetes/crd/kubernetes.go @@ -110,13 +110,16 @@ func (p *Provider) Provide(configurationChan chan<- dynamic.Message, pool *safe. } throttleDuration := time.Duration(p.ThrottleDuration) - eventsChanToRead := throttleEvents(ctxLog, throttleDuration, stop, eventsChan) + throttledChan := throttleEvents(ctxLog, throttleDuration, stop, eventsChan) + if throttledChan != nil { + eventsChan = throttledChan + } for { select { case <-stop: return nil - case event := <-eventsChanToRead: + case event := <-eventsChan: // Note that event is the *first* event that came in during this // throttling interval -- if we're hitting our throttle, we may have // dropped events. This is fine, because we don't treat different diff --git a/pkg/provider/kubernetes/ingress/kubernetes.go b/pkg/provider/kubernetes/ingress/kubernetes.go index 8e265a067..7a2d87a0b 100644 --- a/pkg/provider/kubernetes/ingress/kubernetes.go +++ b/pkg/provider/kubernetes/ingress/kubernetes.go @@ -121,13 +121,16 @@ func (p *Provider) Provide(configurationChan chan<- dynamic.Message, pool *safe. } throttleDuration := time.Duration(p.ThrottleDuration) - eventsChanToRead := throttleEvents(ctxLog, throttleDuration, stop, eventsChan) + throttledChan := throttleEvents(ctxLog, throttleDuration, stop, eventsChan) + if throttledChan != nil { + eventsChan = throttledChan + } for { select { case <-stop: return nil - case event := <-eventsChanToRead: + case event := <-eventsChan: // Note that event is the *first* event that came in during this // throttling interval -- if we're hitting our throttle, we may have // dropped events. This is fine, because we don't treat different