diff --git a/source/multisource.go b/source/multisource.go index 3b354b7b1..3844d2cce 100644 --- a/source/multisource.go +++ b/source/multisource.go @@ -40,6 +40,9 @@ func (ms *multiSource) Endpoints(ctx context.Context) ([]*endpoint.Endpoint, err if len(ms.defaultTargets) > 0 { for i := range endpoints { eps := endpointsForHostname(endpoints[i].DNSName, ms.defaultTargets, endpoints[i].RecordTTL, endpoints[i].ProviderSpecific, endpoints[i].SetIdentifier) + for _, ep := range eps { + ep.Labels = endpoints[i].Labels + } result = append(result, eps...) } } else { diff --git a/source/multisource_test.go b/source/multisource_test.go index 600ab5b10..56a3fb604 100644 --- a/source/multisource_test.go +++ b/source/multisource_test.go @@ -133,21 +133,22 @@ func testMultiSourceEndpointsDefaultTargets(t *testing.T) { defaultTargetsCName := []string{"foo.example.org"} defaultTargets := append(defaultTargetsA, defaultTargetsCName...) defaultTargets = append(defaultTargets, defaultTargetsAAAA...) + labels := endpoint.Labels{"foo": "bar"} // Create the expected endpoints expectedEndpoints := []*endpoint.Endpoint{ - {DNSName: "foo", Targets: defaultTargetsA, RecordType: "A"}, - {DNSName: "bar", Targets: defaultTargetsA, RecordType: "A"}, - {DNSName: "foo", Targets: defaultTargetsAAAA, RecordType: "AAAA"}, - {DNSName: "bar", Targets: defaultTargetsAAAA, RecordType: "AAAA"}, - {DNSName: "foo", Targets: defaultTargetsCName, RecordType: "CNAME"}, - {DNSName: "bar", Targets: defaultTargetsCName, RecordType: "CNAME"}, + {DNSName: "foo", Targets: defaultTargetsA, RecordType: "A", Labels: labels}, + {DNSName: "bar", Targets: defaultTargetsA, RecordType: "A", Labels: labels}, + {DNSName: "foo", Targets: defaultTargetsAAAA, RecordType: "AAAA", Labels: labels}, + {DNSName: "bar", Targets: defaultTargetsAAAA, RecordType: "AAAA", Labels: labels}, + {DNSName: "foo", Targets: defaultTargetsCName, RecordType: "CNAME", Labels: labels}, + {DNSName: "bar", Targets: defaultTargetsCName, RecordType: "CNAME", Labels: labels}, } // Create the source endpoints with different targets sourceEndpoints := []*endpoint.Endpoint{ - {DNSName: "foo", Targets: endpoint.Targets{"8.8.8.8"}}, - {DNSName: "bar", Targets: endpoint.Targets{"8.8.4.4"}}, + {DNSName: "foo", Targets: endpoint.Targets{"8.8.8.8"}, Labels: labels}, + {DNSName: "bar", Targets: endpoint.Targets{"8.8.4.4"}, Labels: labels}, } // Create a mocked source returning source targets