Skip to content

Commit

Permalink
e2e: print events
Browse files Browse the repository at this point in the history
Signed-off-by: Talor Itzhak <[email protected]>
  • Loading branch information
Tal-or committed Oct 22, 2023
1 parent 03ce97e commit 4bc9873
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 2 deletions.
34 changes: 34 additions & 0 deletions internal/pods/pods.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import (
"bytes"
"context"
"fmt"
"k8s.io/apimachinery/pkg/fields"
"k8s.io/klog/v2"
"os"
"strings"

Expand Down Expand Up @@ -184,3 +186,35 @@ func PrintStatus(pods []corev1.Pod) string {
}
return podsInfo.String()
}

func GetEvents(ctx context.Context, c client.Client, namespace, name string) ([]corev1.Event, error) {
klog.Infof("checking events for Pod %s/%s", namespace, name)
s, err := fields.ParseSelector(fmt.Sprintf("involvedObject.name=%s", name))
if err != nil {
return nil, err
}
opts := &client.ListOptions{
FieldSelector: s,
Namespace: namespace,
}
events := &corev1.EventList{}
err = c.List(ctx, events, opts)
if err != nil {
klog.ErrorS(err, "cannot get events for Pod %s/%s", namespace, name)
return nil, err
}
return events.Items, nil
}

func BySelector(ctx context.Context, c client.Client, selector *metav1.LabelSelector) ([]corev1.Pod, error) {
ls, err := metav1.LabelSelectorAsSelector(selector)
if err != nil {
return nil, fmt.Errorf("failed to parse selector %v; %w", selector.String(), err)
}
opts := &client.ListOptions{
LabelSelector: ls,
}
podList := &corev1.PodList{}
err = c.List(ctx, podList, opts)
return podList.Items, err
}
16 changes: 14 additions & 2 deletions internal/wait/wait.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package wait
import (
"context"
"fmt"
"k8s.io/klog/v2"
"time"

appsv1 "k8s.io/api/apps/v1"
Expand Down Expand Up @@ -65,9 +66,20 @@ func ForDSReady(ctx context.Context, c client.Client, key client.ObjectKey) erro
}
return false, nil
})

if err != nil {
return fmt.Errorf("failed wait for daemonset %q to be ready. only %d/%d are ready; %w", key.String(), ds.Status.NumberReady, ds.Status.DesiredNumberScheduled, err)
podsOwnedByDs, localErr := pods.BySelector(ctx, c, ds.Spec.Selector)
if localErr != nil {
klog.ErrorS(localErr, "failed to list pods by selector", "selector", ds.Spec.Selector)
}
for _, p := range podsOwnedByDs {
events, localErr := pods.GetEvents(ctx, c, p.Namespace, p.Name)
if localErr != nil {
klog.ErrorS(localErr, "failed to get events for pod", "pod", client.ObjectKeyFromObject(&p).String())
} else {
klog.InfoS("events for pod", "pod", client.ObjectKeyFromObject(&p).String(), "events", events)
}
}
return fmt.Errorf("failed wait for daemonset %q to be ready. only %d/%d are ready; status: %v; %w", key.String(), ds.Status.NumberReady, ds.Status.DesiredNumberScheduled, ds.Status, err)
}
return nil
}
Expand Down

0 comments on commit 4bc9873

Please sign in to comment.