diff --git a/staging/src/k8s.io/client-go/tools/record/events_cache.go b/staging/src/k8s.io/client-go/tools/record/events_cache.go index f5846ac5c43..01704b6c0d8 100644 --- a/staging/src/k8s.io/client-go/tools/record/events_cache.go +++ b/staging/src/k8s.io/client-go/tools/record/events_cache.go @@ -49,6 +49,7 @@ func getEventKey(event *v1.Event) string { event.InvolvedObject.Kind, event.InvolvedObject.Namespace, event.InvolvedObject.Name, + event.InvolvedObject.FieldPath, string(event.InvolvedObject.UID), event.InvolvedObject.APIVersion, event.Type, diff --git a/staging/src/k8s.io/client-go/tools/record/events_cache_test.go b/staging/src/k8s.io/client-go/tools/record/events_cache_test.go index 1da2d274e75..799d6a77b2b 100644 --- a/staging/src/k8s.io/client-go/tools/record/events_cache_test.go +++ b/staging/src/k8s.io/client-go/tools/record/events_cache_test.go @@ -35,6 +35,7 @@ func makeObjectReference(kind, name, namespace string) v1.ObjectReference { Namespace: namespace, UID: "C934D34AFB20242", APIVersion: "version", + FieldPath: "spec.containers{mycontainer}", } } @@ -171,7 +172,10 @@ func TestEventCorrelator(t *testing.T) { duplicateEvent := makeEvent("duplicate", "me again", makeObjectReference("Pod", "my-pod", "my-ns")) uniqueEvent := makeEvent("unique", "snowflake", makeObjectReference("Pod", "my-pod", "my-ns")) similarEvent := makeEvent("similar", "similar message", makeObjectReference("Pod", "my-pod", "my-ns")) + similarEvent.InvolvedObject.FieldPath = "spec.containers{container1}" aggregateEvent := makeEvent(similarEvent.Reason, EventAggregatorByReasonMessageFunc(&similarEvent), similarEvent.InvolvedObject) + similarButDifferentContainerEvent := similarEvent + similarButDifferentContainerEvent.InvolvedObject.FieldPath = "spec.containers{container2}" scenario := map[string]struct { previousEvents []v1.Event newEvent v1.Event @@ -214,6 +218,12 @@ func TestEventCorrelator(t *testing.T) { expectedEvent: setCount(aggregateEvent, 2), intervalSeconds: 5, }, + "events-from-different-containers-do-not-aggregate": { + previousEvents: makeEvents(1, similarButDifferentContainerEvent), + newEvent: similarEvent, + expectedEvent: setCount(similarEvent, 1), + intervalSeconds: 5, + }, "similar-events-whose-interval-is-greater-than-aggregate-interval-do-not-aggregate": { previousEvents: makeSimilarEvents(defaultAggregateMaxEvents-1, similarEvent, similarEvent.Message), newEvent: similarEvent,