Skip to content

Commit 5e9da75

Browse files
Kirill Shirinkink8s-ci-robot
authored andcommitted
Allow aggregate-to-view roles to get jobs status (kubernetes#77866)
* Allow aggregate-to-edit roles to get jobs status Right now users/accounts with role `admin` or `edit` can create, update and delete jobs, but are not allowed to pull the status of a job that they create. This change extends `aggregate-to-edit` rules to include `jobs/status`. * Move jobs/status to aggregate-to-view rules * Add aggregate-to-view policy to view PVCs status * Update fixtures to include new read permissions * Add more status subresources * Update cluster-roles.yaml * Re-order deployment permissions * Run go fmt * Add more permissions * Fix tests * Re-order permissions in test data * Automatically update yamls
1 parent 2c2ca27 commit 5e9da75

File tree

2 files changed

+26
-11
lines changed

2 files changed

+26
-11
lines changed

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ func ClusterRoles() []rbacv1.ClusterRole {
300300
ObjectMeta: metav1.ObjectMeta{Name: "system:aggregate-to-view", Labels: map[string]string{"rbac.authorization.k8s.io/aggregate-to-view": "true"}},
301301
Rules: []rbacv1.PolicyRule{
302302
rbacv1helpers.NewRule(Read...).Groups(legacyGroup).Resources("pods", "replicationcontrollers", "replicationcontrollers/scale", "serviceaccounts",
303-
"services", "endpoints", "persistentvolumeclaims", "configmaps").RuleOrDie(),
303+
"services", "services/status", "endpoints", "persistentvolumeclaims", "persistentvolumeclaims/status", "configmaps").RuleOrDie(),
304304
rbacv1helpers.NewRule(Read...).Groups(legacyGroup).Resources("limitranges", "resourcequotas", "bindings", "events",
305305
"pods/status", "resourcequotas/status", "namespaces/status", "replicationcontrollers/status", "pods/log").RuleOrDie(),
306306
// read access to namespaces at the namespace scope means you can read *this* namespace. This can be used as an
@@ -309,22 +309,22 @@ func ClusterRoles() []rbacv1.ClusterRole {
309309

310310
rbacv1helpers.NewRule(Read...).Groups(appsGroup).Resources(
311311
"controllerrevisions",
312-
"statefulsets", "statefulsets/scale",
313-
"daemonsets",
314-
"deployments", "deployments/scale",
315-
"replicasets", "replicasets/scale").RuleOrDie(),
312+
"statefulsets", "statefulsets/status", "statefulsets/scale",
313+
"daemonsets", "daemonsets/status",
314+
"deployments", "deployments/status", "deployments/scale",
315+
"replicasets", "replicasets/status", "replicasets/scale").RuleOrDie(),
316316

317-
rbacv1helpers.NewRule(Read...).Groups(autoscalingGroup).Resources("horizontalpodautoscalers").RuleOrDie(),
317+
rbacv1helpers.NewRule(Read...).Groups(autoscalingGroup).Resources("horizontalpodautoscalers", "horizontalpodautoscalers/status").RuleOrDie(),
318318

319-
rbacv1helpers.NewRule(Read...).Groups(batchGroup).Resources("jobs", "cronjobs").RuleOrDie(),
319+
rbacv1helpers.NewRule(Read...).Groups(batchGroup).Resources("jobs", "cronjobs", "cronjobs/status", "jobs/status").RuleOrDie(),
320320

321-
rbacv1helpers.NewRule(Read...).Groups(extensionsGroup).Resources("daemonsets", "deployments", "deployments/scale",
322-
"ingresses", "replicasets", "replicasets/scale", "replicationcontrollers/scale",
321+
rbacv1helpers.NewRule(Read...).Groups(extensionsGroup).Resources("daemonsets", "daemonsets/status", "deployments", "deployments/scale", "deployments/status",
322+
"ingresses", "ingresses/status", "replicasets", "replicasets/scale", "replicasets/status", "replicationcontrollers/scale",
323323
"networkpolicies").RuleOrDie(),
324324

325-
rbacv1helpers.NewRule(Read...).Groups(policyGroup).Resources("poddisruptionbudgets").RuleOrDie(),
325+
rbacv1helpers.NewRule(Read...).Groups(policyGroup).Resources("poddisruptionbudgets", "poddisruptionbudgets/status").RuleOrDie(),
326326

327-
rbacv1helpers.NewRule(Read...).Groups(networkingGroup).Resources("networkpolicies", "ingresses").RuleOrDie(),
327+
rbacv1helpers.NewRule(Read...).Groups(networkingGroup).Resources("networkpolicies", "ingresses", "ingresses/status").RuleOrDie(),
328328
},
329329
},
330330
{

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,11 +236,13 @@ items:
236236
- configmaps
237237
- endpoints
238238
- persistentvolumeclaims
239+
- persistentvolumeclaims/status
239240
- pods
240241
- replicationcontrollers
241242
- replicationcontrollers/scale
242243
- serviceaccounts
243244
- services
245+
- services/status
244246
verbs:
245247
- get
246248
- list
@@ -274,12 +276,16 @@ items:
274276
resources:
275277
- controllerrevisions
276278
- daemonsets
279+
- daemonsets/status
277280
- deployments
278281
- deployments/scale
282+
- deployments/status
279283
- replicasets
280284
- replicasets/scale
285+
- replicasets/status
281286
- statefulsets
282287
- statefulsets/scale
288+
- statefulsets/status
283289
verbs:
284290
- get
285291
- list
@@ -288,6 +294,7 @@ items:
288294
- autoscaling
289295
resources:
290296
- horizontalpodautoscalers
297+
- horizontalpodautoscalers/status
291298
verbs:
292299
- get
293300
- list
@@ -296,7 +303,9 @@ items:
296303
- batch
297304
resources:
298305
- cronjobs
306+
- cronjobs/status
299307
- jobs
308+
- jobs/status
300309
verbs:
301310
- get
302311
- list
@@ -305,12 +314,16 @@ items:
305314
- extensions
306315
resources:
307316
- daemonsets
317+
- daemonsets/status
308318
- deployments
309319
- deployments/scale
320+
- deployments/status
310321
- ingresses
322+
- ingresses/status
311323
- networkpolicies
312324
- replicasets
313325
- replicasets/scale
326+
- replicasets/status
314327
- replicationcontrollers/scale
315328
verbs:
316329
- get
@@ -320,6 +333,7 @@ items:
320333
- policy
321334
resources:
322335
- poddisruptionbudgets
336+
- poddisruptionbudgets/status
323337
verbs:
324338
- get
325339
- list
@@ -328,6 +342,7 @@ items:
328342
- networking.k8s.io
329343
resources:
330344
- ingresses
345+
- ingresses/status
331346
- networkpolicies
332347
verbs:
333348
- get

0 commit comments

Comments
 (0)