0

我已经设置了一个具有“视图”角色的协作者帐户。我现在想授予该用户使用oc tag.

按照这些说明,我有:

oc get clusterrole view -o yaml > role_edittags.yaml
# 1. Update kind: ClusterRole to kind: Role
# 2. Update name: view to name: edittags
# 3. Remove resourceVersion, selfLink, uid, and creationTimestamp
# 4. split up the section with {imagestreamimages,imagestreammappings,imagestreams,imagestreamtags} into two sections:
- apiGroups:
  - image.openshift.io
  - ""
  attributeRestrictions: null
  resources:
  - imagestreamimages
  - imagestreammappings
  - imagestreams
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - image.openshift.io
  - ""
  attributeRestrictions: null
  resources:
  - imagestreamtags
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - deletecollection

然后我oc project进入我想要授予角色的项目并将其导入:

$ oc create -f role_edittags.yaml role "edittags" created

当我尝试将其授予用户时,出现错误:

$ oc policy add-role-to-user edittags myuser Error from server (NotFound): rolebindings.authorization.openshift.io "edittags" not found

如何oc tag向用户授予权限?

谢谢!

更新:

registry-editor我在上面的链接上的“示例 1”中找到了一个预先存在的角色,它可以完成这项工作:

$ oc policy add-role-to-user registry-editor myuser role "registry-editor" added: "myuser"

如果没有现成的角色,我仍然很想知道如何创建自定义角色。再次感谢!

4

2 回答 2

1

请参阅有关创建本地角色的 OpenShift 文档。

具体来说,要将用户绑定到本地角色,您需要指定--role-namespace命令oc policy add-role-to-user

于 2018-05-29T17:48:53.113 回答
0

在Openshift的 Helm 模板中有一个很好的示例,它授予对 configmaps 的写访问权限。显示所有默认角色,oc describe clusterPolicy default这是一个很好的起点,可以编写一个类似于现有角色的新角色。就我而言,现有的角色registry-editor是我需要通过标记图像和从 RedHat 容器目录中提取上游补丁来自动化促销。

更新:

以下是如何创建可以启动 openshift 构建的本地角色:

oc create role buildinstantiate --verb=create --resource=buildconfigs.build.openshift.io/instantiate -n hubot

oc adm policy add-role-to-user buildinstantiate myuser --role-namespace=hubot -n hubot

于 2018-06-13T06:32:43.443 回答