@@ -135,35 +135,46 @@ func GetOpenshiftBootstrapClusterRoles() []rbacv1.ClusterRole {
135
135
ObjectMeta : metav1.ObjectMeta {
136
136
Name : ClusterReaderRoleName ,
137
137
},
138
+ AggregationRule : & rbacv1.AggregationRule {
139
+ ClusterRoleSelectors : []metav1.LabelSelector {
140
+ {
141
+ MatchLabels : map [string ]string {"rbac.authorization.k8s.io/aggregate-to-cluster-reader" : "true" },
142
+ },
143
+ {
144
+ MatchLabels : map [string ]string {"rbac.authorization.k8s.io/aggregate-to-view" : "true" },
145
+ },
146
+ },
147
+ },
148
+ },
149
+ {
150
+ ObjectMeta : metav1.ObjectMeta {
151
+ Name : AggregatedClusterReaderRoleName ,
152
+ Labels : map [string ]string {"rbac.authorization.k8s.io/aggregate-to-cluster-reader" : "true" },
153
+ },
138
154
Rules : []rbacv1.PolicyRule {
139
- rbacv1helpers .NewRule (read ... ).Groups (kapiGroup ).Resources ("bindings" , "componentstatuses" , "configmaps" , "endpoints" , "events" , "limitranges" ,
140
- "namespaces" , "namespaces/status" , "nodes" , "nodes/status" , "persistentvolumeclaims" , "persistentvolumeclaims/status" , "persistentvolumes" ,
141
- "persistentvolumes/status" , "pods" , "pods/binding" , "pods/eviction" , "pods/log" , "pods/status" , "podtemplates" , "replicationcontrollers" , "replicationcontrollers/scale" ,
142
- "replicationcontrollers/status" , "resourcequotas" , "resourcequotas/status" , "securitycontextconstraints" , "serviceaccounts" , "services" ,
143
- "services/status" ).RuleOrDie (),
155
+ rbacv1helpers .NewRule (read ... ).Groups (kapiGroup ).Resources ("componentstatuses" , "nodes" , "nodes/status" , "persistentvolumeclaims/status" , "persistentvolumes" ,
156
+ "persistentvolumes/status" , "pods/binding" , "pods/eviction" , "podtemplates" , "securitycontextconstraints" , "services/status" ).RuleOrDie (),
144
157
145
158
rbacv1helpers .NewRule (read ... ).Groups (admissionRegistrationGroup ).Resources ("mutatingwebhookconfigurations" , "validatingwebhookconfigurations" ).RuleOrDie (),
146
159
147
- rbacv1helpers .NewRule (read ... ).Groups (appsGroup ).Resources ("statefulsets" , "statefulsets/scale" , "statefulsets/status" , "deployments" , "deployments/scale" , "deployments/status" , "controllerrevisions" , "daemonsets" , "daemonsets/status" , "replicasets" , "replicasets/status" , "replicasets/scale" ).RuleOrDie (),
160
+ rbacv1helpers .NewRule (read ... ).Groups (appsGroup ).Resources ("statefulsets/status" , "deployments/status" , "controllerrevisions" , "daemonsets/status" ,
161
+ "replicasets/status" ).RuleOrDie (),
148
162
149
163
rbacv1helpers .NewRule (read ... ).Groups (apiExtensionsGroup ).Resources ("customresourcedefinitions" , "customresourcedefinitions/status" ).RuleOrDie (),
150
164
151
165
rbacv1helpers .NewRule (read ... ).Groups (apiRegistrationGroup ).Resources ("apiservices" , "apiservices/status" ).RuleOrDie (),
152
166
153
- rbacv1helpers .NewRule (read ... ).Groups (autoscalingGroup ).Resources ("horizontalpodautoscalers" , "horizontalpodautoscalers /status" ).RuleOrDie (),
167
+ rbacv1helpers .NewRule (read ... ).Groups (autoscalingGroup ).Resources ("horizontalpodautoscalers/status" ).RuleOrDie (),
154
168
155
- rbacv1helpers .NewRule (read ... ).Groups (batchGroup ).Resources ("jobs" , "jobs /status" , "cronjobs " , "cronjobs/status" ).RuleOrDie (),
169
+ rbacv1helpers .NewRule (read ... ).Groups (batchGroup ).Resources ("jobs/status" , "cronjobs/status" ).RuleOrDie (),
156
170
157
- rbacv1helpers .NewRule (read ... ).Groups (extensionsGroup ).Resources ("daemonsets" , "daemonsets/status" , "deployments" , "deployments/scale" ,
158
- "deployments/status" , "horizontalpodautoscalers" , "horizontalpodautoscalers/status" , "ingresses" , "ingresses/status" , "jobs" , "jobs/status" ,
159
- "networkpolicies" , "podsecuritypolicies" , "replicasets" , "replicasets/scale" , "replicasets/status" , "replicationcontrollers" ,
160
- "replicationcontrollers/scale" , "storageclasses" , "thirdpartyresources" ).RuleOrDie (),
171
+ rbacv1helpers .NewRule (read ... ).Groups (extensionsGroup ).Resources ("daemonsets/status" , "deployments/status" , "horizontalpodautoscalers" ,
172
+ "horizontalpodautoscalers/status" , "ingresses/status" , "jobs" , "jobs/status" , "podsecuritypolicies" , "replicasets/status" , "replicationcontrollers" ,
173
+ "storageclasses" , "thirdpartyresources" ).RuleOrDie (),
161
174
162
175
rbacv1helpers .NewRule (read ... ).Groups (eventsGroup ).Resources ("events" ).RuleOrDie (),
163
176
164
- rbacv1helpers .NewRule (read ... ).Groups (networkingGroup ).Resources ("networkpolicies" ).RuleOrDie (),
165
-
166
- rbacv1helpers .NewRule (read ... ).Groups (policyGroup ).Resources ("podsecuritypolicies" , "poddisruptionbudgets" , "poddisruptionbudgets/status" ).RuleOrDie (),
177
+ rbacv1helpers .NewRule (read ... ).Groups (policyGroup ).Resources ("podsecuritypolicies" , "poddisruptionbudgets/status" ).RuleOrDie (),
167
178
168
179
rbacv1helpers .NewRule (read ... ).Groups (rbacGroup ).Resources ("roles" , "rolebindings" , "clusterroles" , "clusterrolebindings" ).RuleOrDie (),
169
180
@@ -173,56 +184,53 @@ func GetOpenshiftBootstrapClusterRoles() []rbacv1.ClusterRole {
173
184
174
185
rbacv1helpers .NewRule (read ... ).Groups (schedulingGroup ).Resources ("priorityclasses" ).RuleOrDie (),
175
186
176
- rbacv1helpers .NewRule (read ... ).Groups (certificatesGroup ).Resources ("certificatesigningrequests" , "certificatesigningrequests/approval" , "certificatesigningrequests/status" ).RuleOrDie (),
187
+ rbacv1helpers .NewRule (read ... ).Groups (certificatesGroup ).Resources ("certificatesigningrequests" , "certificatesigningrequests/approval" ,
188
+ "certificatesigningrequests/status" ).RuleOrDie (),
177
189
178
- rbacv1helpers .NewRule (read ... ).Groups (authzGroup , legacyAuthzGroup ).Resources ("clusterroles" , "clusterrolebindings" , "roles" , "rolebindings" , "rolebindingrestrictions" ).RuleOrDie (),
190
+ rbacv1helpers .NewRule (read ... ).Groups (authzGroup , legacyAuthzGroup ).Resources ("clusterroles" , "clusterrolebindings" , "roles" , "rolebindings" ,
191
+ "rolebindingrestrictions" ).RuleOrDie (),
179
192
180
- rbacv1helpers .NewRule (read ... ).Groups (buildGroup , legacyBuildGroup ).Resources ("builds" , "builds /details" , "buildconfigs" , "buildconfigs/webhooks" , "builds/log " ).RuleOrDie (),
193
+ rbacv1helpers .NewRule (read ... ).Groups (buildGroup , legacyBuildGroup ).Resources ("builds/details" ).RuleOrDie (),
181
194
182
- rbacv1helpers .NewRule (read ... ).Groups (deployGroup , legacyDeployGroup ).Resources ("deploymentconfigs" , "deploymentconfigs/scale" , "deploymentconfigs/log" ,
183
- "deploymentconfigs/status" ).RuleOrDie (),
184
-
185
- rbacv1helpers .NewRule (read ... ).Groups (imageGroup , legacyImageGroup ).Resources ("images" , "imagesignatures" , "imagestreams" , "imagestreamtags" , "imagestreamimages" ,
186
- "imagestreams/status" ).RuleOrDie (),
195
+ rbacv1helpers .NewRule (read ... ).Groups (imageGroup , legacyImageGroup ).Resources ("images" , "imagesignatures" ).RuleOrDie (),
187
196
// pull images
188
197
rbacv1helpers .NewRule ("get" ).Groups (imageGroup , legacyImageGroup ).Resources ("imagestreams/layers" ).RuleOrDie (),
189
198
190
199
rbacv1helpers .NewRule (read ... ).Groups (oauthGroup , legacyOauthGroup ).Resources ("oauthclientauthorizations" ).RuleOrDie (),
191
200
192
- rbacv1helpers .NewRule (read ... ).Groups (projectGroup , legacyProjectGroup ).Resources ("projectrequests" , "projects" ).RuleOrDie (),
201
+ // "get" comes in from aggregate-to-view role
202
+ rbacv1helpers .NewRule ("list" , "watch" ).Groups (projectGroup , legacyProjectGroup ).Resources ("projects" ).RuleOrDie (),
193
203
194
- rbacv1helpers .NewRule (read ... ).Groups (quotaGroup , legacyQuotaGroup ).Resources ("appliedclusterresourcequotas" , "clusterresourcequotas" , "clusterresourcequotas/status " ).RuleOrDie (),
204
+ rbacv1helpers .NewRule (read ... ).Groups (projectGroup , legacyProjectGroup ).Resources ("projectrequests " ).RuleOrDie (),
195
205
196
- rbacv1helpers .NewRule (read ... ).Groups (routeGroup , legacyRouteGroup ).Resources ("routes " , "routes /status" ).RuleOrDie (),
206
+ rbacv1helpers .NewRule (read ... ).Groups (quotaGroup , legacyQuotaGroup ).Resources ("clusterresourcequotas " , "clusterresourcequotas /status" ).RuleOrDie (),
197
207
198
- rbacv1helpers .NewRule (read ... ).Groups (networkGroup , legacyNetworkGroup ).Resources ("clusternetworks" , "egressnetworkpolicies" , "hostsubnets" , "netnamespaces" ).RuleOrDie (),
208
+ rbacv1helpers .NewRule (read ... ).Groups (networkGroup , legacyNetworkGroup ).Resources ("clusternetworks" , "egressnetworkpolicies" , "hostsubnets" ,
209
+ "netnamespaces" ).RuleOrDie (),
199
210
200
211
rbacv1helpers .NewRule (read ... ).Groups (securityGroup , legacySecurityGroup ).Resources ("securitycontextconstraints" ).RuleOrDie (),
201
212
rbacv1helpers .NewRule (read ... ).Groups (securityGroup ).Resources ("rangeallocations" ).RuleOrDie (),
202
213
203
- rbacv1helpers .NewRule (read ... ).Groups (templateGroup , legacyTemplateGroup ).Resources ("templates" , "templateconfigs" , "processedtemplates" , "templateinstances" ).RuleOrDie (),
204
214
rbacv1helpers .NewRule (read ... ).Groups (templateGroup , legacyTemplateGroup ).Resources ("brokertemplateinstances" , "templateinstances/status" ).RuleOrDie (),
205
215
206
216
rbacv1helpers .NewRule (read ... ).Groups (userGroup , legacyUserGroup ).Resources ("groups" , "identities" , "useridentitymappings" , "users" ).RuleOrDie (),
207
217
208
218
// permissions to check access. These creates are non-mutating
209
- rbacv1helpers .NewRule ("create" ).Groups (authzGroup , legacyAuthzGroup ).Resources ("localresourceaccessreviews" , "localsubjectaccessreviews" , "resourceaccessreviews" ,
210
- "selfsubjectrulesreviews" , "subjectrulesreviews" , "subjectaccessreviews" ).RuleOrDie (),
211
- rbacv1helpers .NewRule ("create" ).Groups (kAuthzGroup ).Resources ("selfsubjectaccessreviews" , "subjectaccessreviews" , "selfsubjectrulesreviews" , "localsubjectaccessreviews" ).RuleOrDie (),
219
+ rbacv1helpers .NewRule ("create" ).Groups (authzGroup , legacyAuthzGroup ).Resources ("localresourceaccessreviews" , "localsubjectaccessreviews" ,
220
+ "resourceaccessreviews" , "selfsubjectrulesreviews" , "subjectrulesreviews" , "subjectaccessreviews" ).RuleOrDie (),
221
+ rbacv1helpers .NewRule ("create" ).Groups (kAuthzGroup ).Resources ("selfsubjectaccessreviews" , "subjectaccessreviews" , "selfsubjectrulesreviews" ,
222
+ "localsubjectaccessreviews" ).RuleOrDie (),
212
223
rbacv1helpers .NewRule ("create" ).Groups (kAuthnGroup ).Resources ("tokenreviews" ).RuleOrDie (),
213
224
// permissions to check PSP, these creates are non-mutating
214
- rbacv1helpers .NewRule ("create" ).Groups (securityGroup , legacySecurityGroup ).Resources ("podsecuritypolicysubjectreviews" , "podsecuritypolicyselfsubjectreviews" , "podsecuritypolicyreviews" ).RuleOrDie (),
225
+ rbacv1helpers .NewRule ("create" ).Groups (securityGroup , legacySecurityGroup ).Resources ("podsecuritypolicysubjectreviews" ,
226
+ "podsecuritypolicyselfsubjectreviews" , "podsecuritypolicyreviews" ).RuleOrDie (),
215
227
// Allow read access to node metrics
216
228
rbacv1helpers .NewRule ("get" ).Groups (kapiGroup ).Resources ("nodes/" + NodeMetricsSubresource , "nodes/" + NodeSpecSubresource ).RuleOrDie (),
217
229
// Allow read access to stats
218
230
// Node stats requests are submitted as POSTs. These creates are non-mutating
219
231
rbacv1helpers .NewRule ("get" , "create" ).Groups (kapiGroup ).Resources ("nodes/" + NodeStatsSubresource ).RuleOrDie (),
220
232
221
233
rbacv1helpers .NewRule ("get" ).URLs (rbac .NonResourceAll ).RuleOrDie (),
222
-
223
- // backwards compatibility
224
- rbacv1helpers .NewRule (read ... ).Groups (buildGroup , legacyBuildGroup ).Resources ("buildlogs" ).RuleOrDie (),
225
- rbacv1helpers .NewRule (read ... ).Groups (kapiGroup ).Resources ("resourcequotausages" ).RuleOrDie (),
226
234
},
227
235
},
228
236
{
@@ -1014,8 +1022,9 @@ func GetBootstrapNamespaceRoleBindings() map[string][]rbacv1.RoleBinding {
1014
1022
1015
1023
func GetBootstrapClusterRolesToAggregate () map [string ]string {
1016
1024
return map [string ]string {
1017
- AdminRoleName : AggregatedAdminRoleName ,
1018
- EditRoleName : AggregatedEditRoleName ,
1019
- ViewRoleName : AggregatedViewRoleName ,
1025
+ AdminRoleName : AggregatedAdminRoleName ,
1026
+ EditRoleName : AggregatedEditRoleName ,
1027
+ ViewRoleName : AggregatedViewRoleName ,
1028
+ ClusterReaderRoleName : AggregatedClusterReaderRoleName ,
1020
1029
}
1021
1030
}
0 commit comments