// runReflectorUntil is equivalent to cache.Reflector.RunUntil, but it also logs // errors, which cache.Reflector.RunUntil simply ignores func runReflectorUntil(r *cache.Reflector, resyncPeriod time.Duration, stopCh <-chan struct{}) { loggingListAndWatch := func() { if err := r.ListAndWatch(stopCh); err != nil { log.Errorf("Kubernetes reflector: %v", err) } } go util.Until(loggingListAndWatch, resyncPeriod, stopCh) }