mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-06 01:26:59 +02:00
chore(source/service): add resource label without looping over (#5528)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
This commit is contained in:
parent
c522e45bca
commit
7aca4dc6a3
@ -215,7 +215,6 @@ func (sc *serviceSource) Endpoints(_ context.Context) ([]*endpoint.Endpoint, err
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Debugf("Endpoints generated from service: %s/%s: %v", svc.Namespace, svc.Name, svcEndpoints)
|
log.Debugf("Endpoints generated from service: %s/%s: %v", svc.Namespace, svc.Name, svcEndpoints)
|
||||||
sc.setResourceLabel(svc, svcEndpoints)
|
|
||||||
endpoints = append(endpoints, svcEndpoints...)
|
endpoints = append(endpoints, svcEndpoints...)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -390,6 +389,7 @@ func (sc *serviceSource) extractHeadlessEndpoints(svc *v1.Service, hostname stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ep != nil {
|
if ep != nil {
|
||||||
|
ep.WithLabel(endpoint.ResourceLabelKey, fmt.Sprintf("service/%s/%s", svc.Namespace, svc.Name))
|
||||||
endpoints = append(endpoints, ep)
|
endpoints = append(endpoints, ep)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -474,12 +474,6 @@ func (sc *serviceSource) filterByServiceType(services []*v1.Service) []*v1.Servi
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sc *serviceSource) setResourceLabel(service *v1.Service, endpoints []*endpoint.Endpoint) {
|
|
||||||
for _, ep := range endpoints {
|
|
||||||
ep.Labels[endpoint.ResourceLabelKey] = fmt.Sprintf("service/%s/%s", service.Namespace, service.Name)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (sc *serviceSource) generateEndpoints(svc *v1.Service, hostname string, providerSpecific endpoint.ProviderSpecific, setIdentifier string, useClusterIP bool) (endpoints []*endpoint.Endpoint) {
|
func (sc *serviceSource) generateEndpoints(svc *v1.Service, hostname string, providerSpecific endpoint.ProviderSpecific, setIdentifier string, useClusterIP bool) (endpoints []*endpoint.Endpoint) {
|
||||||
hostname = strings.TrimSuffix(hostname, ".")
|
hostname = strings.TrimSuffix(hostname, ".")
|
||||||
|
|
||||||
@ -745,6 +739,7 @@ func (sc *serviceSource) extractNodePortEndpoints(svc *v1.Service, hostname stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ep != nil {
|
if ep != nil {
|
||||||
|
ep.WithLabel(endpoint.ResourceLabelKey, fmt.Sprintf("service/%s/%s", svc.Namespace, svc.Name))
|
||||||
endpoints = append(endpoints, ep)
|
endpoints = append(endpoints, ep)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3556,7 +3556,7 @@ func TestHeadlessServicesHostIP(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
// Create a Kubernetes testing client
|
// Create a Kubernetes testing client
|
||||||
kubernetes := fake.NewSimpleClientset()
|
kubernetes := fake.NewClientset()
|
||||||
|
|
||||||
service := &v1.Service{
|
service := &v1.Service{
|
||||||
Spec: v1.ServiceSpec{
|
Spec: v1.ServiceSpec{
|
||||||
@ -3654,6 +3654,11 @@ func TestHeadlessServicesHostIP(t *testing.T) {
|
|||||||
|
|
||||||
// Validate returned endpoints against desired endpoints.
|
// Validate returned endpoints against desired endpoints.
|
||||||
validateEndpoints(t, endpoints, tc.expected)
|
validateEndpoints(t, endpoints, tc.expected)
|
||||||
|
|
||||||
|
// TODO; when all resources have the resource label, we could add this check to the validateEndpoints function.
|
||||||
|
for _, ep := range endpoints {
|
||||||
|
require.Contains(t, ep.Labels, endpoint.ResourceLabelKey)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3785,7 +3790,7 @@ func TestExternalServices(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
// Create a Kubernetes testing client
|
// Create a Kubernetes testing client
|
||||||
kubernetes := fake.NewSimpleClientset()
|
kubernetes := fake.NewClientset()
|
||||||
|
|
||||||
service := &v1.Service{
|
service := &v1.Service{
|
||||||
Spec: v1.ServiceSpec{
|
Spec: v1.ServiceSpec{
|
||||||
@ -3834,12 +3839,17 @@ func TestExternalServices(t *testing.T) {
|
|||||||
|
|
||||||
// Validate returned endpoints against desired endpoints.
|
// Validate returned endpoints against desired endpoints.
|
||||||
validateEndpoints(t, endpoints, tc.expected)
|
validateEndpoints(t, endpoints, tc.expected)
|
||||||
|
|
||||||
|
// TODO; when all resources have the resource label, we could add this check to the validateEndpoints function.
|
||||||
|
for _, ep := range endpoints {
|
||||||
|
require.Contains(t, ep.Labels, endpoint.ResourceLabelKey)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkServiceEndpoints(b *testing.B) {
|
func BenchmarkServiceEndpoints(b *testing.B) {
|
||||||
kubernetes := fake.NewSimpleClientset()
|
kubernetes := fake.NewClientset()
|
||||||
|
|
||||||
service := &v1.Service{
|
service := &v1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Loading…
Reference in New Issue
Block a user