Skip to content

Commit 5b224a7

Browse files
committed
Generic fixes
1 parent 5cc3284 commit 5b224a7

File tree

3 files changed

+9
-14
lines changed

3 files changed

+9
-14
lines changed

controllers/external/tracker.go

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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())

controllers/external/tracker_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ import (
2424
"github.com/pkg/errors"
2525
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2626
"sigs.k8s.io/controller-runtime/pkg/controller"
27-
"sigs.k8s.io/controller-runtime/pkg/handler"
2827
"sigs.k8s.io/controller-runtime/pkg/log"
29-
"sigs.k8s.io/controller-runtime/pkg/predicate"
3028
"sigs.k8s.io/controller-runtime/pkg/source"
3129

3230
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
@@ -55,7 +53,7 @@ func newWatchCountController(raiseError bool) *watchCountController {
5553
}
5654
}
5755

58-
func (c *watchCountController) Watch(_ source.Source, _ handler.EventHandler, _ ...predicate.Predicate) error {
56+
func (c *watchCountController) Watch(_ source.Source) error {
5957
c.count++
6058
if c.raiseError {
6159
return errors.New("injected failure")

controllers/remote/cluster_cache_tracker.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,7 @@ func (t *ClusterCacheTracker) deleteAccessor(_ context.Context, cluster client.O
536536
// Watcher is a scoped-down interface from Controller that only knows how to watch.
537537
type Watcher interface {
538538
// Watch watches src for changes, sending events to eventHandler if they pass predicates.
539-
Watch(src source.Source, eventHandler handler.EventHandler, predicates ...predicate.Predicate) error
539+
Watch(src source.Source) error
540540
}
541541

542542
// WatchInput specifies the parameters used to establish a new watch for a remote cluster.
@@ -585,7 +585,7 @@ func (t *ClusterCacheTracker) Watch(ctx context.Context, input WatchInput) error
585585
}
586586

587587
// Need to create the watch
588-
if err := input.Watcher.Watch(source.Kind(accessor.cache, input.Kind), input.EventHandler, input.Predicates...); err != nil {
588+
if err := input.Watcher.Watch(source.Kind(accessor.cache, input.Kind, input.EventHandler, input.Predicates...)); err != nil {
589589
return errors.Wrapf(err, "failed to add %s watch on cluster %s: failed to create watch", input.Kind, klog.KRef(input.Cluster.Namespace, input.Cluster.Name))
590590
}
591591

0 commit comments

Comments
 (0)