-
Notifications
You must be signed in to change notification settings - Fork 43
Description
Bug Report
What did you do?
Wanting to configure the Prune structure but the log field is not exported and never set.
What did you expect to see?
Either that the field is automatically populated or that it is exported.
What did you see instead? Under which circumstances?
A field that is not exported and not automatically set.
Possible Solution
Although, I am not in favor of using global variables for loggers things should be consistent inside a library. The other features provided by operator-lib for instance event handler and leader election use a preset variable:
var log = logf.Log.WithName("event_handler")
var log = logf.Log.WithName("leader")
logf is a package of the controller-runtime library, which contains logr.Logger Log. This assumes that SetLogger was called earlier, which is the same expectation sets by Kubebuilder/controller-runtime.
This makes this library less suitable for clients or other apps not based on controller-runtime but again things should be consistent.
Another thing I would like to mention and a second issue could get open for it is that the naming/structure could be improved. It seems a bit unconventional to have a method like Execute on a structure named Config. I would expect that more on a structure called Pruner. Config being what is provided by users to get Pruners that fits their needs.