Skip to content

Commit c20746d

Browse files
committed
Drop controller-runtime deps
1 parent 89a5973 commit c20746d

File tree

3 files changed

+11
-42
lines changed

3 files changed

+11
-42
lines changed

events/controller.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,16 @@ func (c *Controller[T]) Register(ctx context.Context, m manager.Manager) error {
4242
return controllerruntime.NewControllerManagedBy(m).
4343
Named(fmt.Sprintf("operatorpkg.%s.events", strings.ToLower(c.gvk.Kind))).
4444
WatchesRawSource(singleton.Source()).
45-
Complete(singleton.AsChannelObjectReconciler(c.EventWatchChannel, c))
45+
Complete(singleton.AsReconciler(c))
4646
}
4747

48-
func (c *Controller[T]) Reconcile(ctx context.Context, event *v1.Event) (reconcile.Result, error) {
48+
func (c *Controller[T]) Reconcile(ctx context.Context) (reconcile.Result, error) {
49+
e := <-c.EventWatchChannel
50+
if e.Object == nil {
51+
return reconcile.Result{RequeueAfter: singleton.RequeueImmediately}, nil
52+
}
53+
event := e.Object.(*v1.Event)
54+
4955
// We check if the event was created in the lifetime of this controller
5056
// since we don't duplicate metrics on controller restart or lease handover
5157
if c.startTime.Before(event.LastTimestamp.Time) {

events/suite_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ var _ = Describe("Controller", func() {
8080
Object: events[i],
8181
}
8282
// reconcile on the event
83-
_, err := singleton.AsChannelObjectReconciler(eventChannel, controller).Reconcile(ctx, reconcile.Request{})
83+
_, err := singleton.AsReconciler(controller).Reconcile(ctx, reconcile.Request{})
8484
Expect(err).ToNot(HaveOccurred())
8585

8686
// expect an emitted metric to for the event
@@ -100,7 +100,7 @@ var _ = Describe("Controller", func() {
100100
Object: event,
101101
}
102102
// reconcile on the event
103-
_, err := singleton.AsChannelObjectReconciler(eventChannel, controller).Reconcile(ctx, reconcile.Request{NamespacedName: client.ObjectKeyFromObject(event)})
103+
_, err := singleton.AsReconciler(controller).Reconcile(ctx, reconcile.Request{NamespacedName: client.ObjectKeyFromObject(event)})
104104
Expect(err).ToNot(HaveOccurred())
105105

106106
// expect not have an emitted metric to for the event
@@ -114,7 +114,7 @@ var _ = Describe("Controller", func() {
114114
Object: event,
115115
}
116116
// reconcile on the event
117-
_, err = singleton.AsChannelObjectReconciler(eventChannel, controller).Reconcile(ctx, reconcile.Request{NamespacedName: client.ObjectKeyFromObject(event)})
117+
_, err = singleton.AsReconciler(controller).Reconcile(ctx, reconcile.Request{NamespacedName: client.ObjectKeyFromObject(event)})
118118
Expect(err).ToNot(HaveOccurred())
119119

120120
// expect an emitted metric to for the event

singleton/controller.go

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,9 @@ package singleton
22

33
import (
44
"context"
5-
"math"
65
"time"
76

8-
"go.uber.org/multierr"
9-
"k8s.io/apimachinery/pkg/watch"
107
"k8s.io/client-go/util/workqueue"
11-
"sigs.k8s.io/controller-runtime/pkg/client"
128
"sigs.k8s.io/controller-runtime/pkg/event"
139
"sigs.k8s.io/controller-runtime/pkg/handler"
1410
"sigs.k8s.io/controller-runtime/pkg/reconcile"
@@ -31,39 +27,6 @@ func AsReconciler(reconciler Reconciler) reconcile.Reconciler {
3127
})
3228
}
3329

34-
type ChannalObjectReconciler[T client.Object] interface {
35-
Reconcile(ctx context.Context, object T) (reconcile.Result, error)
36-
}
37-
38-
func AsChannelObjectReconciler[T client.Object](watchEvents <-chan watch.Event, reconciler ChannalObjectReconciler[T]) reconcile.Reconciler {
39-
return reconcile.Func(func(ctx context.Context, r reconcile.Request) (reconcile.Result, error) {
40-
var errs error
41-
var results []reconcile.Result
42-
e := <-watchEvents
43-
if e.Object == nil {
44-
return reconcile.Result{RequeueAfter: RequeueImmediately}, nil
45-
}
46-
res, err := reconciler.Reconcile(ctx, e.Object.(T))
47-
errs = multierr.Append(errs, err)
48-
results = append(results, res)
49-
50-
var result reconcile.Result
51-
min := time.Duration(math.MaxInt64)
52-
for _, r := range results {
53-
if r.IsZero() {
54-
continue
55-
}
56-
if r.RequeueAfter < min {
57-
min = r.RequeueAfter
58-
result.RequeueAfter = min
59-
result.Requeue = true
60-
}
61-
}
62-
63-
return result, errs
64-
})
65-
}
66-
6730
func Source() source.Source {
6831
eventSource := make(chan event.GenericEvent, 1)
6932
eventSource <- event.GenericEvent{}

0 commit comments

Comments
 (0)