Skip to content

Commit 8ef6629

Browse files
committed
wrap constructor with WithLowPriority
Signed-off-by: Troy Connor <[email protected]>
1 parent 2b4e75d commit 8ef6629

File tree

2 files changed

+5
-58
lines changed

2 files changed

+5
-58
lines changed

pkg/handler/enqueue_mapped.go

+4-46
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121

2222
"k8s.io/client-go/util/workqueue"
2323
"sigs.k8s.io/controller-runtime/pkg/client"
24-
"sigs.k8s.io/controller-runtime/pkg/controller/priorityqueue"
2524
"sigs.k8s.io/controller-runtime/pkg/event"
2625
"sigs.k8s.io/controller-runtime/pkg/reconcile"
2726
)
@@ -47,7 +46,7 @@ type TypedMapFunc[object any, request comparable] func(context.Context, object)
4746
// For UpdateEvents which contain both a new and old object, the transformation function is run on both
4847
// objects and both sets of Requests are enqueue.
4948
func EnqueueRequestsFromMapFunc(fn MapFunc) EventHandler {
50-
return TypedEnqueueRequestsFromMapFunc(fn)
49+
return WithLowPriorityWhenUnchanged(TypedEnqueueRequestsFromMapFunc(fn))
5150
}
5251

5352
// TypedEnqueueRequestsFromMapFunc enqueues Requests by running a transformation function that outputs a collection
@@ -82,12 +81,7 @@ func (e *enqueueRequestsFromMapFunc[object, request]) Create(
8281
q workqueue.TypedRateLimitingInterface[request],
8382
) {
8483
reqs := map[request]empty{}
85-
priorityQueue, isPriorityQueue := q.(priorityqueue.PriorityQueue[request])
86-
if !isPriorityQueue {
87-
e.mapAndEnqueue(ctx, q, evt.Object, reqs)
88-
return
89-
}
90-
e.mapAndEnqueuePriorityCreate(ctx, priorityQueue, evt.Object, reqs)
84+
e.mapAndEnqueue(ctx, q, evt.Object, reqs)
9185
}
9286

9387
// Update implements EventHandler.
@@ -96,14 +90,9 @@ func (e *enqueueRequestsFromMapFunc[object, request]) Update(
9690
evt event.TypedUpdateEvent[object],
9791
q workqueue.TypedRateLimitingInterface[request],
9892
) {
99-
priorityQueue, isPriorityQueue := q.(priorityqueue.PriorityQueue[request])
10093
reqs := map[request]empty{}
101-
if !isPriorityQueue {
102-
e.mapAndEnqueue(ctx, q, evt.ObjectOld, reqs)
103-
e.mapAndEnqueue(ctx, q, evt.ObjectNew, reqs)
104-
return
105-
}
106-
e.mapAndEnqueuePriorityUpdate(ctx, priorityQueue, evt.ObjectOld, evt.ObjectNew, reqs)
94+
e.mapAndEnqueue(ctx, q, evt.ObjectOld, reqs)
95+
e.mapAndEnqueue(ctx, q, evt.ObjectNew, reqs)
10796
}
10897

10998
// Delete implements EventHandler.
@@ -135,34 +124,3 @@ func (e *enqueueRequestsFromMapFunc[object, request]) mapAndEnqueue(ctx context.
135124
}
136125
}
137126
}
138-
139-
func (e *enqueueRequestsFromMapFunc[object, request]) mapAndEnqueuePriorityCreate(ctx context.Context, q priorityqueue.PriorityQueue[request], o object, reqs map[request]empty) {
140-
for _, req := range e.toRequests(ctx, o) {
141-
var priority int
142-
obj := any(o).(client.Object)
143-
evtObj := event.TypedCreateEvent[client.Object]{
144-
Object: obj,
145-
}
146-
if isObjectUnchanged(evtObj) {
147-
priority = LowPriority
148-
}
149-
150-
q.AddWithOpts(priorityqueue.AddOpts{Priority: priority}, req)
151-
reqs[req] = empty{}
152-
}
153-
}
154-
155-
func (e *enqueueRequestsFromMapFunc[object, request]) mapAndEnqueuePriorityUpdate(ctx context.Context, q priorityqueue.PriorityQueue[request], oldobj object, newobj object, reqs map[request]empty) {
156-
list := e.toRequests(ctx, oldobj)
157-
list = append(list, e.toRequests(ctx, newobj)...)
158-
for _, req := range list {
159-
var priority int
160-
objnew := any(oldobj).(client.Object)
161-
objold := any(newobj).(client.Object)
162-
if objnew.GetResourceVersion() == objold.GetResourceVersion() {
163-
priority = LowPriority
164-
}
165-
q.AddWithOpts(priorityqueue.AddOpts{Priority: priority}, req)
166-
reqs[req] = empty{}
167-
}
168-
}

pkg/handler/enqueue_owner.go

+1-12
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"k8s.io/apimachinery/pkg/types"
2828
"k8s.io/client-go/util/workqueue"
2929
"sigs.k8s.io/controller-runtime/pkg/client"
30-
"sigs.k8s.io/controller-runtime/pkg/controller/priorityqueue"
3130
"sigs.k8s.io/controller-runtime/pkg/event"
3231
logf "sigs.k8s.io/controller-runtime/pkg/internal/log"
3332
"sigs.k8s.io/controller-runtime/pkg/reconcile"
@@ -49,7 +48,7 @@ type OwnerOption func(e enqueueRequestForOwnerInterface)
4948
//
5049
// - a handler.enqueueRequestForOwner EventHandler with an OwnerType of ReplicaSet and OnlyControllerOwner set to true.
5150
func EnqueueRequestForOwner(scheme *runtime.Scheme, mapper meta.RESTMapper, ownerType client.Object, opts ...OwnerOption) EventHandler {
52-
return TypedEnqueueRequestForOwner[client.Object](scheme, mapper, ownerType, opts...)
51+
return WithLowPriorityWhenUnchanged(TypedEnqueueRequestForOwner[client.Object](scheme, mapper, ownerType, opts...))
5352
}
5453

5554
// TypedEnqueueRequestForOwner enqueues Requests for the Owners of an object. E.g. the object that created
@@ -110,11 +109,6 @@ func (e *enqueueRequestForOwner[object]) Create(ctx context.Context, evt event.T
110109
reqs := map[reconcile.Request]empty{}
111110
e.getOwnerReconcileRequest(evt.Object, reqs)
112111
for req := range reqs {
113-
priorityQueue, isPriorityQueue := q.(priorityqueue.PriorityQueue[reconcile.Request])
114-
if isPriorityQueue {
115-
addToPriorityQueueCreate(priorityQueue, evt, req)
116-
continue
117-
}
118112
q.Add(req)
119113
}
120114
}
@@ -125,11 +119,6 @@ func (e *enqueueRequestForOwner[object]) Update(ctx context.Context, evt event.T
125119
e.getOwnerReconcileRequest(evt.ObjectOld, reqs)
126120
e.getOwnerReconcileRequest(evt.ObjectNew, reqs)
127121
for req := range reqs {
128-
priorityQueue, isPriorityQueue := q.(priorityqueue.PriorityQueue[reconcile.Request])
129-
if isPriorityQueue {
130-
addToPriorityQueueUpdate(priorityQueue, evt, req)
131-
continue
132-
}
133122
q.Add(req)
134123
}
135124
}

0 commit comments

Comments
 (0)