Skip to content

Commit 977b4d0

Browse files
committed
Migrate to new Kubernentes event API
Signed-off-by: Adrian Fernandez De La Torre <adri1197@gmail.com>
1 parent 07d627d commit 977b4d0

2 files changed

Lines changed: 16 additions & 15 deletions

File tree

runtime/events/recorder.go

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import (
3333
corev1 "k8s.io/api/core/v1"
3434
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3535
"k8s.io/apimachinery/pkg/runtime"
36-
kuberecorder "k8s.io/client-go/tools/record"
36+
"k8s.io/client-go/tools/events"
3737
"k8s.io/client-go/tools/reference"
3838
ctrl "sigs.k8s.io/controller-runtime"
3939

@@ -48,14 +48,14 @@ import (
4848
//
4949
// import (
5050
// ...
51-
// kuberecorder "k8s.io/client-go/tools/record"
51+
// "k8s.io/client-go/tools/events"
5252
// ...
5353
// )
5454
//
5555
// type MyTypeReconciler {
5656
// client.Client
5757
// // ... etc.
58-
// kuberecorder.EventRecorder
58+
// events.EventRecorder
5959
// }
6060
//
6161
// Use NewRecorder to create a working Recorder.
@@ -70,7 +70,7 @@ type Recorder struct {
7070
Client *retryablehttp.Client
7171

7272
// EventRecorder is the Kubernetes event recorder.
73-
EventRecorder kuberecorder.EventRecorder
73+
EventRecorder events.EventRecorder
7474

7575
// Scheme to look up the recorded objects.
7676
Scheme *runtime.Scheme
@@ -79,7 +79,7 @@ type Recorder struct {
7979
Log logr.Logger
8080
}
8181

82-
var _ kuberecorder.EventRecorder = &Recorder{}
82+
var _ events.EventRecorder = &Recorder{}
8383

8484
// NewRecorder creates an event Recorder with a Kubernetes event recorder and an external event recorder based on the
8585
// given webhook. The recorder performs automatic retries for connection errors and 500-range response codes from the
@@ -101,7 +101,7 @@ func NewRecorder(mgr ctrl.Manager, log logr.Logger, webhook, reportingController
101101
Webhook: webhook,
102102
ReportingController: reportingController,
103103
Client: httpClient,
104-
EventRecorder: mgr.GetEventRecorderFor(reportingController),
104+
EventRecorder: mgr.GetEventRecorder(reportingController),
105105
Log: log,
106106
}, nil
107107
}
@@ -110,7 +110,7 @@ func NewRecorder(mgr ctrl.Manager, log logr.Logger, webhook, reportingController
110110
// given webhook. The recorder performs automatic retries for connection errors and 500-range response codes from the
111111
// external recorder.
112112
func NewRecorderForScheme(scheme *runtime.Scheme,
113-
eventRecorder kuberecorder.EventRecorder,
113+
eventRecorder events.EventRecorder,
114114
log logr.Logger, webhook, reportingController string) (*Recorder, error) {
115115
if webhook != "" {
116116
if _, err := url.Parse(webhook); err != nil {
@@ -148,13 +148,13 @@ func responseIsEventDuplicated(resp *http.Response) bool {
148148
}
149149

150150
// Event records an event in the webhook address.
151-
func (r *Recorder) Event(object runtime.Object, eventtype, reason, message string) {
152-
r.AnnotatedEventf(object, nil, eventtype, reason, "%s", message)
151+
func (r *Recorder) Event(object runtime.Object, eventtype, reason string, action string, message string) {
152+
r.AnnotatedEventf(object, nil, eventtype, reason, action, "%s", message)
153153
}
154154

155155
// Event records an event in the webhook address.
156-
func (r *Recorder) Eventf(object runtime.Object, eventtype, reason, messageFmt string, args ...interface{}) {
157-
r.AnnotatedEventf(object, nil, eventtype, reason, messageFmt, args...)
156+
func (r *Recorder) Eventf(object runtime.Object, related runtime.Object, eventtype, reason string, action string, messageFmt string, args ...interface{}) {
157+
r.AnnotatedEventf(object, nil, eventtype, reason, action, messageFmt, args...)
158158
}
159159

160160
// AnnotatedEventf constructs an event from the given information and performs a HTTP POST to the webhook address.
@@ -163,6 +163,7 @@ func (r *Recorder) AnnotatedEventf(
163163
object runtime.Object,
164164
inputAnnotations map[string]string,
165165
eventtype, reason string,
166+
action string,
166167
messageFmt string, args ...interface{}) {
167168

168169
ref, err := reference.GetReference(r.Scheme, object)
@@ -202,12 +203,12 @@ func (r *Recorder) AnnotatedEventf(
202203
// Do not send trace events to notification controller,
203204
// traces are persisted as Kubernetes events only as normal events.
204205
if severity == eventv1.EventSeverityTrace {
205-
r.EventRecorder.AnnotatedEventf(object, annotations, corev1.EventTypeNormal, reason, messageFmt, args...)
206+
r.EventRecorder.Eventf(object, nil, corev1.EventTypeNormal, reason, action, messageFmt, args...)
206207
return
207208
}
208209

209210
// Forward the event to the Kubernetes recorder.
210-
r.EventRecorder.AnnotatedEventf(object, annotations, eventtype, reason, messageFmt, args...)
211+
r.EventRecorder.Eventf(object, nil, eventtype, reason, action, messageFmt, args...)
211212

212213
// If no webhook address is provided, skip posting to event recorder
213214
// endpoint.

runtime/events/recorder_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ func TestEventRecorder_AnnotatedEventf_Retry(t *testing.T) {
150150
obj.Namespace = "gitops-system"
151151
obj.Name = "webapp"
152152

153-
eventRecorder.AnnotatedEventf(obj, nil, corev1.EventTypeNormal, "sync", "sync %s", obj.Name)
153+
eventRecorder.AnnotatedEventf(obj, nil, corev1.EventTypeNormal, "sync", "", "sync %s", obj.Name)
154154
require.True(t, requestCount > 1)
155155
}
156156

@@ -177,7 +177,7 @@ func TestEventRecorder_AnnotatedEventf_RateLimited(t *testing.T) {
177177
obj.Namespace = "gitops-system"
178178
obj.Name = "webapp"
179179

180-
eventRecorder.AnnotatedEventf(obj, nil, corev1.EventTypeNormal, "sync", "sync %s", obj.Name)
180+
eventRecorder.AnnotatedEventf(obj, nil, corev1.EventTypeNormal, "sync", "", "sync %s", obj.Name)
181181
require.Equal(t, 1, requestCount)
182182
}
183183

0 commit comments

Comments
 (0)