--- api_metadata: apiVersion: "rbac.authorization.k8s.io/v1" import: "k8s.io/api/rbac/v1" kind: "ClusterRole" content_type: "api_reference" description: "ClusterRole 是一个集群级别的 PolicyRule 逻辑分组,可以被 RoleBinding 或 ClusterRoleBinding 作为一个单元引用。" title: "ClusterRole" weight: 5 auto_generated: false --- `apiVersion: rbac.authorization.k8s.io/v1` `import "k8s.io/api/rbac/v1"` ## ClusterRole {#ClusterRole} ClusterRole 是一个集群级别的 PolicyRule 逻辑分组, 可以被 RoleBinding 或 ClusterRoleBinding 作为一个单元引用。
- **apiVersion**: rbac.authorization.k8s.io/v1 - **kind**: ClusterRole - **metadata** (}}">ObjectMeta) 标准的对象元数据。 - **aggregationRule** (AggregationRule) aggregationRule 是一个可选字段,用于描述如何构建这个 ClusterRole 的 rules。 如果设置了 aggregationRule,则 rules 将由控制器管理,对 rules 的直接变更会被该控制器阻止。 **aggregationRule 描述如何定位并聚合其它 ClusterRole 到此 ClusterRole** - **aggregationRule.clusterRoleSelectors** ([]}}">LabelSelector) clusterRoleSelectors 包含一个选择器的列表,用于查找 ClusterRole 并创建规则。 如果发现任何选择器匹配的 ClusterRole,将添加其对应的权限。 - **rules** ([]PolicyRule) rules 包含了这个 ClusterRole 的所有 PolicyRule。 **PolicyRule 包含描述一个策略规则的信息,但不包含该规则适用于哪个主体或适用于哪个命名空间的信息。** - **rules.apiGroups** ([]string) apiGroups 是包含资源的 apiGroup 的名称。 如果指定了多个 API 组,则允许针对任何 API 组中的其中一个枚举资源来请求任何操作。 - **rules.resources** ([]string) resources 是此规则所适用的资源的列表。“*” 表示所有资源。 - **rules.verbs** ([]string),必需 verbs 是适用于此规则中所包含的所有 ResourceKinds 的动作。 “*” 表示所有动作。 - **rules.resourceNames** ([]string) resourceNames 是此规则所适用的资源名称白名单,可选。 空集合意味着允许所有资源。 - **rules.nonResourceURLs** ([]string) nonResourceURLs 是用户应有权访问的一组部分 URL。 允许使用 “*”,但仅能作为路径中最后一段且必须用于完整的一段, 因为非资源 URL 没有划分命名空间。 此字段仅适用于从 ClusterRoleBinding 引用的 ClusterRole。 rules 可以应用到 API 资源(如 “pod” 或 “secret”)或非资源 URL 路径(如 “/api”), 但不能同时应用于两者。 ## ClusterRoleList {#ClusterRoleList} ClusterRoleList 是 ClusterRole 的集合。
- **apiVersion**: rbac.authorization.k8s.io/v1 - **kind**: ClusterRoleList - **metadata** (}}">ListMeta) 标准的对象元数据。 - **items** ([]}}">ClusterRole),必需 items 是 ClusterRole 的列表。 ## 操作 {#Operations}
### `get` 读取指定的 ClusterRole #### HTTP 请求 GET /apis/rbac.authorization.k8s.io/v1/clusterroles/{name} #### 参数 - **name** (路径参数): string,必需 ClusterRole 的名称 - **pretty** (查询参数): string }}">pretty #### 响应 200 (}}">ClusterRole): OK 401: Unauthorized ### `list` 列出或观测类别为 ClusterRole 的对象 #### HTTP 请求 GET /apis/rbac.authorization.k8s.io/v1/clusterroles #### 参数 - **allowWatchBookmarks** (**查询参数**): boolean }}">allowWatchBookmarks - **continue** (**查询参数**): string }}">continue - **fieldSelector** (**查询参数**): string }}">fieldSelector - **labelSelector** (**查询参数**): string }}">labelSelector - **limit** (**查询参数**): integer }}">limit - **pretty** (**查询参数**): string }}">pretty - **resourceVersion** (**查询参数**): string }}">resourceVersion - **resourceVersionMatch** (**查询参数**): string }}">resourceVersionMatch - **timeoutSeconds** (**查询参数**): integer }}">timeoutSeconds - **watch** (**查询参数**): boolean }}">watch #### 响应 200 (}}">ClusterRoleList): OK 401: Unauthorized ### `create` 创建一个 ClusterRole #### HTTP 请求 POST /apis/rbac.authorization.k8s.io/v1/clusterroles #### 参数 - **body**: }}">ClusterRole,必需 - **dryRun** (**查询参数**): string }}">dryRun - **fieldManager** (**查询参数**): string }}">fieldManager - **fieldValidation** (**查询参数**): string }}">fieldValidation - **pretty** (**查询参数**): string }}">pretty #### 响应 200 (}}">ClusterRole): OK 201 (}}">ClusterRole): Created 202 (}}">ClusterRole): Accepted 401: Unauthorized ### `update` 替换指定的 ClusterRole #### HTTP 请求 PUT /apis/rbac.authorization.k8s.io/v1/clusterroles/{name} #### 参数 - **name** (**路径参数**): string,必需 ClusterRole 的名称 - **body**: }}">ClusterRole,必需 - **dryRun** (**查询参数**): string }}">dryRun - **fieldManager** (**查询参数**): string }}">fieldManager - **fieldValidation** (**查询参数**): string }}">fieldValidation - **pretty** (**查询参数**): string }}">pretty #### 响应 200 (}}">ClusterRole): OK 201 (}}">ClusterRole): Created 401: Unauthorized ### `patch` 部分更新指定的 ClusterRole #### HTTP 请求 PATCH /apis/rbac.authorization.k8s.io/v1/clusterroles/{name} #### 参数 - **name** (**路径参数**): string,必需 ClusterRole 的名称 - **body**: }}">Patch,必需 - **dryRun** (**查询参数**): string }}">dryRun - **fieldManager** (**查询参数**): string }}">fieldManager - **fieldValidation** (**查询参数**): string }}">fieldValidation - **force** (**查询参数**): boolean }}">force - **pretty** (**查询参数**): string }}">pretty #### 响应 200 (}}">ClusterRole): OK 201 (}}">ClusterRole): Created 401: Unauthorized ### `delete` 删除一个 ClusterRole #### HTTP 请求 DELETE /apis/rbac.authorization.k8s.io/v1/clusterroles/{name} #### 参数 - **name** (**路径参数**): string,必需 ClusterRole 的名称 - **body**: }}">DeleteOptions - **dryRun** (**查询参数**): string }}">dryRun - **gracePeriodSeconds** (**查询参数**): integer }}">gracePeriodSeconds - **pretty** (**查询参数**): string }}">pretty - **propagationPolicy** (**查询参数**): string }}">propagationPolicy #### 响应 200 (}}">Status): OK 202 (}}">Status): Accepted 401: Unauthorized ### `deletecollection` 删除 ClusterRole 的集合 #### HTTP 请求 DELETE /apis/rbac.authorization.k8s.io/v1/clusterroles #### 参数 - **body**: }}">DeleteOptions - **continue** (**查询参数**): string }}">continue - **dryRun** (**查询参数**): string }}">dryRun - **fieldSelector** (**查询参数**): string }}">fieldSelector - **gracePeriodSeconds** (**查询参数**): integer }}">gracePeriodSeconds - **labelSelector** (**查询参数**): string }}">labelSelector - **limit** (**查询参数**): integer }}">limit - **pretty** (**查询参数**): string }}">pretty - **propagationPolicy** (**查询参数**): string }}">propagationPolicy - **resourceVersion** (**查询参数**): string }}">resourceVersion - **resourceVersionMatch** (**查询参数**): string }}">resourceVersionMatch - **timeoutSeconds** (**查询参数**): integer }}">timeoutSeconds #### 响应 200 (}}">Status): OK 401: Unauthorized