2023-01-26 22:19:02 +01:00
|
|
|
package event
|
2023-01-12 16:25:25 +08:00
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/kyverno/kyverno/pkg/client/clientset/versioned/scheme"
|
|
|
|
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
2023-07-26 17:06:51 +03:00
|
|
|
typedeventsv1 "k8s.io/client-go/kubernetes/typed/events/v1"
|
|
|
|
"k8s.io/client-go/tools/events"
|
2023-01-12 16:25:25 +08:00
|
|
|
)
|
|
|
|
|
2023-07-26 17:06:51 +03:00
|
|
|
func NewRecorder(source Source, sink typedeventsv1.EventsV1Interface) events.EventRecorder {
|
2023-01-12 16:25:25 +08:00
|
|
|
utilruntime.Must(scheme.AddToScheme(scheme.Scheme))
|
2023-07-26 17:06:51 +03:00
|
|
|
eventBroadcaster := events.NewBroadcaster(
|
|
|
|
&events.EventSinkImpl{
|
2023-01-26 22:19:02 +01:00
|
|
|
Interface: sink,
|
|
|
|
},
|
|
|
|
)
|
2023-07-26 17:06:51 +03:00
|
|
|
eventBroadcaster.StartStructuredLogging(0)
|
|
|
|
stopCh := make(chan struct{})
|
|
|
|
eventBroadcaster.StartRecordingToSink(stopCh)
|
|
|
|
return eventBroadcaster.NewRecorder(scheme.Scheme, string(source))
|
2023-01-12 16:25:25 +08:00
|
|
|
}
|