@@ -22,9 +22,8 @@ import (
2222
2323 "github.com/go-logr/logr"
2424 "github.com/pkg/errors"
25- "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
26- "k8s.io/apimachinery/pkg/runtime"
2725 "sigs.k8s.io/controller-runtime/pkg/cache"
26+ "sigs.k8s.io/controller-runtime/pkg/client"
2827 "sigs.k8s.io/controller-runtime/pkg/controller"
2928 "sigs.k8s.io/controller-runtime/pkg/handler"
3029 "sigs.k8s.io/controller-runtime/pkg/predicate"
@@ -42,7 +41,7 @@ type ObjectTracker struct {
4241}
4342
4443// Watch uses the controller to issue a Watch only if the object hasn't been seen before.
45- func (o * ObjectTracker ) Watch (log logr.Logger , obj runtime .Object , handler handler.EventHandler , p ... predicate.Predicate ) error {
44+ func (o * ObjectTracker ) Watch (log logr.Logger , obj client .Object , handler handler.TypedEventHandler [client. Object ] , p ... predicate.TypedPredicate [client. Object ] ) error {
4645 // Consider this a no-op if the controller isn't present.
4746 if o .Controller == nil {
4847 return nil
@@ -54,15 +53,13 @@ func (o *ObjectTracker) Watch(log logr.Logger, obj runtime.Object, handler handl
5453 return nil
5554 }
5655
57- u := & unstructured.Unstructured {}
58- u .SetGroupVersionKind (gvk )
59-
6056 log .Info (fmt .Sprintf ("Adding watch on external object %q" , gvk .String ()))
61- err := o .Controller .Watch (
62- source .Kind (o .Cache , u ),
57+ err := o .Controller .Watch (source .Kind (
58+ o .Cache ,
59+ obj ,
6360 handler ,
6461 append (p , predicates .ResourceNotPaused (log ))... ,
65- )
62+ ))
6663 if err != nil {
6764 o .m .Delete (key )
6865 return errors .Wrapf (err , "failed to add watch on external object %q" , gvk .String ())
0 commit comments