Improving logging in EndpointSlice e2e tests

When these tests failed it was unclear that the reason for the failure
could have been more EndpointSlices than expected. It was also unclear
what EndpointSlices were actually found when that occurred. This fixes
both of those issues.
This commit is contained in:
Rob Scott 2020-07-27 18:07:05 -07:00
parent 575c4925be
commit 6051a16edd
No known key found for this signature in database
GPG Key ID: 90C19B2D4A99C91B

View File

@ -18,6 +18,7 @@ package network
import (
"context"
"encoding/json"
"fmt"
"time"
@ -311,13 +312,12 @@ func expectEndpointsAndSlices(cs clientset.Interface, ns string, svc *v1.Service
if err := wait.PollImmediate(5*time.Second, 2*time.Minute, func() (bool, error) {
endpointSlicesFound, hasMatchingSlices := hasMatchingEndpointSlices(cs, ns, svc.Name, len(pods), numSlices)
if !hasMatchingSlices {
framework.Logf("Matching EndpointSlices not found")
return false, nil
}
endpointSlices = endpointSlicesFound
return true, nil
}); err != nil {
framework.Failf("Timed out waiting for matching EndpointSlices to exist: %v", err)
framework.Failf("Timed out waiting for EndpointSlices to match expectations: %v", err)
}
endpoints := &v1.Endpoints{}
@ -330,7 +330,7 @@ func expectEndpointsAndSlices(cs clientset.Interface, ns string, svc *v1.Service
endpoints = endpointsFound
return true, nil
}); err != nil {
framework.Failf("Timed out waiting for matching Endpoints to exist: %v", err)
framework.Failf("Timed out waiting for Endpoints to match expectations: %v", err)
}
podsByIP := map[string]*v1.Pod{}
@ -494,7 +494,15 @@ func hasMatchingEndpointSlices(cs clientset.Interface, ns, svcName string, numEn
}
if len(esList.Items) != numSlices {
framework.Logf("Expected %d EndpointSlices for Service %s/%s, got %d", numSlices, ns, svcName, len(esList.Items))
return []discoveryv1beta1.EndpointSlice{}, false
for i, epSlice := range esList.Items {
epsData, err := json.Marshal(epSlice)
if err != nil {
framework.Logf("Error marshaling JSON for EndpointSlice: %v", err)
} else {
framework.Logf("%d - %v", i, string(epsData))
}
}
return esList.Items, false
}
actualNumEndpoints := 0
@ -503,7 +511,7 @@ func hasMatchingEndpointSlices(cs clientset.Interface, ns, svcName string, numEn
}
if actualNumEndpoints != numEndpoints {
framework.Logf("EndpointSlices for %s/%s Service have %d/%d endpoints", ns, svcName, actualNumEndpoints, numEndpoints)
return []discoveryv1beta1.EndpointSlice{}, false
return esList.Items, false
}
return esList.Items, true