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
}
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
}
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 [ " " ] = 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 }
// 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
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