搜索

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

6.1.2. 使用 API 创建团队

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

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

先决条件

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

流程

  1. 输入以下命令为您的机构创建一个团队:

    $ ------------------------------
    $ 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。团队成员没有对存储库的权限。
      • 阅读。团队成员可以从存储库查看和拉取。
      • 写入。团队成员可以从存储库读取(拉取)并写入(推送)到存储库。
      • 管理员.从存储库拉取和推送到存储库的完整访问权限,以及执行与存储库关联的管理任务。
    • 删除。此弹出窗口允许您通过单击 Delete 来删除团队。
6.1.3.2.2. 查看团队的附加信息

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

流程

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

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

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. 输入以下命令返回机构团队的存储库权限列表。请注意,您的团队必须已添加到存储库中才能返回信息。

    $ 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. 您可以在机构中创建或更新团队,使其具有指定的 admin 角色、成员创建者。例如:

    $ 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.