Skip to content

Commit c63dc4b

Browse files
authored
Revert "Migrate events generation to new interface (#4678) (#4804)" (#4868)
This reverts commit a72317d.
1 parent f7b556f commit c63dc4b

17 files changed

Lines changed: 107 additions & 231 deletions

File tree

integrationtests/gitjob/controller/controller_test.go

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -438,15 +438,15 @@ var _ = Describe("GitJob controller", func() {
438438
g.Expect(events.Items[0].Reason).To(Equal("GotNewCommit"))
439439
g.Expect(events.Items[0].Message).To(Equal("9ca3a0ad308ed8bffa6602572e2a1343af9c3d2e"))
440440
g.Expect(events.Items[0].Type).To(Equal("Normal"))
441-
g.Expect(events.Items[0].ReportingController).To(Equal("gitjob-controller"))
441+
g.Expect(events.Items[0].Source.Component).To(Equal("gitjob-controller"))
442442
g.Expect(events.Items[1].Reason).To(Equal("Created"))
443443
g.Expect(events.Items[1].Message).To(Equal("GitJob was created"))
444-
g.Expect(events.Items[1].ReportingController).To(Equal("gitjob-controller"))
445444
g.Expect(events.Items[1].Type).To(Equal("Normal"))
445+
g.Expect(events.Items[1].Source.Component).To(Equal("gitjob-controller"))
446446
g.Expect(events.Items[2].Reason).To(Equal("JobDeleted"))
447447
g.Expect(events.Items[2].Message).To(Equal("job deletion triggered because job succeeded"))
448448
g.Expect(events.Items[2].Type).To(Equal("Normal"))
449-
g.Expect(events.Items[2].ReportingController).To(Equal("gitjob-controller"))
449+
g.Expect(events.Items[2].Source.Component).To(Equal("gitjob-controller"))
450450
}).Should(Succeed())
451451

452452
// job should not be present
@@ -706,40 +706,30 @@ var _ = Describe("GitJob controller", func() {
706706

707707
return string(job.UID) != string(newJob.UID)
708708
}).Should(BeTrue())
709-
// it should log 5 events:
709+
// it should log 3 events
710710
// first one is to log the new commit from the poller
711711
// second one is to inform that the job was created
712712
// third one reports on the job being deleted because of ForceUpdateGeneration
713-
// the fourth and fifth ones represent job re-creation and deletion after successful completion,
714-
// respectively
715713
Eventually(func(g Gomega) {
716714
events, _ := k8sClientSet.CoreV1().Events(gitRepo.Namespace).List(context.TODO(),
717715
metav1.ListOptions{
718716
FieldSelector: "involvedObject.name=force-deletion",
719717
TypeMeta: metav1.TypeMeta{Kind: "GitRepo"},
720718
})
721719
g.Expect(events).ToNot(BeNil())
722-
g.Expect(events.Items).To(HaveLen(5))
723-
724-
for _, e := range events.Items {
725-
g.Expect(e.ReportingController).To(Equal("gitjob-controller"))
726-
g.Expect(e.Type).To(Equal("Normal"))
727-
}
728-
720+
g.Expect(events.Items).To(HaveLen(3))
729721
g.Expect(events.Items[0].Reason).To(Equal("GotNewCommit"))
730722
g.Expect(events.Items[0].Message).To(Equal("9ca3a0ad308ed8bffa6602572e2a1343af9c3d2e"))
731-
723+
g.Expect(events.Items[0].Type).To(Equal("Normal"))
724+
g.Expect(events.Items[0].Source.Component).To(Equal("gitjob-controller"))
732725
g.Expect(events.Items[1].Reason).To(Equal("Created"))
733726
g.Expect(events.Items[1].Message).To(Equal("GitJob was created"))
734-
727+
g.Expect(events.Items[1].Type).To(Equal("Normal"))
728+
g.Expect(events.Items[1].Source.Component).To(Equal("gitjob-controller"))
735729
g.Expect(events.Items[2].Reason).To(Equal("JobDeleted"))
736730
g.Expect(events.Items[2].Message).To(Equal("job deletion triggered because job succeeded"))
737-
738-
g.Expect(events.Items[3].Reason).To(Equal("Created"))
739-
g.Expect(events.Items[3].Message).To(Equal("GitJob was created"))
740-
741-
g.Expect(events.Items[4].Reason).To(Equal("JobDeleted"))
742-
g.Expect(events.Items[4].Message).To(Equal("job deletion triggered because job succeeded"))
731+
g.Expect(events.Items[2].Type).To(Equal("Normal"))
732+
g.Expect(events.Items[2].Source.Component).To(Equal("gitjob-controller"))
743733
}).Should(Succeed())
744734
})
745735

