@@ -351,17 +351,6 @@ func ClusterRoles() []rbacv1.ClusterRole {
351
351
eventsRule (),
352
352
},
353
353
},
354
- {
355
- // a role to use for setting up a proxy
356
- ObjectMeta : metav1.ObjectMeta {Name : "system:node-proxier" },
357
- Rules : []rbacv1.PolicyRule {
358
- // Used to build serviceLister
359
- rbacv1helpers .NewRule ("list" , "watch" ).Groups (legacyGroup ).Resources ("services" , "endpoints" ).RuleOrDie (),
360
- rbacv1helpers .NewRule ("get" ).Groups (legacyGroup ).Resources ("nodes" ).RuleOrDie (),
361
-
362
- eventsRule (),
363
- },
364
- },
365
354
{
366
355
// a role to use for full access to the kubelet API
367
356
ObjectMeta : metav1.ObjectMeta {Name : "system:kubelet-api-admin" },
@@ -472,6 +461,21 @@ func ClusterRoles() []rbacv1.ClusterRole {
472
461
},
473
462
}
474
463
464
+ // node-proxier role is used by kube-proxy.
465
+ nodeProxierRules := []rbacv1.PolicyRule {
466
+ rbacv1helpers .NewRule ("list" , "watch" ).Groups (legacyGroup ).Resources ("services" , "endpoints" ).RuleOrDie (),
467
+ rbacv1helpers .NewRule ("get" ).Groups (legacyGroup ).Resources ("nodes" ).RuleOrDie (),
468
+
469
+ eventsRule (),
470
+ }
471
+ if utilfeature .DefaultFeatureGate .Enabled (features .EndpointSlice ) {
472
+ nodeProxierRules = append (nodeProxierRules , rbacv1helpers .NewRule ("list" , "watch" ).Groups (discoveryGroup ).Resources ("endpointslices" ).RuleOrDie ())
473
+ }
474
+ roles = append (roles , rbacv1.ClusterRole {
475
+ ObjectMeta : metav1.ObjectMeta {Name : "system:node-proxier" },
476
+ Rules : nodeProxierRules ,
477
+ })
478
+
475
479
kubeSchedulerRules := []rbacv1.PolicyRule {
476
480
eventsRule (),
477
481
// This is for leaderlease access
0 commit comments