Skip to content

Commit 15e8171

Browse files
authored
🐛 Fix builders WithLogger method (#1166)
* Fix builders WithLogger method Signed-off-by: Fabian Ruff <[email protected]> * Add a test for WithLogger Signed-off-by: Fabian Ruff <[email protected]>
1 parent 20af901 commit 15e8171

File tree

2 files changed

+36
-2
lines changed

2 files changed

+36
-2
lines changed

pkg/builder/controller.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ type Builder struct {
4747
config *rest.Config
4848
ctrl controller.Controller
4949
ctrlOptions controller.Options
50-
log logr.Logger
5150
name string
5251
}
5352

@@ -132,7 +131,7 @@ func (blder *Builder) WithOptions(options controller.Options) *Builder {
132131

133132
// WithLogger overrides the controller options's logger used.
134133
func (blder *Builder) WithLogger(log logr.Logger) *Builder {
135-
blder.log = log
134+
blder.ctrlOptions.Log = log
136135
return blder
137136
}
138137

pkg/builder/controller_test.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"strings"
2323
"sync/atomic"
2424

25+
"github.com/go-logr/logr"
2526
. "github.com/onsi/ginkgo"
2627
. "github.com/onsi/gomega"
2728

@@ -48,6 +49,17 @@ func (typedNoop) Reconcile(context.Context, reconcile.Request) (reconcile.Result
4849
return reconcile.Result{}, nil
4950
}
5051

52+
type testLogger struct {
53+
logr.Logger
54+
}
55+
56+
func (l *testLogger) WithName(_ string) logr.Logger {
57+
return l
58+
}
59+
func (l *testLogger) WithValues(_ ...interface{}) logr.Logger {
60+
return l
61+
}
62+
5163
var _ = Describe("application", func() {
5264
var stop chan struct{}
5365

@@ -160,6 +172,29 @@ var _ = Describe("application", func() {
160172
Expect(instance).NotTo(BeNil())
161173
})
162174

175+
It("should override logger during creation of controller", func() {
176+
177+
logger := &testLogger{}
178+
newController = func(name string, mgr manager.Manager, options controller.Options) (controller.Controller, error) {
179+
if options.Log == logger {
180+
return controller.New(name, mgr, options)
181+
}
182+
return nil, fmt.Errorf("logger expected %T but found %T", logger, options.Log)
183+
}
184+
185+
By("creating a controller manager")
186+
m, err := manager.New(cfg, manager.Options{})
187+
Expect(err).NotTo(HaveOccurred())
188+
189+
instance, err := ControllerManagedBy(m).
190+
For(&appsv1.ReplicaSet{}).
191+
Owns(&appsv1.ReplicaSet{}).
192+
WithLogger(logger).
193+
Build(noop)
194+
Expect(err).NotTo(HaveOccurred())
195+
Expect(instance).NotTo(BeNil())
196+
})
197+
163198
It("should prefer reconciler from options during creation of controller", func() {
164199
newController = func(name string, mgr manager.Manager, options controller.Options) (controller.Controller, error) {
165200
if options.Reconciler != (typedNoop{}) {

0 commit comments

Comments
 (0)