Skip to content

Commit f8e6c0b

Browse files
committed
Make scheme and cache mandatory when controller is set in object tracker
1 parent 2afb5cd commit f8e6c0b

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

controllers/external/tracker.go

+4
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ func (o *ObjectTracker) Watch(log logr.Logger, obj client.Object, handler handle
4949
return nil
5050
}
5151

52+
if o.Cache == nil || o.Scheme == nil {
53+
return errors.New("both scheme and cache must be set for object tracker")
54+
}
55+
5256
gvk := obj.GetObjectKind().GroupVersionKind()
5357
key := gvk.GroupKind().String()
5458
if _, loaded := o.m.LoadOrStore(key, struct{}{}); loaded {

controllers/external/tracker_test.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import (
2323
. "github.com/onsi/gomega"
2424
"github.com/pkg/errors"
2525
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
26+
"k8s.io/apimachinery/pkg/runtime"
27+
"sigs.k8s.io/controller-runtime/pkg/cache/informertest"
2628
"sigs.k8s.io/controller-runtime/pkg/controller"
2729
"sigs.k8s.io/controller-runtime/pkg/log"
2830
"sigs.k8s.io/controller-runtime/pkg/source"
@@ -64,7 +66,7 @@ func (c *watchCountController) Watch(_ source.Source) error {
6466
func TestRetryWatch(t *testing.T) {
6567
g := NewWithT(t)
6668
ctrl := newWatchCountController(true)
67-
tracker := ObjectTracker{Controller: ctrl}
69+
tracker := ObjectTracker{Controller: ctrl, Scheme: runtime.NewScheme(), Cache: &informertest.FakeInformers{}}
6870

6971
err := tracker.Watch(logger, &clusterv1.Cluster{}, nil)
7072
g.Expect(err).To(HaveOccurred())
@@ -78,7 +80,7 @@ func TestRetryWatch(t *testing.T) {
7880
func TestWatchMultipleTimes(t *testing.T) {
7981
g := NewWithT(t)
8082
ctrl := &watchCountController{}
81-
tracker := ObjectTracker{Controller: ctrl}
83+
tracker := ObjectTracker{Controller: ctrl, Scheme: runtime.NewScheme(), Cache: &informertest.FakeInformers{}}
8284

8385
obj := &clusterv1.Cluster{
8486
TypeMeta: metav1.TypeMeta{

0 commit comments

Comments
 (0)