Skip to content

Commit 1debd44

Browse files
committed
:Warning: Use controllerutil.Object for event handling
1 parent 420cd15 commit 1debd44

14 files changed

+110
-277
lines changed

pkg/builder/controller_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ var _ = Describe("application", func() {
251251
CreateFunc: func(e event.CreateEvent) bool {
252252
defer GinkgoRecover()
253253
// check that it was called only for deployment
254-
Expect(e.Meta).To(BeAssignableToTypeOf(&appsv1.Deployment{}))
254+
Expect(e.Object).To(BeAssignableToTypeOf(&appsv1.Deployment{}))
255255
deployPrctExecuted = true
256256
return true
257257
},
@@ -261,7 +261,7 @@ var _ = Describe("application", func() {
261261
CreateFunc: func(e event.CreateEvent) bool {
262262
defer GinkgoRecover()
263263
// check that it was called only for replicaset
264-
Expect(e.Meta).To(BeAssignableToTypeOf(&appsv1.ReplicaSet{}))
264+
Expect(e.Object).To(BeAssignableToTypeOf(&appsv1.ReplicaSet{}))
265265
replicaSetPrctExecuted = true
266266
return true
267267
},
@@ -271,7 +271,7 @@ var _ = Describe("application", func() {
271271
CreateFunc: func(e event.CreateEvent) bool {
272272
defer GinkgoRecover()
273273
//check that it was called for all registered kinds
274-
Expect(e.Meta).Should(Or(
274+
Expect(e.Object).Should(Or(
275275
BeAssignableToTypeOf(&appsv1.Deployment{}),
276276
BeAssignableToTypeOf(&appsv1.ReplicaSet{}),
277277
))

pkg/event/event.go

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,44 +17,31 @@ limitations under the License.
1717
package event
1818

1919
import (
20-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
21-
"k8s.io/apimachinery/pkg/runtime"
20+
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
2221
)
2322

2423
// CreateEvent is an event where a Kubernetes object was created. CreateEvent should be generated
2524
// by a source.Source and transformed into a reconcile.Request by an handler.EventHandler.
2625
type CreateEvent struct {
27-
// Meta is the ObjectMeta of the Kubernetes Type that was created
28-
Meta metav1.Object
29-
3026
// Object is the object from the event
31-
Object runtime.Object
27+
Object controllerutil.Object
3228
}
3329

3430
// UpdateEvent is an event where a Kubernetes object was updated. UpdateEvent should be generated
3531
// by a source.Source and transformed into a reconcile.Request by an handler.EventHandler.
3632
type UpdateEvent struct {
37-
// MetaOld is the ObjectMeta of the Kubernetes Type that was updated (before the update)
38-
MetaOld metav1.Object
39-
4033
// ObjectOld is the object from the event
41-
ObjectOld runtime.Object
42-
43-
// MetaNew is the ObjectMeta of the Kubernetes Type that was updated (after the update)
44-
MetaNew metav1.Object
34+
ObjectOld controllerutil.Object
4535

4636
// ObjectNew is the object from the event
47-
ObjectNew runtime.Object
37+
ObjectNew controllerutil.Object
4838
}
4939

5040
// DeleteEvent is an event where a Kubernetes object was deleted. DeleteEvent should be generated
5141
// by a source.Source and transformed into a reconcile.Request by an handler.EventHandler.
5242
type DeleteEvent struct {
53-
// Meta is the ObjectMeta of the Kubernetes Type that was deleted
54-
Meta metav1.Object
55-
5643
// Object is the object from the event
57-
Object runtime.Object
44+
Object controllerutil.Object
5845

5946
// DeleteStateUnknown is true if the Delete event was missed but we identified the object
6047
// as having been deleted.
@@ -65,9 +52,6 @@ type DeleteEvent struct {
6552
// GenericEvent should be generated by a source.Source and transformed into a reconcile.Request by an
6653
// handler.EventHandler.
6754
type GenericEvent struct {
68-
// Meta is the ObjectMeta of a Kubernetes Type this event is for
69-
Meta metav1.Object
70-
7155
// Object is the object from the event
72-
Object runtime.Object
56+
Object controllerutil.Object
7357
}

pkg/handler/enqueue.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,31 +35,31 @@ type EnqueueRequestForObject struct{}
3535

3636
// Create implements EventHandler
3737
func (e *EnqueueRequestForObject) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) {
38-
if evt.Meta == nil {
38+
if evt.Object == nil {
3939
enqueueLog.Error(nil, "CreateEvent received with no metadata", "event", evt)
4040
return
4141
}
4242
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
43-
Name: evt.Meta.GetName(),
44-
Namespace: evt.Meta.GetNamespace(),
43+
Name: evt.Object.GetName(),
44+
Namespace: evt.Object.GetNamespace(),
4545
}})
4646
}
4747

4848
// Update implements EventHandler
4949
func (e *EnqueueRequestForObject) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
50-
if evt.MetaOld != nil {
50+
if evt.ObjectOld != nil {
5151
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
52-
Name: evt.MetaOld.GetName(),
53-
Namespace: evt.MetaOld.GetNamespace(),
52+
Name: evt.ObjectOld.GetName(),
53+
Namespace: evt.ObjectOld.GetNamespace(),
5454
}})
5555
} else {
5656
enqueueLog.Error(nil, "UpdateEvent received with no old metadata", "event", evt)
5757
}
5858

59-
if evt.MetaNew != nil {
59+
if evt.ObjectNew != nil {
6060
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
61-
Name: evt.MetaNew.GetName(),
62-
Namespace: evt.MetaNew.GetNamespace(),
61+
Name: evt.ObjectNew.GetName(),
62+
Namespace: evt.ObjectNew.GetNamespace(),
6363
}})
6464
} else {
6565
enqueueLog.Error(nil, "UpdateEvent received with no new metadata", "event", evt)
@@ -68,24 +68,24 @@ func (e *EnqueueRequestForObject) Update(evt event.UpdateEvent, q workqueue.Rate
6868

6969
// Delete implements EventHandler
7070
func (e *EnqueueRequestForObject) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) {
71-
if evt.Meta == nil {
71+
if evt.Object == nil {
7272
enqueueLog.Error(nil, "DeleteEvent received with no metadata", "event", evt)
7373
return
7474
}
7575
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
76-
Name: evt.Meta.GetName(),
77-
Namespace: evt.Meta.GetNamespace(),
76+
Name: evt.Object.GetName(),
77+
Namespace: evt.Object.GetNamespace(),
7878
}})
7979
}
8080

8181
// Generic implements EventHandler
8282
func (e *EnqueueRequestForObject) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) {
83-
if evt.Meta == nil {
83+
if evt.Object == nil {
8484
enqueueLog.Error(nil, "GenericEvent received with no metadata", "event", evt)
8585
return
8686
}
8787
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
88-
Name: evt.Meta.GetName(),
89-
Namespace: evt.Meta.GetNamespace(),
88+
Name: evt.Object.GetName(),
89+
Namespace: evt.Object.GetNamespace(),
9090
}})
9191
}

