Skip to content

Commit cf8df4b

Browse files
committed
Remove SetFields from Manager and Controller
Signed-off-by: Vince Prignano <[email protected]>
1 parent 4b67697 commit cf8df4b

File tree

11 files changed

+43
-332
lines changed

11 files changed

+43
-332
lines changed

pkg/cluster/cluster.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,6 @@ import (
3737

3838
// Cluster provides various methods to interact with a cluster.
3939
type Cluster interface {
40-
// SetFields will set any dependencies on an object for which the object has implemented the inject
41-
// interface - e.g. inject.Client.
42-
// Deprecated: use the equivalent Options field to set a field. This method will be removed in v0.10.
43-
SetFields(interface{}) error
44-
4540
// GetConfig returns an initialized Config
4641
GetConfig() *rest.Config
4742

pkg/cluster/cluster_test.go

Lines changed: 0 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,8 @@ import (
2929
"k8s.io/apimachinery/pkg/runtime"
3030
"k8s.io/client-go/rest"
3131
"sigs.k8s.io/controller-runtime/pkg/cache"
32-
"sigs.k8s.io/controller-runtime/pkg/cache/informertest"
3332
"sigs.k8s.io/controller-runtime/pkg/client"
34-
logf "sigs.k8s.io/controller-runtime/pkg/internal/log"
3533
intrec "sigs.k8s.io/controller-runtime/pkg/internal/recorder"
36-
"sigs.k8s.io/controller-runtime/pkg/runtime/inject"
3734
)
3835

3936
var _ = Describe("cluster.Cluster", func() {
@@ -111,47 +108,6 @@ var _ = Describe("cluster.Cluster", func() {
111108
})
112109
})
113110

114-
Describe("SetFields", func() {
115-
It("should inject field values", func() {
116-
c, err := New(cfg, func(o *Options) {
117-
o.NewCache = func(_ *rest.Config, _ cache.Options) (cache.Cache, error) {
118-
return &informertest.FakeInformers{}, nil
119-
}
120-
})
121-
Expect(err).NotTo(HaveOccurred())
122-
123-
By("Injecting the dependencies")
124-
err = c.SetFields(&injectable{
125-
scheme: func(scheme *runtime.Scheme) error {
126-
defer GinkgoRecover()
127-
Expect(scheme).To(Equal(c.GetScheme()))
128-
return nil
129-
},
130-
client: func(client client.Client) error {
131-
defer GinkgoRecover()
132-
Expect(client).To(Equal(c.GetClient()))
133-
return nil
134-
},
135-
log: func(logger logr.Logger) error {
136-
defer GinkgoRecover()
137-
Expect(logger).To(Equal(logf.RuntimeLog.WithName("cluster")))
138-
return nil
139-
},
140-
})
141-
Expect(err).NotTo(HaveOccurred())
142-
143-
By("Returning an error if dependency injection fails")
144-
145-
expected := fmt.Errorf("expected error")
146-
err = c.SetFields(&injectable{
147-
scheme: func(scheme *runtime.Scheme) error {
148-
return expected
149-
},
150-
})
151-
Expect(err).To(Equal(expected))
152-
})
153-
})
154-
155111
It("should not leak goroutines when stopped", func() {
156112
currentGRs := goleak.IgnoreCurrent()
157113

@@ -211,37 +167,3 @@ var _ = Describe("cluster.Cluster", func() {
211167
Expect(c.GetAPIReader()).NotTo(BeNil())
212168
})
213169
})
214-
215-
var _ inject.Scheme = &injectable{}
216-
var _ inject.Logger = &injectable{}
217-
218-
type injectable struct {
219-
scheme func(scheme *runtime.Scheme) error
220-
client func(client.Client) error
221-
log func(logger logr.Logger) error
222-
}
223-
224-
func (i *injectable) InjectClient(c client.Client) error {
225-
if i.client == nil {
226-
return nil
227-
}
228-
return i.client(c)
229-
}
230-
231-
func (i *injectable) InjectScheme(scheme *runtime.Scheme) error {
232-
if i.scheme == nil {
233-
return nil
234-
}
235-
return i.scheme(scheme)
236-
}
237-
238-
func (i *injectable) InjectLogger(log logr.Logger) error {
239-
if i.log == nil {
240-
return nil
241-
}
242-
return i.log(log)
243-
}
244-
245-
func (i *injectable) Start(<-chan struct{}) error {
246-
return nil
247-
}

pkg/cluster/internal.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import (
2828
"sigs.k8s.io/controller-runtime/pkg/cache"
2929
"sigs.k8s.io/controller-runtime/pkg/client"
3030
intrec "sigs.k8s.io/controller-runtime/pkg/internal/recorder"
31-
"sigs.k8s.io/controller-runtime/pkg/runtime/inject"
3231
)
3332

3433
type cluster struct {
@@ -64,13 +63,6 @@ type cluster struct {
6463
logger logr.Logger
6564
}
6665

67-
func (c *cluster) SetFields(i interface{}) error {
68-
if _, err := inject.SchemeInto(c.scheme, i); err != nil {
69-
return err
70-
}
71-
return nil
72-
}
73-
7466
func (c *cluster) GetConfig() *rest.Config {
7567
return c.config
7668
}

pkg/controller/controller.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,6 @@ func NewUnmanaged(name string, mgr manager.Manager, options Options) (Controller
139139
options.RateLimiter = workqueue.DefaultControllerRateLimiter()
140140
}
141141

142-
// Inject dependencies into Reconciler
143-
if err := mgr.SetFields(options.Reconciler); err != nil {
144-
return nil, err
145-
}
146-
147142
if options.RecoverPanic == nil {
148143
options.RecoverPanic = mgr.GetControllerOptions().RecoverPanic
149144
}

pkg/controller/controller_test.go

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,12 @@ package controller_test
1818

1919
import (
2020
"context"
21-
"fmt"
2221
"time"
2322

2423
. "github.com/onsi/ginkgo/v2"
2524
. "github.com/onsi/gomega"
2625
"go.uber.org/goleak"
2726
corev1 "k8s.io/api/core/v1"
28-
"k8s.io/apimachinery/pkg/runtime"
2927
"k8s.io/utils/pointer"
3028

3129
"sigs.k8s.io/controller-runtime/pkg/config/v1alpha1"
@@ -61,16 +59,6 @@ var _ = Describe("controller.Controller", func() {
6159
Expect(err.Error()).To(ContainSubstring("must specify Reconciler"))
6260
})
6361

64-
It("NewController should return an error if injecting Reconciler fails", func() {
65-
m, err := manager.New(cfg, manager.Options{})
66-
Expect(err).NotTo(HaveOccurred())
67-
68-
c, err := controller.New("foo", m, controller.Options{Reconciler: &failRec{}})
69-
Expect(c).To(BeNil())
70-
Expect(err).To(HaveOccurred())
71-
Expect(err.Error()).To(ContainSubstring("expected error"))
72-
})
73-
7462
It("should not return an error if two controllers are registered with different names", func() {
7563
m, err := manager.New(cfg, manager.Options{})
7664
Expect(err).NotTo(HaveOccurred())
@@ -223,15 +211,3 @@ var _ = Describe("controller.Controller", func() {
223211
})
224212
})
225213
})
226-
227-
var _ reconcile.Reconciler = &failRec{}
228-
229-
type failRec struct{}
230-
231-
func (*failRec) Reconcile(context.Context, reconcile.Request) (reconcile.Result, error) {
232-
return reconcile.Result{}, nil
233-
}
234-
235-
func (*failRec) InjectScheme(*runtime.Scheme) error {
236-
return fmt.Errorf("expected error")
237-
}

pkg/handler/enqueue_owner.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ type OwnerOption func(e *enqueueRequestForOwner)
4646
// - a source.Kind Source with Type of Pod.
4747
//
4848
// - a handler.enqueueRequestForOwner EventHandler with an OwnerType of ReplicaSet and OnlyControllerOwner set to true.
49-
func EnqueueRequestForOwner(scheme *runtime.Scheme, mapper meta.RESTMapper, owner client.Object, opts ...OwnerOption) EventHandler {
49+
func EnqueueRequestForOwner(scheme *runtime.Scheme, mapper meta.RESTMapper, ownerType client.Object, opts ...OwnerOption) EventHandler {
5050
e := &enqueueRequestForOwner{
51-
ownerType: owner,
51+
ownerType: ownerType,
5252
mapper: mapper,
5353
}
5454
if err := e.parseOwnerTypeGroupKind(scheme); err != nil {

pkg/manager/internal.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,18 +192,18 @@ func (cm *controllerManager) Add(r Runnable) error {
192192

193193
func (cm *controllerManager) add(r Runnable) error {
194194
// Set dependencies on the object
195-
if err := cm.SetFields(r); err != nil {
195+
if err := cm.setFields(r); err != nil {
196196
return err
197197
}
198198
return cm.runnables.Add(r)
199199
}
200200

201201
// Deprecated: use the equivalent Options field to set a field. This method will be removed in v0.10.
202-
func (cm *controllerManager) SetFields(i interface{}) error {
203-
if err := cm.cluster.SetFields(i); err != nil {
202+
func (cm *controllerManager) setFields(i interface{}) error {
203+
if _, err := inject.SchemeInto(cm.cluster.GetScheme(), i); err != nil {
204204
return err
205205
}
206-
if _, err := inject.InjectorInto(cm.SetFields, i); err != nil {
206+
if _, err := inject.InjectorInto(cm.setFields, i); err != nil {
207207
return err
208208
}
209209
if _, err := inject.LoggerInto(cm.logger, i); err != nil {

pkg/manager/manager_test.go

Lines changed: 0 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,9 @@ import (
5151
intrec "sigs.k8s.io/controller-runtime/pkg/internal/recorder"
5252
"sigs.k8s.io/controller-runtime/pkg/leaderelection"
5353
fakeleaderelection "sigs.k8s.io/controller-runtime/pkg/leaderelection/fake"
54-
"sigs.k8s.io/controller-runtime/pkg/log"
5554
"sigs.k8s.io/controller-runtime/pkg/metrics"
5655
"sigs.k8s.io/controller-runtime/pkg/reconcile"
5756
"sigs.k8s.io/controller-runtime/pkg/recorder"
58-
"sigs.k8s.io/controller-runtime/pkg/runtime/inject"
5957
"sigs.k8s.io/controller-runtime/pkg/webhook"
6058
)
6159

@@ -1516,58 +1514,6 @@ var _ = Describe("manger.Manager", func() {
15161514

15171515
})
15181516
})
1519-
Describe("SetFields", func() {
1520-
It("should inject field values", func() {
1521-
m, err := New(cfg, Options{
1522-
NewCache: func(_ *rest.Config, _ cache.Options) (cache.Cache, error) {
1523-
return &informertest.FakeInformers{}, nil
1524-
},
1525-
})
1526-
Expect(err).NotTo(HaveOccurred())
1527-
1528-
By("Injecting the dependencies")
1529-
err = m.SetFields(&injectable{
1530-
scheme: func(scheme *runtime.Scheme) error {
1531-
defer GinkgoRecover()
1532-
Expect(scheme).To(Equal(m.GetScheme()))
1533-
return nil
1534-
},
1535-
client: func(client client.Client) error {
1536-
defer GinkgoRecover()
1537-
Expect(client).To(Equal(m.GetClient()))
1538-
return nil
1539-
},
1540-
f: func(f inject.Func) error {
1541-
defer GinkgoRecover()
1542-
Expect(f).NotTo(BeNil())
1543-
return nil
1544-
},
1545-
log: func(logger logr.Logger) error {
1546-
defer GinkgoRecover()
1547-
Expect(logger).To(Equal(log.Log))
1548-
return nil
1549-
},
1550-
})
1551-
Expect(err).NotTo(HaveOccurred())
1552-
1553-
By("Returning an error if dependency injection fails")
1554-
1555-
expected := fmt.Errorf("expected error")
1556-
err = m.SetFields(&injectable{
1557-
scheme: func(scheme *runtime.Scheme) error {
1558-
return expected
1559-
},
1560-
})
1561-
Expect(err).To(Equal(expected))
1562-
1563-
err = m.SetFields(&injectable{
1564-
f: func(c inject.Func) error {
1565-
return expected
1566-
},
1567-
})
1568-
Expect(err).To(Equal(expected))
1569-
})
1570-
})
15711517

15721518
It("should not leak goroutines when stopped", func() {
15731519
currentGRs := goleak.IgnoreCurrent()
@@ -1693,49 +1639,6 @@ func (*failRec) InjectScheme(*runtime.Scheme) error {
16931639
return fmt.Errorf("expected error")
16941640
}
16951641

1696-
var _ inject.Injector = &injectable{}
1697-
var _ inject.Scheme = &injectable{}
1698-
var _ inject.Logger = &injectable{}
1699-
1700-
type injectable struct {
1701-
scheme func(scheme *runtime.Scheme) error
1702-
client func(client.Client) error
1703-
f func(inject.Func) error
1704-
log func(logger logr.Logger) error
1705-
}
1706-
1707-
func (i *injectable) InjectClient(c client.Client) error {
1708-
if i.client == nil {
1709-
return nil
1710-
}
1711-
return i.client(c)
1712-
}
1713-
1714-
func (i *injectable) InjectScheme(scheme *runtime.Scheme) error {
1715-
if i.scheme == nil {
1716-
return nil
1717-
}
1718-
return i.scheme(scheme)
1719-
}
1720-
1721-
func (i *injectable) InjectFunc(f inject.Func) error {
1722-
if i.f == nil {
1723-
return nil
1724-
}
1725-
return i.f(f)
1726-
}
1727-
1728-
func (i *injectable) InjectLogger(log logr.Logger) error {
1729-
if i.log == nil {
1730-
return nil
1731-
}
1732-
return i.log(log)
1733-
}
1734-
1735-
func (i *injectable) Start(<-chan struct{}) error {
1736-
return nil
1737-
}
1738-
17391642
type runnableError struct {
17401643
}
17411644

0 commit comments

Comments
 (0)