Skip to content

Commit c35caf6

Browse files
committed
Pass Object's GVK version when reconcile.
1 parent 985e819 commit c35caf6

File tree

3 files changed

+47
-23
lines changed

3 files changed

+47
-23
lines changed

pkg/handler/enqueue.go

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -41,25 +41,34 @@ func (e *EnqueueRequestForObject) Create(evt event.CreateEvent, q workqueue.Rate
4141
enqueueLog.Error(nil, "CreateEvent received with no metadata", "event", evt)
4242
return
4343
}
44-
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
45-
Name: evt.Object.GetName(),
46-
Namespace: evt.Object.GetNamespace(),
47-
}})
44+
q.Add(reconcile.Request{
45+
NamespacedName: types.NamespacedName{
46+
Name: evt.Object.GetName(),
47+
Namespace: evt.Object.GetNamespace(),
48+
},
49+
GroupVersionKind: evt.Object.GetObjectKind().GroupVersionKind(),
50+
})
4851
}
4952

5053
// Update implements EventHandler.
5154
func (e *EnqueueRequestForObject) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
5255
switch {
5356
case evt.ObjectNew != nil:
54-
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
55-
Name: evt.ObjectNew.GetName(),
56-
Namespace: evt.ObjectNew.GetNamespace(),
57-
}})
57+
q.Add(reconcile.Request{
58+
NamespacedName: types.NamespacedName{
59+
Name: evt.ObjectNew.GetName(),
60+
Namespace: evt.ObjectNew.GetNamespace(),
61+
},
62+
GroupVersionKind: evt.ObjectNew.GetObjectKind().GroupVersionKind(),
63+
})
5864
case evt.ObjectOld != nil:
59-
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
60-
Name: evt.ObjectOld.GetName(),
61-
Namespace: evt.ObjectOld.GetNamespace(),
62-
}})
65+
q.Add(reconcile.Request{
66+
NamespacedName: types.NamespacedName{
67+
Name: evt.ObjectOld.GetName(),
68+
Namespace: evt.ObjectOld.GetNamespace(),
69+
},
70+
GroupVersionKind: evt.ObjectOld.GetObjectKind().GroupVersionKind(),
71+
})
6372
default:
6473
enqueueLog.Error(nil, "UpdateEvent received with no metadata", "event", evt)
6574
}
@@ -71,10 +80,13 @@ func (e *EnqueueRequestForObject) Delete(evt event.DeleteEvent, q workqueue.Rate
7180
enqueueLog.Error(nil, "DeleteEvent received with no metadata", "event", evt)
7281
return
7382
}
74-
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
75-
Name: evt.Object.GetName(),
76-
Namespace: evt.Object.GetNamespace(),
77-
}})
83+
q.Add(reconcile.Request{
84+
NamespacedName: types.NamespacedName{
85+
Name: evt.Object.GetName(),
86+
Namespace: evt.Object.GetNamespace(),
87+
},
88+
GroupVersionKind: evt.Object.GetObjectKind().GroupVersionKind(),
89+
})
7890
}
7991

8092
// Generic implements EventHandler.
@@ -83,8 +95,11 @@ func (e *EnqueueRequestForObject) Generic(evt event.GenericEvent, q workqueue.Ra
8395
enqueueLog.Error(nil, "GenericEvent received with no metadata", "event", evt)
8496
return
8597
}
86-
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
87-
Name: evt.Object.GetName(),
88-
Namespace: evt.Object.GetNamespace(),
89-
}})
98+
q.Add(reconcile.Request{
99+
NamespacedName: types.NamespacedName{
100+
Name: evt.Object.GetName(),
101+
Namespace: evt.Object.GetNamespace(),
102+
},
103+
GroupVersionKind: evt.Object.GetObjectKind().GroupVersionKind(),
104+
})
90105
}

pkg/handler/enqueue_owner.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,16 @@ func (e *EnqueueRequestForOwner) getOwnerReconcileRequest(object metav1.Object,
134134
// object in the event.
135135
if ref.Kind == e.groupKind.Kind && refGV.Group == e.groupKind.Group {
136136
// Match found - add a Request for the object referred to in the OwnerReference
137-
request := reconcile.Request{NamespacedName: types.NamespacedName{
138-
Name: ref.Name,
139-
}}
137+
request := reconcile.Request{
138+
NamespacedName: types.NamespacedName{
139+
Name: ref.Name,
140+
},
141+
GroupVersionKind: schema.GroupVersionKind{
142+
Group: refGV.Group,
143+
Version: refGV.Version,
144+
Kind: ref.Kind,
145+
},
146+
}
140147

141148
// if owner is not namespaced then we should set the namespace to the empty
142149
mapping, err := e.mapper.RESTMapping(e.groupKind, refGV.Version)

pkg/reconcile/reconcile.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"context"
2121
"time"
2222

23+
"k8s.io/apimachinery/pkg/runtime/schema"
2324
"k8s.io/apimachinery/pkg/types"
2425
)
2526

@@ -47,6 +48,7 @@ func (r *Result) IsZero() bool {
4748
type Request struct {
4849
// NamespacedName is the name and namespace of the object to reconcile.
4950
types.NamespacedName
51+
schema.GroupVersionKind
5052
}
5153

5254
/*

0 commit comments

Comments
 (0)