code: func (p coreDNSProvider) Records() ([]*endpoint.Endpoint, error) {
  	var result []*endpoint.Endpoint
  	services, err := p.client.GetServices(coreDNSPrefix)
  	if err != nil {
  		return nil, err
  	}
  	for _, service := range services {
  		domains := strings.Split(strings.TrimPrefix(service.Key, coreDNSPrefix), "/")
  		reverse(domains)
  		dnsName := strings.Join(domains[service.TargetStrip:], ".")
  		if !p.domainFilter.Match(dnsName) {
  			continue
  		}
  		prefix := strings.Join(domains[:service.TargetStrip], ".")
  		if service.Host != "" {
  			ep := endpoint.NewEndpointWithTTL(
  				dnsName,
  				guessRecordType(service.Host),
  				endpoint.TTL(service.TTL),
  				service.Host,
  			)
  			ep.Labels["originalText"] = service.Text
  			ep.Labels[randomPrefixLabel] = prefix
  			result = append(result, ep)
  		}
  		if service.Text != "" {
  			ep := endpoint.NewEndpoint(
  				dnsName,
  				endpoint.RecordTypeTXT,
  				service.Text,
  			)
  			ep.Labels[randomPrefixLabel] = prefix
  			result = append(result, ep)
  		}
  	}
  	return result, nil
  }
docs: // Records returns all DNS records found in CoreDNS etcd backend. Depending on the record fields
  // it may be mapped to one or two records of type A, CNAME, TXT, A+TXT, CNAME+TXT