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