Skip to content

Commit 06482b6

Browse files
committed
address comment
Signed-off-by: Rita Zhang <[email protected]>
1 parent 04ac6df commit 06482b6

File tree

2 files changed

+8
-131
lines changed

2 files changed

+8
-131
lines changed

plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy_test.go

Lines changed: 2 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"path/filepath"
2222
"reflect"
2323
"slices"
24-
"strings"
2524
"testing"
2625

2726
"github.com/google/go-cmp/cmp"
@@ -178,152 +177,24 @@ func TestBootstrapClusterRoles(t *testing.T) {
178177
testObjects(t, list, "cluster-roles.yaml")
179178
}
180179

181-
func TestBootstrapClusterRolesWithFeatureGateEnabled(t *testing.T) {
182-
expectedDiff := map[string]string{
183-
"system:monitoring": ` &v1.ClusterRole{
184-
TypeMeta: {},
185-
ObjectMeta: {Name: "system:monitoring", Labels: {"kubernetes.io/bootstrapping": "rbac-defaults"}, Annotations: {"rbac.authorization.kubernetes.io/autoupdate": "true"}},
186-
Rules: []v1.PolicyRule{
187-
{Verbs: {"get"}, NonResourceURLs: {"/healthz", "/healthz/*", "/livez", "/livez/*", ...}},
188-
+ {Verbs: []string{"get"}, NonResourceURLs: []string{"/flagz"}},
189-
+ {Verbs: []string{"get"}, NonResourceURLs: []string{"/statusz"}},
190-
},
191-
AggregationRule: nil,
192-
}`,
193-
"system:aggregate-to-view": ` &v1.ClusterRole{
194-
TypeMeta: {},
195-
ObjectMeta: {Name: "system:aggregate-to-view", Labels: {"kubernetes.io/bootstrapping": "rbac-defaults", "rbac.authorization.k8s.io/aggregate-to-view": "true"}, Annotations: {"rbac.authorization.kubernetes.io/autoupdate": "true"}},
196-
Rules: []v1.PolicyRule{
197-
... // 8 identical elements
198-
{Verbs: {"get", "list", "watch"}, APIGroups: {"policy"}, Resources: {"poddisruptionbudgets", "poddisruptionbudgets/status"}},
199-
{Verbs: {"get", "list", "watch"}, APIGroups: {"networking.k8s.io"}, Resources: {"ingresses", "ingresses/status", "networkpolicies"}},
200-
+ {
201-
+ Verbs: []string{"get", "list", "watch"},
202-
+ APIGroups: []string{"resource.k8s.io"},
203-
+ Resources: []string{"resourceclaims", "resourceclaims/status", "resourceclaimtemplates"},
204-
+ },
205-
},
206-
AggregationRule: nil,
207-
}
208-
`,
209-
"system:aggregate-to-edit": `&v1.ClusterRole{
210-
TypeMeta: {},
211-
ObjectMeta: {Name: "system:aggregate-to-edit", Labels: {"kubernetes.io/bootstrapping": "rbac-defaults", "rbac.authorization.k8s.io/aggregate-to-edit": "true"}, Annotations: {"rbac.authorization.kubernetes.io/autoupdate": "true"}},
212-
Rules: []v1.PolicyRule{
213-
... // 11 identical elements
214-
{Verbs: {"create", "delete", "deletecollection", "patch", ...}, APIGroups: {"networking.k8s.io"}, Resources: {"ingresses", "networkpolicies"}},
215-
{Verbs: {"create", "delete", "deletecollection", "get", ...}, APIGroups: {"coordination.k8s.io"}, Resources: {"leases"}},
216-
+ {
217-
+ Verbs: []string{"create", "delete", "deletecollection", "patch", "update"},
218-
+ APIGroups: []string{"resource.k8s.io"},
219-
+ Resources: []string{"resourceclaims", "resourceclaimtemplates"},
220-
+ },
221-
},
222-
AggregationRule: nil,
223-
}
224-
`,
225-
"system:node": ` &v1.ClusterRole{
226-
TypeMeta: {},
227-
ObjectMeta: {Name: "system:node", Labels: {"kubernetes.io/bootstrapping": "rbac-defaults"}, Annotations: {"rbac.authorization.kubernetes.io/autoupdate": "true"}},
228-
Rules: []v1.PolicyRule{
229-
... // 20 identical elements
230-
{Verbs: {"create", "delete", "get", "patch", ...}, APIGroups: {"storage.k8s.io"}, Resources: {"csinodes"}},
231-
{Verbs: {"get", "list", "watch"}, APIGroups: {"node.k8s.io"}, Resources: {"runtimeclasses"}},
232-
+ {
233-
+ Verbs: []string{"get"},
234-
+ APIGroups: []string{"resource.k8s.io"},
235-
+ Resources: []string{"resourceclaims"},
236-
+ },
237-
+ {
238-
+ Verbs: []string{"deletecollection"},
239-
+ APIGroups: []string{"resource.k8s.io"},
240-
+ Resources: []string{"resourceslices"},
241-
+ },
242-
+ {
243-
+ Verbs: []string{"get", "list", "watch"},
244-
+ APIGroups: []string{"certificates.k8s.io"},
245-
+ Resources: []string{"clustertrustbundles"},
246-
+ },
247-
},
248-
AggregationRule: nil,
249-
}
250-
`,
251-
"system:kube-scheduler": ` &v1.ClusterRole{
252-
TypeMeta: {},
253-
ObjectMeta: {Name: "system:kube-scheduler", Labels: {"kubernetes.io/bootstrapping": "rbac-defaults"}, Annotations: {"rbac.authorization.kubernetes.io/autoupdate": "true"}},
254-
Rules: []v1.PolicyRule{
255-
... // 18 identical elements
256-
{Verbs: {"get", "list", "watch"}, APIGroups: {"storage.k8s.io"}, Resources: {"csidrivers"}},
257-
{Verbs: {"get", "list", "watch"}, APIGroups: {"storage.k8s.io"}, Resources: {"csistoragecapacities"}},
258-
+ {
259-
+ Verbs: []string{"get", "list", "watch"},
260-
+ APIGroups: []string{"resource.k8s.io"},
261-
+ Resources: []string{"deviceclasses"},
262-
+ },
263-
+ {
264-
+ Verbs: []string{"get", "list", "patch", "update", "watch"},
265-
+ APIGroups: []string{"resource.k8s.io"},
266-
+ Resources: []string{"resourceclaims"},
267-
+ },
268-
+ {
269-
+ Verbs: []string{"get", "list", "patch", "update", "watch"},
270-
+ APIGroups: []string{"resource.k8s.io"},
271-
+ Resources: []string{"resourceclaims/status"},
272-
+ },
273-
+ {
274-
+ Verbs: []string{"get", "list", "patch", "update", "watch"},
275-
+ APIGroups: []string{""},
276-
+ Resources: []string{"pods/finalizers"},
277-
+ },
278-
+ {
279-
+ Verbs: []string{"get", "list", "watch"},
280-
+ APIGroups: []string{"resource.k8s.io"},
281-
+ Resources: []string{"resourceslices"},
282-
+ },
283-
},
284-
AggregationRule: nil,
285-
}
286-
`,
287-
"system:cluster-trust-bundle-discovery": ` any(
288-
+ s"&ClusterRole{ObjectMeta:{system:cluster-trust-bundle-discovery 0 0001-01-01 00:00:00 +0000 UTC <nil> <nil> map[kubernetes.io/bootstrapping:rbac-defaults] map[rbac.authorization.kubernetes.io/autoupdate:true] [] [] []},Rules:[]PolicyRule{PolicyRule{Ver"...,
289-
)
290-
`,
291-
}
292-
293-
names := sets.NewString()
294-
roles := map[string]runtime.Object{}
295-
bootstrapRoles := bootstrappolicy.ClusterRoles()
296-
for i := range bootstrapRoles {
297-
role := bootstrapRoles[i]
298-
names.Insert(role.Name)
299-
roles[role.Name] = &role
300-
}
301-
180+
func TestBootstrapClusterRolesWithFeatureGatesEnabled(t *testing.T) {
302181
featuregatetesting.SetFeatureGateDuringTest(t, feature.DefaultFeatureGate, "AllAlpha", true)
303182
featuregatetesting.SetFeatureGateDuringTest(t, feature.DefaultFeatureGate, "AllBeta", true)
304183

305-
bootstrapRoles = bootstrappolicy.ClusterRoles()
184+
bootstrapRoles := bootstrappolicy.ClusterRoles()
306185
featureGateList := &api.List{}
307186
featureGateNames := sets.NewString()
308187
featureGateRoles := map[string]runtime.Object{}
309188
for i := range bootstrapRoles {
310189
role := bootstrapRoles[i]
311190
featureGateNames.Insert(role.Name)
312191
featureGateRoles[role.Name] = &role
313-
actualDiff := cmp.Diff(roles[role.Name], featureGateRoles[role.Name])
314-
//normalize whitespace
315-
expectedDiffNormalized := strings.Join(strings.Fields(expectedDiff[role.Name]), " ")
316-
actualDiffNormalized := strings.Join(strings.Fields(actualDiff), " ")
317-
if expectedDiffNormalized != actualDiffNormalized {
318-
t.Errorf("RoleName '%s', diff between regular and feature gate. Expected: [%s], Actual: [%s]", role.Name, expectedDiff[role.Name], actualDiff)
319-
}
320192
}
321193
for _, featureGateName := range featureGateNames.List() {
322194
featureGateList.Items = append(featureGateList.Items, featureGateRoles[featureGateName])
323195
}
324196

325197
testObjects(t, featureGateList, "cluster-roles-featuregates.yaml")
326-
327198
}
328199

329200
func TestBootstrapClusterRoleBindings(t *testing.T) {

plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles-featuregates.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1235,6 +1235,12 @@ items:
12351235
- get
12361236
- list
12371237
- watch
1238+
- apiGroups:
1239+
- ""
1240+
resources:
1241+
- serviceaccounts
1242+
verbs:
1243+
- get
12381244
- apiVersion: rbac.authorization.k8s.io/v1
12391245
kind: ClusterRole
12401246
metadata:

0 commit comments

Comments
 (0)