func (sc *ingressSource) Endpoints() ([]*endpoint.Endpoint, error) {
	ingresses, err := sc.ingressInformer.Lister().Ingresses(sc.namespace).List(labels.Everything())
	if err != nil {
		return nil, err
	}
	ingresses, err = sc.filterByAnnotations(ingresses)
	if err != nil {
		return nil, err
	}

	endpoints := []*endpoint.Endpoint{}

	for _, ing := range ingresses {
		// Check controller annotation to see if we are responsible.
		controller, ok := ing.Annotations[controllerAnnotationKey]
		if ok && controller != controllerAnnotationValue {
			log.Debugf("Skipping ingress %s/%s because controller value does not match, found: %s, required: %s",
				ing.Namespace, ing.Name, controller, controllerAnnotationValue)
			continue
		}

		ingEndpoints := endpointsFromIngress(ing, sc.ignoreHostnameAnnotation)

		// apply template if host is missing on ingress
		if (sc.combineFQDNAnnotation || len(ingEndpoints) == 0) && sc.fqdnTemplate != nil {
			iEndpoints, err := sc.endpointsFromTemplate(ing)
			if err != nil {
				return nil, err
			}

			if sc.combineFQDNAnnotation {
				ingEndpoints = append(ingEndpoints, iEndpoints...)
			} else {
				ingEndpoints = iEndpoints
			}
		}

		if len(ingEndpoints) == 0 {
			log.Debugf("No endpoints could be generated from ingress %s/%s", ing.Namespace, ing.Name)
			continue
		}

		log.Debugf("Endpoints generated from ingress: %s/%s: %v", ing.Namespace, ing.Name, ingEndpoints)
		sc.setResourceLabel(ing, ingEndpoints)
		endpoints = append(endpoints, ingEndpoints...)
	}

	for _, ep := range endpoints {
		sort.Sort(ep.Targets)
	}

	return endpoints, nil
}
func (sc *ingressSource) Endpoints() ([]*endpoint.Endpoint, error) {
	ingresses, err := sc.ingressInformer.Lister().Ingresses(sc.namespace).List(labels.Everything())
	if err != nil {
		return nil, err
	}
	ingresses, err = sc.filterByAnnotations(ingresses)
	if err != nil {
		return nil, err
	}

	endpoints := []*endpoint.Endpoint{}

	for _, ing := range ingresses {
		
		controller, ok := ing.Annotations[controllerAnnotationKey]
		if ok && controller != controllerAnnotationValue {
			log.Debugf("Skipping ingress %s/%s because controller value does not match, found: %s, required: %s",
				ing.Namespace, ing.Name, controller, controllerAnnotationValue)
			continue
		}

		ingEndpoints := endpointsFromIngress(ing, sc.ignoreHostnameAnnotation)

		
		if (sc.combineFQDNAnnotation || len(ingEndpoints) == 0) && sc.fqdnTemplate != nil {
			iEndpoints, err := sc.endpointsFromTemplate(ing)
			if err != nil {
				return nil, err
			}

			if sc.combineFQDNAnnotation {
				ingEndpoints = append(ingEndpoints, iEndpoints...)
			} else {
				ingEndpoints = iEndpoints
			}
		}

		if len(ingEndpoints) == 0 {
			log.Debugf("No endpoints could be generated from ingress %s/%s", ing.Namespace, ing.Name)
			continue
		}

		log.Debugf("Endpoints generated from ingress: %s/%s: %v", ing.Namespace, ing.Name, ingEndpoints)
		sc.setResourceLabel(ing, ingEndpoints)
		endpoints = append(endpoints, ingEndpoints...)
	}

	for _, ep := range endpoints {
		sort.Sort(ep.Targets)
	}

	return endpoints, nil
}
func ( sc * ingressSource ) Endpoints ( ) ( [ ] * endpoint . Endpoint , error ) { ingresses , err := sc . ingressInformer . Lister ( ) . Ingresses ( sc . namespace ) . List ( labels . Everything ( ) ) if err != nil { return nil , err } ingresses , err = sc . filterByAnnotations ( ingresses ) if err != nil { return nil , err } endpoints := [ ] * endpoint . Endpoint { } for _ , ing := range ingresses { // Check controller annotation to see if we are responsible. controller , ok := ing . Annotations [ controllerAnnotationKey ] if ok && controller != controllerAnnotationValue { log . Debugf ( " " , ing . Namespace , ing . Name , controller , controllerAnnotationValue ) continue } ingEndpoints := endpointsFromIngress ( ing , sc . ignoreHostnameAnnotation ) // apply template if host is missing on ingress if ( sc . combineFQDNAnnotation || len ( ingEndpoints ) == 0 ) && sc . fqdnTemplate != nil { iEndpoints , err := sc . endpointsFromTemplate ( ing ) if err != nil { return nil , err } if sc . combineFQDNAnnotation { ingEndpoints = append ( ingEndpoints , iEndpoints ... ) } else { ingEndpoints = iEndpoints } } if len ( ingEndpoints ) == 0 { log . Debugf ( " " , ing . Namespace , ing . Name ) continue } log . Debugf ( " " , ing . Namespace , ing . Name , ingEndpoints ) sc . setResourceLabel ( ing , ingEndpoints ) endpoints = append ( endpoints , ingEndpoints ... ) } for _ , ep := range endpoints { sort . Sort ( ep . Targets ) } return endpoints , nil }
// Endpoints returns endpoint objects for each host-target combination that should be processed.
// Retrieves all ingress resources on all namespaces
Endpoints returns endpoint objects for each host - target combination that should be processed . Retrieves all ingress resources on all namespaces