搜索

第 6 章 访问 Red Hat Quay 管理

download PDF

作为 Red Hat Quay 用户,您可以创建自己的存储库,并使其可以被属于您的实例的其他用户访问。或者,您可以创建组织,并将一组存储库直接关联到该组织,称为 组织存储库

机构存储库与基本存储库不同,组织旨在通过用户组设置共享存储库。在 Red Hat Quay 中,一组用户可以是 团队,也可以是具有相同权限的用户或 单个用户。您还可以通过创建与 Robot Accounts 关联的凭证来访问用户存储库和组织存储库。机器人帐户使得各种容器客户端(如 Docker 或 Podman)可以轻松地访问您的存储库,而无需客户端具有 Red Hat Quay 用户帐户。

6.1. Red Hat Quay 团队概述

在 Red Hat Quay 中,团队 是一组具有共享权限的用户,允许对项目进行高效管理和协作。团队可帮助简化机构和存储库内的访问控制和项目管理。可以为他们分配指定权限,帮助确保成员根据其角色和职责具有合适的存储库访问权限。

6.1.1. 使用 UI 创建团队

当您为您的机构创建团队时,您可以选择团队名称,选择要提供给团队的存储库,并决定团队的访问级别。

使用以下步骤为您的机构存储库创建团队。

先决条件

  • 您已创建了一个机构。

流程

  1. 在 Red Hat Quay v2 UI 上,点机构的名称。
  2. 在您的组织页面中,单击 Teams 和 membership
  3. Create new team 框。
  4. Create team 弹出窗口中,为您的新团队提供一个名称。
  5. 可选。为您的新团队提供描述。
  6. 单击 Proceed。此时会出现一个新的弹出窗口。
  7. 可选。将此团队添加到存储库中,并将权限设置为以下之一:

    • None。团队成员对存储库没有权限。
    • 读取.团队成员可以从存储库查看和拉取。
    • 写入。团队成员可以从中读取(拉取)并写入(推送)到存储库。
    • 管理.从存储库拉取(pull)和推送到存储库的完整访问权限以及执行与存储库关联的管理任务的能力。
  8. 可选。添加团队成员或机器人帐户。要添加团队成员,请输入其 Red Hat Quay 帐户的名称。
  9. 检查并完成信息,然后点 Review and Finish。新团队会出现在 团队和成员资格页面 下。

6.1.2. 使用 API 创建团队

当使用 API 为机构创建团队时,您可以选择团队名称,选择哪个仓库可供团队使用,并决定团队的访问级别。

使用以下步骤为您的机构存储库创建团队。

先决条件

  • 您已创建了一个机构。
  • 您已创建了 OAuth 访问令牌
  • 您已在 config.yaml 文件中设置了 BROWSER_API_CALLS_XHR_ONLY: false

流程

  1. 输入以下 PUT /api/v1/organization/{orgname}/team/{teamname} 命令,为您的机构创建一个团队:

    $ curl -k -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' -H "Authorization: Bearer <bearer_token>"  --data '{"role": "creator"}' https://<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>

    输出示例

    {"name": "example_team", "description": "", "can_view": true, "role": "creator", "avatar": {"name": "example_team", "hash": "dec209fd7312a2284b689d4db3135e2846f27e0f40fa126776a0ce17366bc989", "color": "#e7ba52", "kind": "team"}, "new_team": true}

6.1.3. 使用 UI 管理团队

创建团队后,您可以使用 UI 管理团队成员、设置存储库权限、删除团队或查看有关团队的常规信息。

6.1.3.1. 使用 UI 将用户添加到团队

使用组织的管理特权,您可以在团队中添加用户和机器人帐户。当您添加用户时,Red Hat Quay 会向该用户发送电子邮件。用户保持待定,直到他们接受邀请。

使用以下步骤将用户或机器人帐户添加到团队中。

流程

  1. 在 Red Hat Quay 登录页面中,点击您的机构的名称。
  2. 在导航窗格中,单击 Teams 和 Membership
  3. 选择您要将用户添加到的团队中的菜单 kebab。然后,单击 Manage team members
  4. 单击 Add new member
  5. 在文本框中输入以下信息:

    • 来自 registry 帐户的用户名。
    • registry 中用户帐户的电子邮件地址。
    • 机器人帐户的名称。名称必须采用 <organization_name>+<robot_name> 的形式。

      注意

      机器人帐户会立即添加到团队。对于用户帐户,加入的邀请由用户发送。在用户接受该邀请之前,用户会一直处于 INVITED TO JOIN 状态。用户接受加入团队的电子邮件邀请后,他们会从 INVITED TO JOIN 列表移到机构的 MEMBERS 列表。

  6. 单击添加成员

6.1.3.2. 使用 UI 设置团队角色

创建团队后,您可以在机构中设置该团队的角色。

先决条件

  • 您已创建了一个团队。

流程

  1. 在 Red Hat Quay 登录页面中,点击您的机构的名称。
  2. 在导航窗格中,单击 Teams 和 Membership
  3. 选择 TEAM ROLE 下拉菜单,如下图所示:

    Set the role that a team has within an organization

  4. 对于所选团队,请选择以下角色之一:

    • 管理.对组织的完全管理访问权限,包括创建团队、添加成员和设置权限的能力。
    • 成员 :继承为团队设置的所有权限。
    • 创建者.所有成员权限,以及创建新存储库的功能。
6.1.3.2.1. 管理团队成员和存储库权限

