mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-20 02:11:09 +00:00
Merge pull request #112334 from dgrisonnet/fix-eventseries-count
Fix EventSeries starting count discrepancy
This commit is contained in:
commit
689fc37dd2
@ -183,7 +183,7 @@ func (e *eventBroadcasterImpl) recordToSink(event *eventsv1.Event, clock clock.C
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
isomorphicEvent.Series = &eventsv1.EventSeries{
|
isomorphicEvent.Series = &eventsv1.EventSeries{
|
||||||
Count: 1,
|
Count: 2,
|
||||||
LastObservedTime: metav1.MicroTime{Time: clock.Now()},
|
LastObservedTime: metav1.MicroTime{Time: clock.Now()},
|
||||||
}
|
}
|
||||||
// Make a copy of the Event to make sure that recording it
|
// Make a copy of the Event to make sure that recording it
|
||||||
|
@ -108,7 +108,7 @@ func TestEventSeriesf(t *testing.T) {
|
|||||||
nonIsomorphicEvent := expectedEvent.DeepCopy()
|
nonIsomorphicEvent := expectedEvent.DeepCopy()
|
||||||
nonIsomorphicEvent.Action = "stopped"
|
nonIsomorphicEvent.Action = "stopped"
|
||||||
|
|
||||||
expectedEvent.Series = &eventsv1.EventSeries{Count: 1}
|
expectedEvent.Series = &eventsv1.EventSeries{Count: 2}
|
||||||
table := []struct {
|
table := []struct {
|
||||||
regarding k8sruntime.Object
|
regarding k8sruntime.Object
|
||||||
related k8sruntime.Object
|
related k8sruntime.Object
|
||||||
|
@ -18,6 +18,7 @@ package events
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -96,3 +97,62 @@ func TestEventCompatibility(t *testing.T) {
|
|||||||
t.Fatalf("unexpected err: %v", err)
|
t.Fatalf("unexpected err: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestEventSeries(t *testing.T) {
|
||||||
|
result := kubeapiservertesting.StartTestServerOrDie(t, nil, []string{"--disable-admission-plugins", "ServiceAccount"}, framework.SharedEtcd())
|
||||||
|
defer result.TearDownFn()
|
||||||
|
|
||||||
|
client := clientset.NewForConfigOrDie(result.ClientConfig)
|
||||||
|
|
||||||
|
testPod := &v1.Pod{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "foo",
|
||||||
|
Namespace: "default",
|
||||||
|
UID: "bar",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
regarding, err := ref.GetReference(scheme.Scheme, testPod)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
related, err := ref.GetPartialReference(scheme.Scheme, testPod, ".spec.containers[0]")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
stopCh := make(chan struct{})
|
||||||
|
defer close(stopCh)
|
||||||
|
|
||||||
|
broadcaster := events.NewBroadcaster(&events.EventSinkImpl{Interface: client.EventsV1()})
|
||||||
|
defer broadcaster.Shutdown()
|
||||||
|
recorder := broadcaster.NewRecorder(scheme.Scheme, "k8s.io/kube-scheduler")
|
||||||
|
broadcaster.StartRecordingToSink(stopCh)
|
||||||
|
recorder.Eventf(regarding, related, v1.EventTypeNormal, "memoryPressure", "killed", "memory pressure")
|
||||||
|
recorder.Eventf(regarding, related, v1.EventTypeNormal, "memoryPressure", "killed", "memory pressure")
|
||||||
|
err = wait.PollImmediate(100*time.Millisecond, 20*time.Second, func() (done bool, err error) {
|
||||||
|
events, err := client.EventsV1().Events("").List(context.TODO(), metav1.ListOptions{})
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(events.Items) != 1 {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if events.Items[0].Series == nil {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if events.Items[0].Series.Count != 2 {
|
||||||
|
return false, fmt.Errorf("expected EventSeries to have a starting count of 2, got: %d", events.Items[0].Series.Count)
|
||||||
|
}
|
||||||
|
|
||||||
|
return true, nil
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("error waiting for an Event with a non nil Series to be created: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user