integrationtests/gitjob/controller/suite_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ var _ = BeforeSuite(func() {
166166
Scheduler: sched,
167167
GitFetcher: fetcherMock,
168168
Clock: reconciler.RealClock{},
169-
Recorder: mgr.GetEventRecorder("gitjob-controller"),
169+
Recorder: mgr.GetEventRecorderFor("gitjob-controller"),
170170
Workers: 50,
171171
SystemNamespace: "default",
172172
KnownHosts: ssh.KnownHosts{},

integrationtests/helmops/controller/suite_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ var _ = BeforeSuite(func() {
8888
err = (&reconciler.HelmOpReconciler{
8989
Client: mgr.GetClient(),
9090
Scheme: mgr.GetScheme(),
91-
Recorder: mgr.GetEventRecorder("helmops-controller"),
91+
Recorder: mgr.GetEventRecorderFor("helmops-controller"),
9292
Scheduler: sched,
9393
Workers: 50,
9494
}).SetupWithManager(mgr)

internal/cmd/controller/gitops/operator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ func (g *GitOperator) Run(cmd *cobra.Command, args []string) error {
186186
JobNodeSelector: g.ShardNodeSelector,
187187
GitFetcher: &git.Fetch{KnownHosts: kh},
188188
Clock: reconciler.RealClock{},
189-
Recorder: mgr.GetEventRecorder(fmt.Sprintf("fleet-gitops%s", shardIDSuffix)),
189+
Recorder: mgr.GetEventRecorderFor(fmt.Sprintf("fleet-gitops%s", shardIDSuffix)),
190190
SystemNamespace: namespace,
191191
KnownHosts: kh,
192192
WithImagescan: imagescanEnabled,

internal/cmd/controller/gitops/reconciler/gitjob.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
ssh "github.com/rancher/fleet/internal/ssh"
2020
v1alpha1 "github.com/rancher/fleet/pkg/apis/fleet.cattle.io/v1alpha1"
2121
"github.com/rancher/fleet/pkg/cert"
22+
fleetevent "github.com/rancher/fleet/pkg/event"
2223
"github.com/rancher/fleet/pkg/sharding"
2324

2425
appsv1 "k8s.io/api/apps/v1"
@@ -69,14 +70,7 @@ func (r *GitJobReconciler) createJobAndResources(ctx context.Context, gitrepo *v
6970
return fmt.Errorf("error creating git job: %w", err)
7071
}
7172

72-
r.Recorder.Eventf(
73-
gitrepo,
74-
nil,
75-
corev1.EventTypeNormal,
76-
"Created",
77-
"CreateGitJob",
78-
"GitJob was created",
79-
)
73+
r.Recorder.Event(gitrepo, fleetevent.Normal, "Created", "GitJob was created")
8074
return nil
8175
}
8276

internal/cmd/controller/gitops/reconciler/gitjob_controller.go

Lines changed: 10 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/rancher/fleet/internal/metrics"
2525
v1alpha1 "github.com/rancher/fleet/pkg/apis/fleet.cattle.io/v1alpha1"
2626
"github.com/rancher/fleet/pkg/durations"
27+
fleetevent "github.com/rancher/fleet/pkg/event"
2728
"github.com/rancher/fleet/pkg/sharding"
2829

2930
"github.com/rancher/wrangler/v3/pkg/condition"
@@ -40,7 +41,7 @@ import (
4041
"k8s.io/apimachinery/pkg/runtime"
4142
"k8s.io/apimachinery/pkg/types"
4243
errutil "k8s.io/apimachinery/pkg/util/errors"
43-
"k8s.io/client-go/tools/events"
44+
"k8s.io/client-go/tools/record"
4445
"k8s.io/client-go/util/retry"
4546
"sigs.k8s.io/cli-utils/pkg/kstatus/status"
4647
ctrl "sigs.k8s.io/controller-runtime"
@@ -140,7 +141,7 @@ type GitJobReconciler struct {
140141
JobNodeSelector string
141142
GitFetcher GitFetcher
142143
Clock TimeGetter
143-
Recorder events.EventRecorder
144+
Recorder record.EventRecorder
144145
SystemNamespace string
145146
KnownHosts KnownHostsGetter
146147
WithImagescan bool
@@ -201,16 +202,7 @@ func (r *GitJobReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctr
201202
// Restrictions / Overrides, gitrepo reconciler is responsible for setting error in status
202203
oldStatus := gitrepo.Status.DeepCopy()
203204
if err := AuthorizeAndAssignDefaults(ctx, r.Client, gitrepo); err != nil {
204-
r.Recorder.Eventf(
205-
gitrepo,
206-
nil,
207-
corev1.EventTypeWarning,
208-
"FailedToApplyRestrictions",
209-
"ApplyGitRepoRestrictions",
210-
"%v",
211-
err,
212-
)
213-
205+
r.Recorder.Event(gitrepo, fleetevent.Warning, "FailedToApplyRestrictions", err.Error())
214206
return ctrl.Result{}, updateErrorStatus(ctx, r.Client, req.NamespacedName, *oldStatus, err)
215207
}
216208

@@ -314,31 +306,15 @@ func (r *GitJobReconciler) manageGitJob(ctx context.Context, logger logr.Logger,
314306
}, &job)
315307
if err != nil && !apierrors.IsNotFound(err) {
316308
err = fmt.Errorf("error retrieving git job: %w", err)
317-
r.Recorder.Eventf(
318-
gitrepo,
319-
nil,
320-
corev1.EventTypeWarning,
321-
"FailedToGetGitJob",
322-
"GetGitJob",
323-
"%v",
324-
err,
325-
)
309+
r.Recorder.Event(gitrepo, fleetevent.Warning, "FailedToGetGitJob", err.Error())
326310

327311
return ctrl.Result{}, err
328312
}
329313

330314
if apierrors.IsNotFound(err) {
331315
clientSecretChanged, helmSecretChanged, err := r.hasReferencedSecretChanged(ctx, gitrepo)
332316
if err != nil {
333-
r.Recorder.Eventf(
334-
gitrepo,
335-
nil,
336-
corev1.EventTypeWarning,
337-
"FailedValidatingSecret",
338-
"ValidateSecret",
339-
"%v",
340-
err,
341-
)
317+
r.Recorder.Event(gitrepo, fleetevent.Warning, "FailedValidatingSecret", err.Error())
342318
return ctrl.Result{}, fmt.Errorf("error validating external secrets: %w", err)
343319
}
344320

@@ -357,39 +333,16 @@ func (r *GitJobReconciler) manageGitJob(ctx context.Context, logger logr.Logger,
357333
gitrepo.Status.Commit = commit
358334
}
359335
if err != nil {
360-
r.Recorder.Eventf(
361-
gitrepo,
362-
nil,
363-
corev1.EventTypeWarning,
364-
"Failed",
365-
"MonitorLatestCommit",
366-
"%v",
367-
err,
368-
)
336+
r.Recorder.Event(gitrepo, fleetevent.Warning, "Failed", err.Error())
369337
} else if oldCommit != gitrepo.Status.Commit {
370-
r.Recorder.Eventf(
371-
gitrepo,
372-
nil,
373-
corev1.EventTypeNormal,
374-
"GotNewCommit",
375-
"GetNewCommit",
376-
gitrepo.Status.Commit,
377-
)
338+
r.Recorder.Event(gitrepo, fleetevent.Normal, "GotNewCommit", gitrepo.Status.Commit)
378339
}
379340
}
380341

381342
if r.shouldCreateJob(gitrepo, oldCommit, helmSecretChanged) {
382343
r.updateGenerationValuesIfNeeded(gitrepo)
383344
if err := r.validateExternalSecretExist(ctx, gitrepo); err != nil {
384-
r.Recorder.Eventf(
385-
gitrepo,
386-
nil,
387-
corev1.EventTypeWarning,
388-
"FailedValidatingSecret",
389-
"ValidateSecret",
390-
"%v",
391-
err,
392-
)
345+
r.Recorder.Event(gitrepo, fleetevent.Warning, "FailedValidatingSecret", err.Error())
393346
return ctrl.Result{}, fmt.Errorf("error validating external secrets: %w", err)
394347
}
395348
if err := r.createJobAndResources(ctx, gitrepo, logger); err != nil {
@@ -628,14 +581,7 @@ func (r *GitJobReconciler) deleteJobIfNeeded(ctx context.Context, gitRepo *v1alp
628581
if err := r.Delete(ctx, job, client.PropagationPolicy(metav1.DeletePropagationBackground)); err != nil && !apierrors.IsNotFound(err) {
629582
return err, false
630583
}
631-
r.Recorder.Eventf(
632-
gitRepo,
633-
nil,
634-
corev1.EventTypeNormal,
635-
"JobDeleted",
636-
"DeleteJob",
637-
jobDeletedMessage,
638-
)
584+
r.Recorder.Event(gitRepo, fleetevent.Normal, "JobDeleted", jobDeletedMessage)
639585
}
640586

641587
// finally if there's a job and any of the secrets related to the gitrepo changed,

internal/cmd/controller/gitops/reconciler/gitjob_test.go

Lines changed: 10 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
//go:generate mockgen --build_flags=--mod=mod -destination=../../../../mocks/client_mock.go -package=mocks -mock_names=Client=MockK8sClient,SubResourceWriter=MockStatusWriter sigs.k8s.io/controller-runtime/pkg/client Client,SubResourceWriter
2-
//go:generate mockgen --build_flags=--mod=mod -destination=../../../../mocks/eventrecorder_mock.go -package=mocks k8s.io/client-go/tools/events EventRecorder
32

43
package reconciler
54

@@ -23,6 +22,7 @@ import (
2322
"github.com/rancher/wrangler/v3/pkg/genericcondition"
2423
"go.uber.org/mock/gomock"
2524

25+
fleetevent "github.com/rancher/fleet/pkg/event"
2626
appsv1 "k8s.io/api/apps/v1"
2727
batchv1 "k8s.io/api/batch/v1"
2828
corev1 "k8s.io/api/core/v1"
@@ -85,24 +85,6 @@ func (m gitRepoPointerMatcher) String() string {
8585
return ""
8686
}
8787

88-
// errorMatcher implements a gomock matcher on error message strings.
89-
type errorMatcher struct {
90-
errMsg string
91-
}
92-
93-
func (m errorMatcher) Matches(x interface{}) bool {
94-
err, ok := x.(error)
95-
if !ok {
96-
return false
97-
}
98-
99-
return err.Error() == m.errMsg
100-
}
101-
102-
func (m errorMatcher) String() string {
103-
return fmt.Sprintf("matches error %q", m.errMsg)
104-
}
105-
10688
func TestReconcile_Error_WhenGitrepoRestrictionsAreNotMet(t *testing.T) {
10789
mockCtrl := gomock.NewController(t)
10890
defer mockCtrl.Finish()
@@ -147,14 +129,11 @@ func TestReconcile_Error_WhenGitrepoRestrictionsAreNotMet(t *testing.T) {
147129
)
148130

149131
recorderMock := mocks.NewMockEventRecorder(mockCtrl)
150-
recorderMock.EXPECT().Eventf(
132+
recorderMock.EXPECT().Event(
151133
&gitRepoMatcher{gitRepo},
152-
nil,
153-
corev1.EventTypeWarning,
134+
fleetevent.Warning,
154135
"FailedToApplyRestrictions",
155-
"ApplyGitRepoRestrictions",
156-
"%v",
157-
errorMatcher{"empty targetNamespace denied, because allowedTargetNamespaces restriction is present"},
136+
"empty targetNamespace denied, because allowedTargetNamespaces restriction is present",
158137
)
159138

160139
r := GitJobReconciler{
@@ -225,14 +204,11 @@ func TestReconcile_Error_WhenGetGitJobErrors(t *testing.T) {
225204

226205
recorderMock := mocks.NewMockEventRecorder(mockCtrl)
227206

228-
recorderMock.EXPECT().Eventf(
207+
recorderMock.EXPECT().Event(
229208
&gitRepoMatcher{gitRepo},
230-
nil,
231-
corev1.EventTypeWarning,
209+
fleetevent.Warning,
232210
"FailedToGetGitJob",
233-
"GetGitJob",
234-
"%v",
235-
errorMatcher{"error retrieving git job: GITJOB ERROR"},
211+
"error retrieving git job: GITJOB ERROR",
236212
)
237213

238214
r := GitJobReconciler{
@@ -299,14 +275,11 @@ func TestReconcile_Error_WhenSecretDoesNotExist(t *testing.T) {
299275

300276
recorderMock := mocks.NewMockEventRecorder(mockCtrl)
301277

302-
recorderMock.EXPECT().Eventf(
278+
recorderMock.EXPECT().Event(
303279
&gitRepoMatcher{gitRepo},
304-
nil,
305-
corev1.EventTypeWarning,
280+
fleetevent.Warning,
306281
"FailedValidatingSecret",
307-
"ValidateSecret",
308-
"%v",
309-
errorMatcher{"failed to look up HelmSecretNameForPaths, error: SECRET ERROR"},
282+
"failed to look up HelmSecretNameForPaths, error: SECRET ERROR",
310283
)
311284

312285
statusClient := mocks.NewMockStatusWriter(mockCtrl)

0 commit comments

Comments
 (0)