使用以下步骤管理团队成员和设置存储库权限。

  • 在机构的 团队和成员资格 页面中,您还可以管理团队成员并设置存储库权限。

    • 点 kebab 菜单,然后选择以下选项之一:
    • 管理团队成员。在此页面上,您可以查看所有成员、团队成员、机器人帐户或被邀请的用户。您还可以通过单击 Add new member 来添加新的团队成员。
    • 设置存储库权限。在这个页面中,您可以将存储库权限设置为以下之一:

      • None。团队成员对存储库没有权限。
      • 读取.团队成员可以从存储库查看和拉取。
      • 写入。团队成员可以从中读取(拉取)并写入(推送)到存储库。
      • 管理.从存储库拉取(pull)和推送到存储库的完整访问权限以及执行与存储库关联的管理任务的能力。
    • 删除。此弹出窗口允许您单击 Delete 来删除团队。
6.1.3.2.2. 查看团队的附加信息

使用以下步骤查看有关团队的一般信息。

流程

  • 在机构的 Teams 和 membership 页面中,您可以点击以下选项之一来显示团队、成员和协作器的更多信息:

    • 团队查看.此菜单显示所有团队名称、成员数量、存储库数量和每个团队的角色。
    • 成员查看.此菜单显示团队成员的所有用户名,即用户的存储库权限团队。
    • collaborators View.此菜单显示存储库协作器。collaborators 是不属于该机构中的任何团队的用户,但对属于该组织的一个或多个存储库具有直接权限。

6.1.4. 使用 Red Hat Quay API 管理团队

创建团队后,您可以使用 API 来获取有关团队权限或团队成员、添加、更新或删除团队成员(包括电子邮件)的信息,或删除机构团队。

以下流程演示了如何使用 Red Hat Quay API 管理团队。

6.1.4.1. 使用 API 管理团队成员和存储库权限

使用以下步骤将成员添加到团队(直接邀请或通过电子邮件),或者从团队中删除成员。

先决条件

  • 您已创建了 OAuth 访问令牌
  • 您已在 config.yaml 文件中设置了 BROWSER_API_CALLS_XHR_ONLY: false

流程

  • 输入 PUT /api/v1/organization/{orgname}/team/{teamname}/members/{membername} 命令,将成员添加到现有团队中:

    $ curl -X PUT \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/members/<member_name>"

    输出示例

    {"name": "testuser", "kind": "user", "is_robot": false, "avatar": {"name": "testuser", "hash": "d51d17303dc3271ac3266fb332d7df919bab882bbfc7199d2017a4daac8979f0", "color": "#5254a3", "kind": "user"}, "invited": false}

  • 输入 DELETE /api/v1/organization/{orgname}/team/{teamname}/members/{membername} 命令删除团队的成员:

    $ curl -X DELETE \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/members/<member_name>"

    此命令不会在 CLI 中输出。为确保成员已被删除,您可以输入 GET /api/v1/organization/{orgname}/team/{teamname}/members 命令,并确保输出中不会返回成员。

    $ curl -X GET \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/members"

    输出示例

    {"name": "owners", "members": [{"name": "quayadmin", "kind": "user", "is_robot": false, "avatar": {"name": "quayadmin", "hash": "b28d563a6dc76b4431fc7b0524bbff6b810387dac86d9303874871839859c7cc", "color": "#17becf", "kind": "user"}, "invited": false}, {"name": "test-org+test", "kind": "user", "is_robot": true, "avatar": {"name": "test-org+test", "hash": "aa85264436fe9839e7160bf349100a9b71403a5e9ec684d5b5e9571f6c821370", "color": "#8c564b", "kind": "robot"}, "invited": false}], "can_edit": true}

  • 您可以输入 PUT /api/v1/organization/{orgname}/team/{teamname}/invite/{email} 命令以通过电子邮件地址向现有团队邀请用户:

    $ curl -X PUT \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/invite/<email>"
  • 您可以输入 DELETE /api/v1/organization/{orgname}/team/{teamname}/invite/{email} 命令来删除电子邮件地址邀请来加入团队。例如:

    $ curl -X DELETE \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/invite/<email>"

6.1.4.2. 使用 API 设置机构中团队的角色

使用以下步骤使用 API 查看和设置团队。

先决条件

  • 您已创建了 OAuth 访问令牌
  • 您已在 config.yaml 文件中设置了 BROWSER_API_CALLS_XHR_ONLY: false

流程

  1. 输入以下 GET /api/v1/organization/{orgname}/team/{teamname}/permissions 命令,为机构的团队返回存储库权限列表。请注意,您的团队必须已添加到存储库中才能返回信息。

    $ curl -X GET \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/permissions"

    输出示例

    {"permissions": [{"repository": {"name": "api-repo", "is_public": true}, "role": "admin"}]}

  2. 您可以使用 PUT /api/v1/organization/{orgname}/team/{teamname} 命令,在组织内创建或更新团队,使其具有 adminmembercreator 角色。例如:

    $ curl -X PUT \
      -H "Authorization: Bearer <your_access_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "role": "<role>"
      }' \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>"

    输出示例

    {"name": "testteam", "description": "", "can_view": true, "role": "creator", "avatar": {"name": "testteam", "hash": "827f8c5762148d7e85402495b126e0a18b9b168170416ed04b49aae551099dc8", "color": "#ff7f0e", "kind": "team"}, "new_team": false}

6.1.4.3. 使用 API 删除机构中的团队

使用以下步骤使用 API 删除机构中的团队。

先决条件

  • 您已创建了 OAuth 访问令牌
  • 您已在 config.yaml 文件中设置了 BROWSER_API_CALLS_XHR_ONLY: false

流程

  • 您可以通过输入 DELETE /api/v1/organization/{orgname}/team/{teamname} 命令删除机构中的团队:

    $ curl -X DELETE \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>"

    此命令不会在 CLI 中返回输出。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.