@@ -26,6 +26,8 @@ import (
2626 "sigs.k8s.io/controller-runtime/pkg/manager"
2727)
2828
29+ var defaultName = "controllers"
30+
2931// InitFunc is used to setup manager, particularly to launch a controller.
3032// It may run additional "should I activate checks".
3133// Any error returned will cause the main process to `Fatal`
@@ -69,7 +71,7 @@ func WithOverride() InitOption {
6971 })
7072}
7173
72- // Interface knows how to set up controllers with manager
74+ // Interface knows how to set up initializers with manager
7375type Interface interface {
7476 // Add add new setup function to initializer.
7577 Add (name string , setup InitFunc , options ... InitOption ) error
@@ -80,7 +82,7 @@ type Interface interface {
8082 // Enabled returns true if the controller is enabled.
8183 Enabled (name string ) bool
8284
83- // SetupWithManager add all enabled controllers to manager
85+ // SetupWithManager add all enabled initializers to manager
8486 SetupWithManager (mgr manager.Manager ) error
8587
8688 // BindFlag adds a flag for setting global feature gates to the specified FlagSet.
@@ -89,7 +91,14 @@ type Interface interface {
8991
9092// New returns a new instance of initializer interface
9193func New () Interface {
94+ return NewNamed (defaultName )
95+ }
96+
97+ // NewNamed returns a new instance of initializer interface with the specified name.
98+ // The name will be used as the flag name in BindFlags.
99+ func NewNamed (name string ) Interface {
92100 return & managerInitializer {
101+ name : name ,
93102 initializers : make (map [string ]InitFunc ),
94103 all : sets .NewString (),
95104 enabled : sets .NewString (),
@@ -103,6 +112,7 @@ var _ Interface = &managerInitializer{}
103112type managerInitializer struct {
104113 lock sync.RWMutex
105114
115+ name string
106116 initializers map [string ]InitFunc
107117 all sets.String
108118 enabled sets.String
@@ -157,10 +167,10 @@ func (m *managerInitializer) Add(name string, setup InitFunc, opts ...InitOption
157167func (m * managerInitializer ) BindFlag (fs * pflag.FlagSet ) {
158168 all := m .all .Difference (m .hidden ).List ()
159169 disabled := m .disableByDefault .List ()
160- fs .Var (m , "controllers" , fmt .Sprintf ("" +
161- "A list of controllers to enable. '*' enables all on-by-default controllers , 'foo' enables the controller " +
162- "named 'foo', '-foo' disables the controller named 'foo'.\n All controllers : %s\n Disabled-by-default controllers : %s" ,
163- strings .Join (all , ", " ), strings .Join (disabled , ", " )))
170+ fs .Var (m , m . name , fmt .Sprintf ("" +
171+ "A list of %s to enable. '*' enables all on-by-default %s , 'foo' enables the %s " +
172+ "named 'foo', '-foo' disables the %s named 'foo'.\n All: %s\n Disabled-by-default: %s" ,
173+ m . name , m . name , m . name , m . name , strings .Join (all , ", " ), strings .Join (disabled , ", " )))
164174}
165175
166176// Knowns implements Controllerinitializer.
@@ -177,7 +187,7 @@ func (m *managerInitializer) SetupWithManager(mgr manager.Manager) error {
177187 for _ , name := range m .enabled .List () {
178188 _ , err := m.initializers [name ](mgr )
179189 if err != nil {
180- return fmt .Errorf ("failed to initialize controller %q: %v" , name , err )
190+ return fmt .Errorf ("failed to initialize %q: %v" , name , err )
181191 }
182192 }
183193 return nil
@@ -220,10 +230,10 @@ func (m *managerInitializer) Set(value string) error {
220230 m .lock .Lock ()
221231 defer m .lock .Unlock ()
222232
223- controllers := strings .Split (strings .TrimSpace (value ), "," )
233+ initializers := strings .Split (strings .TrimSpace (value ), "," )
224234 all := m .all .List ()
225235 for _ , name := range all {
226- if m .enabledUnlocked (name , controllers ) {
236+ if m .enabledUnlocked (name , initializers ) {
227237 m .enabled .Insert (name )
228238 } else {
229239 m .enabled .Delete (name )
0 commit comments