code: func (i *Ingress) Run(ctx context.Context, ch chan<- []*targetgroup.Group) {
  	defer i.queue.ShutDown()
  
  	if !cache.WaitForCacheSync(ctx.Done(), i.informer.HasSynced) {
  		level.Error(i.logger).Log("msg", "ingress informer unable to sync cache")
  		return
  	}
  
  	go func() {
  		for i.process(ctx, ch) {
  		}
  	}()
  
  	// Block until the target provider is explicitly canceled.
  	<-ctx.Done()
  }
docs: // Run implements the Discoverer interface.