pkg/handler/enqueue_mapped.go

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@ limitations under the License.
1717
package handler
1818

1919
import (
20-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
21-
"k8s.io/apimachinery/pkg/runtime"
2220
"k8s.io/client-go/util/workqueue"
21+
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
2322
"sigs.k8s.io/controller-runtime/pkg/event"
2423
"sigs.k8s.io/controller-runtime/pkg/reconcile"
2524
"sigs.k8s.io/controller-runtime/pkg/runtime/inject"
@@ -44,23 +43,23 @@ type EnqueueRequestsFromMapFunc struct {
4443

4544
// Create implements EventHandler
4645
func (e *EnqueueRequestsFromMapFunc) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) {
47-
e.mapAndEnqueue(q, MapObject{Meta: evt.Meta, Object: evt.Object})
46+
e.mapAndEnqueue(q, MapObject{Object: evt.Object})
4847
}
4948

5049
// Update implements EventHandler
5150
func (e *EnqueueRequestsFromMapFunc) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
52-
e.mapAndEnqueue(q, MapObject{Meta: evt.MetaOld, Object: evt.ObjectOld})
53-
e.mapAndEnqueue(q, MapObject{Meta: evt.MetaNew, Object: evt.ObjectNew})
51+
e.mapAndEnqueue(q, MapObject{Object: evt.ObjectOld})
52+
e.mapAndEnqueue(q, MapObject{Object: evt.ObjectNew})
5453
}
5554

5655
// Delete implements EventHandler
5756
func (e *EnqueueRequestsFromMapFunc) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) {
58-
e.mapAndEnqueue(q, MapObject{Meta: evt.Meta, Object: evt.Object})
57+
e.mapAndEnqueue(q, MapObject{Object: evt.Object})
5958
}
6059

6160
// Generic implements EventHandler
6261
func (e *EnqueueRequestsFromMapFunc) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) {
63-
e.mapAndEnqueue(q, MapObject{Meta: evt.Meta, Object: evt.Object})
62+
e.mapAndEnqueue(q, MapObject{Object: evt.Object})
6463
}
6564

6665
func (e *EnqueueRequestsFromMapFunc) mapAndEnqueue(q workqueue.RateLimitingInterface, object MapObject) {
@@ -87,11 +86,7 @@ type Mapper interface {
8786

8887
// MapObject contains information from an event to be transformed into a Request.
8988
type MapObject struct {
90-
// Meta is the meta data for an object from an event.
91-
Meta metav1.Object
92-
93-
// Object is the object from an event.
94-
Object runtime.Object
89+
Object controllerutil.Object
9590
}
9691

9792
var _ Mapper = ToRequestsFunc(nil)

pkg/handler/enqueue_owner.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,31 +59,31 @@ type EnqueueRequestForOwner struct {
5959

6060
// Create implements EventHandler
6161
func (e *EnqueueRequestForOwner) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) {
62-
for _, req := range e.getOwnerReconcileRequest(evt.Meta) {
62+
for _, req := range e.getOwnerReconcileRequest(evt.Object) {
6363
q.Add(req)
6464
}
6565
}
6666

6767
// Update implements EventHandler
6868
func (e *EnqueueRequestForOwner) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
69-
for _, req := range e.getOwnerReconcileRequest(evt.MetaOld) {
69+
for _, req := range e.getOwnerReconcileRequest(evt.ObjectOld) {
7070
q.Add(req)
7171
}
72-
for _, req := range e.getOwnerReconcileRequest(evt.MetaNew) {
72+
for _, req := range e.getOwnerReconcileRequest(evt.ObjectNew) {
7373
q.Add(req)
7474
}
7575
}
7676

7777
// Delete implements EventHandler
7878
func (e *EnqueueRequestForOwner) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) {
79-
for _, req := range e.getOwnerReconcileRequest(evt.Meta) {
79+
for _, req := range e.getOwnerReconcileRequest(evt.Object) {
8080
q.Add(req)
8181
}
8282
}
8383

8484
// Generic implements EventHandler
8585
func (e *EnqueueRequestForOwner) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) {
86-
for _, req := range e.getOwnerReconcileRequest(evt.Meta) {
86+
for _, req := range e.getOwnerReconcileRequest(evt.Object) {
8787
q.Add(req)
8888
}
8989
}

0 commit comments

Comments
 (0)