code: func DiscoverEndpoints(app App, insecure discovery.InsecureOption) (out *Endpoints, attempts []FailedAttempt, err error) {
  	out = &Endpoints{}
  	testFn := func(pre string, eps *Endpoints, err error) error {
  		if len(out.ACIEndpoints) != 0 || len(out.Keys) != 0 || len(out.ACIPushEndpoints) != 0 {
  			return errEnough
  		}
  		return nil
  	}
  
  	err = DiscoverWalk(app, insecure, walker(out, &attempts, testFn))
  	if err != nil && err != errEnough {
  		return nil, attempts, err
  	}
  
  	return out, attempts, nil
  }
docs: // DiscoverEndpoints will make HTTPS requests to find the ac-discovery meta
  // tags and optionally will use HTTP if insecure is set. It will not give up
  // until it has exhausted the path or found an image discovery.