Skip to content

Commit 02633f6

Browse files
zoumoshaofan-hs
authored andcommitted
feat(initializer): delete hidden option
1 parent 7d57a89 commit 02633f6

File tree

2 files changed

+91
-76
lines changed

2 files changed

+91
-76
lines changed

controller/initializer/initializer.go

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,6 @@ func WithDisableByDefault() InitOption {
5757
})
5858
}
5959

60-
// WithHidden hidden the controller name and it will always be enabled.
61-
func WithHidden() InitOption {
62-
return optionFunc(func(o *options) {
63-
o.hidden = true
64-
})
65-
}
66-
6760
// WithOverride allows overriding initializer.
6861
func WithOverride() InitOption {
6962
return optionFunc(func(o *options) {
@@ -103,7 +96,6 @@ func NewNamed(name string) Interface {
10396
all: sets.NewString(),
10497
enabled: sets.NewString(),
10598
disableByDefault: sets.NewString(),
106-
hidden: sets.NewString(),
10799
}
108100
}
109101

@@ -117,14 +109,12 @@ type managerInitializer struct {
117109
all sets.String
118110
enabled sets.String
119111
disableByDefault sets.String
120-
hidden sets.String
121112
}
122113

123114
func (m *managerInitializer) deleteUnlocked(name string) {
124115
if m.all.Has(name) {
125116
m.all.Delete(name)
126117
m.enabled.Delete(name)
127-
m.hidden.Delete(name)
128118
m.disableByDefault.Delete()
129119
delete(m.initializers, name)
130120
}
@@ -150,10 +140,6 @@ func (m *managerInitializer) Add(name string, setup InitFunc, opts ...InitOption
150140

151141
m.all.Insert(name)
152142

153-
if opt.hidden {
154-
m.hidden.Insert(name)
155-
}
156-
157143
if opt.disableByDefault && !opt.hidden {
158144
m.disableByDefault.Insert(name)
159145
} else {
@@ -165,7 +151,7 @@ func (m *managerInitializer) Add(name string, setup InitFunc, opts ...InitOption
165151
}
166152

167153
func (m *managerInitializer) BindFlag(fs *pflag.FlagSet) {
168-
all := m.all.Difference(m.hidden).List()
154+
all := m.all.List()
169155
disabled := m.disableByDefault.List()
170156
fs.Var(m, m.name, fmt.Sprintf(""+
171157
"A list of %s to enable. '*' enables all on-by-default %s, 'foo' enables the %s "+
@@ -201,9 +187,6 @@ func (m *managerInitializer) Enabled(name string) bool {
201187
}
202188

203189
func (m *managerInitializer) enabledUnlocked(name string, flagValue []string) bool {
204-
if m.hidden.Has(name) {
205-
return true
206-
}
207190
hasStar := false
208191
for _, ctrl := range flagValue {
209192
if ctrl == name {
@@ -254,10 +237,6 @@ func (m *managerInitializer) String() string {
254237

255238
pairs := []string{}
256239
for _, name := range m.all.List() {
257-
if m.hidden.Has(name) {
258-
// ignore hidden initializer
259-
continue
260-
}
261240
if m.enabled.Has(name) {
262241
pairs = append(pairs, name)
263242
} else {

controller/initializer/initializer_test.go

Lines changed: 90 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -24,73 +24,109 @@ import (
2424
"sigs.k8s.io/controller-runtime/pkg/manager"
2525
)
2626

27-
func Test_Initializer(t *testing.T) {
27+
func testInitFunc(manager.Manager) (enabled bool, err error) {
28+
return true, nil
29+
}
30+
31+
func newTestInitializer() *managerInitializer {
2832
initializer := New()
29-
err := initializer.Add("test1", testInitFunc)
30-
assert.NoError(t, err)
31-
err = initializer.Add("test2", testInitFunc)
32-
assert.NoError(t, err)
33-
err = initializer.Add("test3", testInitFunc)
34-
assert.NoError(t, err)
35-
err = initializer.Add("__internal", testInitFunc, WithHidden(), WithDisableByDefault())
36-
assert.NoError(t, err)
33+
initializer.Add("test1", testInitFunc)
34+
initializer.Add("test2", testInitFunc)
35+
initializer.Add("test3", testInitFunc, WithDisableByDefault())
36+
37+
return initializer.(*managerInitializer)
38+
}
39+
40+
func Test_Initializer(t *testing.T) {
41+
initializer := newTestInitializer()
3742

3843
// disable override
39-
err = initializer.Add("test3", testInitFunc)
44+
err := initializer.Add("test3", testInitFunc)
4045
assert.Error(t, err)
4146
// allow override
4247
err = initializer.Add("test3", testInitFunc, WithOverride(), WithDisableByDefault())
4348
assert.NoError(t, err)
4449

4550
names := initializer.Knowns()
46-
assert.EqualValues(t, []string{"__internal", "test1", "test2", "test3"}, names)
47-
assert.True(t, initializer.Enabled("test1"))
48-
assert.True(t, initializer.Enabled("test2"))
49-
assert.False(t, initializer.Enabled("test3"))
50-
assert.True(t, initializer.Enabled("__internal"))
51-
52-
// test bind flag
53-
fs := pflag.NewFlagSet("test-*", pflag.PanicOnError)
54-
initializer.BindFlag(fs)
55-
fs.Set(defaultName, "*")
56-
err = fs.Parse(nil)
57-
assert.NoError(t, err)
58-
assert.True(t, initializer.Enabled("test1"))
59-
assert.True(t, initializer.Enabled("test2"))
60-
assert.False(t, initializer.Enabled("test3"))
61-
assert.True(t, initializer.Enabled("__internal"))
62-
63-
fs = pflag.NewFlagSet("test", pflag.PanicOnError)
64-
initializer.BindFlag(fs)
65-
fs.Set(defaultName, "test1,test2")
66-
err = fs.Parse(nil)
67-
assert.NoError(t, err)
51+
assert.EqualValues(t, []string{"test1", "test2", "test3"}, names)
6852
assert.True(t, initializer.Enabled("test1"))
6953
assert.True(t, initializer.Enabled("test2"))
7054
assert.False(t, initializer.Enabled("test3"))
71-
assert.True(t, initializer.Enabled("__internal"))
55+
}
7256

73-
fs = pflag.NewFlagSet("test", pflag.PanicOnError)
74-
initializer.BindFlag(fs)
75-
fs.Set(defaultName, "-test1,test3")
76-
err = fs.Parse(nil)
77-
assert.NoError(t, err)
78-
assert.False(t, initializer.Enabled("test1"))
79-
assert.False(t, initializer.Enabled("test2"))
80-
assert.True(t, initializer.Enabled("test3"))
81-
assert.True(t, initializer.Enabled("__internal"))
57+
func Test_Flag(t *testing.T) {
58+
tests := []struct {
59+
name string
60+
checkResult func(*assert.Assertions, *managerInitializer)
61+
}{
62+
{
63+
name: "*",
64+
checkResult: func(assert *assert.Assertions, initializer *managerInitializer) {
65+
assert.True(initializer.Enabled("test1"))
66+
assert.True(initializer.Enabled("test2"))
67+
assert.False(initializer.Enabled("test3"))
68+
assert.Equal("test1,test2,-test3", initializer.String())
69+
},
70+
},
8271

83-
fs = pflag.NewFlagSet("test", pflag.PanicOnError)
84-
initializer.BindFlag(fs)
85-
fs.Set(defaultName, "-test1,-__internal")
86-
err = fs.Parse(nil)
87-
assert.NoError(t, err)
88-
assert.False(t, initializer.Enabled("test1"))
89-
assert.False(t, initializer.Enabled("test2"))
90-
assert.False(t, initializer.Enabled("test3"))
91-
assert.True(t, initializer.Enabled("__internal"))
92-
}
72+
{
73+
name: "test1,test2",
74+
checkResult: func(assert *assert.Assertions, initializer *managerInitializer) {
75+
assert.True(initializer.Enabled("test1"))
76+
assert.True(initializer.Enabled("test2"))
77+
assert.False(initializer.Enabled("test3"))
78+
assert.Equal("test1,test2,-test3", initializer.String())
79+
},
80+
},
81+
{
82+
name: "test3",
83+
checkResult: func(assert *assert.Assertions, initializer *managerInitializer) {
84+
assert.False(initializer.Enabled("test1"))
85+
assert.False(initializer.Enabled("test2"))
86+
assert.True(initializer.Enabled("test3"))
87+
assert.Equal("-test1,-test2,test3", initializer.String())
88+
},
89+
},
90+
{
91+
name: "-test1",
92+
checkResult: func(assert *assert.Assertions, initializer *managerInitializer) {
93+
assert.False(initializer.Enabled("test1"))
94+
assert.False(initializer.Enabled("test2"))
95+
assert.False(initializer.Enabled("test3"))
96+
assert.Equal("-test1,-test2,-test3", initializer.String())
97+
},
98+
},
99+
{
100+
name: "*,test3",
101+
checkResult: func(assert *assert.Assertions, initializer *managerInitializer) {
102+
assert.True(initializer.Enabled("test1"))
103+
assert.True(initializer.Enabled("test2"))
104+
assert.True(initializer.Enabled("test3"))
105+
assert.Equal("test1,test2,test3", initializer.String())
106+
},
107+
},
108+
{
109+
name: "*,-test1",
110+
checkResult: func(assert *assert.Assertions, initializer *managerInitializer) {
111+
assert.False(initializer.Enabled("test1"))
112+
assert.True(initializer.Enabled("test2"))
113+
assert.False(initializer.Enabled("test3"))
114+
assert.Equal("-test1,test2,-test3", initializer.String())
115+
},
116+
},
117+
}
93118

94-
func testInitFunc(manager.Manager) (enabled bool, err error) {
95-
return true, nil
119+
for i := range tests {
120+
tt := tests[i]
121+
t.Run(tt.name, func(t *testing.T) {
122+
initializer := newTestInitializer()
123+
// test bind flag
124+
fs := pflag.NewFlagSet("test", pflag.PanicOnError)
125+
initializer.BindFlag(fs)
126+
fs.Set(defaultName, tt.name)
127+
err := fs.Parse(nil)
128+
assert.NoError(t, err)
129+
tt.checkResult(assert.New(t), initializer)
130+
})
131+
}
96132
}

0 commit comments

Comments
 (0)