mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-06 17:46:57 +02:00
Merge cb586229f5
into 0e7c3af221
This commit is contained in:
commit
75c317d076
@ -141,32 +141,41 @@ func (im *TXTRegistry) Records(ctx context.Context) ([]*endpoint.Endpoint, error
|
|||||||
endpoints = append(endpoints, record)
|
endpoints = append(endpoints, record)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
// We simply assume that TXT records for the registry will always have only one target.
|
|
||||||
// If there are no targets (e.g for routing policy based records in google), direct targets will be empty
|
// If there are no targets (e.g for routing policy based records in google), direct targets will be empty
|
||||||
if len(record.Targets) == 0 {
|
if len(record.Targets) == 0 {
|
||||||
log.Errorf("TXT record has no targets %s", record.DNSName)
|
log.Errorf("TXT record has no targets %s", record.DNSName)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
labels, err := endpoint.NewLabelsFromString(record.Targets[0], im.txtEncryptAESKey)
|
|
||||||
if errors.Is(err, endpoint.ErrInvalidHeritage) {
|
// Some of the targets in the TXT records may be heritage labels
|
||||||
// if no heritage is found or it is invalid
|
// filter them out and add them to the txtRecordsMap
|
||||||
// case when value of txt record cannot be identified
|
txtTargets := record.Targets
|
||||||
// record will not be removed as it will have empty owner
|
record.Targets = endpoint.Targets{}
|
||||||
endpoints = append(endpoints, record)
|
for _, target := range txtTargets {
|
||||||
continue
|
labels, err := endpoint.NewLabelsFromString(target, im.txtEncryptAESKey)
|
||||||
}
|
if errors.Is(err, endpoint.ErrInvalidHeritage) {
|
||||||
if err != nil {
|
// add target back into record.Targets as
|
||||||
return nil, err
|
// this is not a heritage/label entry
|
||||||
|
record.Targets = append(record.Targets, target)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
endpointName, recordType := im.mapper.toEndpointName(record.DNSName)
|
||||||
|
key := endpoint.EndpointKey{
|
||||||
|
DNSName: endpointName,
|
||||||
|
RecordType: recordType,
|
||||||
|
SetIdentifier: record.SetIdentifier,
|
||||||
|
}
|
||||||
|
labelMap[key] = labels
|
||||||
|
txtRecordsMap[record.DNSName] = struct{}{}
|
||||||
}
|
}
|
||||||
|
|
||||||
endpointName, recordType := im.mapper.toEndpointName(record.DNSName)
|
if len(record.Targets) != 0 {
|
||||||
key := endpoint.EndpointKey{
|
endpoints = append(endpoints, record)
|
||||||
DNSName: endpointName,
|
|
||||||
RecordType: recordType,
|
|
||||||
SetIdentifier: record.SetIdentifier,
|
|
||||||
}
|
}
|
||||||
labelMap[key] = labels
|
|
||||||
txtRecordsMap[record.DNSName] = struct{}{}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, ep := range endpoints {
|
for _, ep := range endpoints {
|
||||||
|
Loading…
Reference in New Issue
Block a user