@@ -23,6 +23,7 @@ import (
23
23
24
24
v1 "k8s.io/api/core/v1"
25
25
"k8s.io/client-go/util/workqueue"
26
+ "k8s.io/klog/v2"
26
27
ctrl "sigs.k8s.io/controller-runtime"
27
28
"sigs.k8s.io/controller-runtime/pkg/client"
28
29
"sigs.k8s.io/controller-runtime/pkg/event"
37
38
// ManagerStateReconciler reconciles a ManagerState object
38
39
type PodReconciler struct {
39
40
client.Client
41
+ DirectorClient client.Client
40
42
}
41
43
42
44
func (r * PodReconciler ) Reconcile (ctx context.Context , req ctrl.Request ) (_ ctrl.Result , err error ) {
@@ -50,8 +52,8 @@ func (r *PodReconciler) SetupWithManager(mgr ctrl.Manager) error {
50
52
// default handler.EnqueueRequestForObject
51
53
return ctrl .NewControllerManagedBy (mgr ).
52
54
For (& v1.Pod {}).
53
- Watches (& source.Kind {Type : & v1.Pod {}}, & enqueueHandler {Client : r .Client , kind : "Pod" }).
54
- Watches (& source.Kind {Type : & v1.ConfigMap {}}, & enqueueHandler {Client : r .Client , kind : "ConfigMap" }).
55
+ Watches (& source.Kind {Type : & v1.Pod {}}, & enqueueHandler {Client : r .DirectorClient , kind : "Pod" }).
56
+ Watches (& source.Kind {Type : & v1.ConfigMap {}}, & enqueueHandler {Client : r .DirectorClient , kind : "ConfigMap" }).
55
57
Complete (r )
56
58
}
57
59
@@ -61,17 +63,24 @@ type enqueueHandler struct {
61
63
}
62
64
63
65
func (e * enqueueHandler ) Create (event event.CreateEvent , q workqueue.RateLimitingInterface ) {
64
- add (e .Client , event .Object .GetNamespace (), e .kind )
66
+ Add (e .Client , event .Object .GetNamespace (), event . Object . GetName (), e .kind )
65
67
}
66
68
67
69
func (e * enqueueHandler ) Update (event event.UpdateEvent , q workqueue.RateLimitingInterface ) {
68
- add (e .Client , event .ObjectNew .GetNamespace (), e .kind )
70
+ Add (e .Client , event .ObjectNew .GetNamespace (), event . ObjectNew . GetName (), e .kind )
69
71
}
70
72
71
73
func (e * enqueueHandler ) Delete (event event.DeleteEvent , q workqueue.RateLimitingInterface ) {
72
- add (e .Client , event .Object .GetNamespace (), e .kind )
74
+ Add (e .Client , event .Object .GetNamespace (), event . Object . GetName (), e .kind )
73
75
}
74
76
75
77
func (e * enqueueHandler ) Generic (event event.GenericEvent , q workqueue.RateLimitingInterface ) {
76
- add (e .Client , event .Object .GetNamespace (), e .kind )
78
+ Add (e .Client , event .Object .GetNamespace (), event .Object .GetName (), e .kind )
79
+ }
80
+
81
+ func Add (c client.Client , namespace , name , kind string ) {
82
+ klog .Infof ("handle event %s %s/%s" , kind , namespace , name )
83
+ if err := add (c , namespace , kind ); err != nil {
84
+ klog .Errorf ("fail to record event %s %s/%s, %v" , kind , namespace , name , err )
85
+ }
77
86
}
0 commit comments