@@ -23,6 +23,7 @@ import (
2323
2424 v1 "k8s.io/api/core/v1"
2525 "k8s.io/client-go/util/workqueue"
26+ "k8s.io/klog/v2"
2627 ctrl "sigs.k8s.io/controller-runtime"
2728 "sigs.k8s.io/controller-runtime/pkg/client"
2829 "sigs.k8s.io/controller-runtime/pkg/event"
3738// ManagerStateReconciler reconciles a ManagerState object
3839type PodReconciler struct {
3940 client.Client
41+ DirectorClient client.Client
4042}
4143
4244func (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 {
5052 // default handler.EnqueueRequestForObject
5153 return ctrl .NewControllerManagedBy (mgr ).
5254 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" }).
5557 Complete (r )
5658}
5759
@@ -61,17 +63,24 @@ type enqueueHandler struct {
6163}
6264
6365func (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 )
6567}
6668
6769func (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 )
6971}
7072
7173func (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 )
7375}
7476
7577func (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+ }
7786}
0 commit comments