搜索

15.2. 使用 Red Hat Quay UI 管理自动运行策略

download PDF

auto-pruning 策略使用 Red Hat Quay v2 UI 创建。这可以在配置 Red Hat Quay config.yaml 文件后完成,以启用自动运行功能和 v2 UI。

注意

使用 Red Hat Quay 传统 UI 时无法使用此功能。

15.2.1. 配置 Red Hat Quay auto-pruning 功能

使用以下步骤配置 Red Hat Quay config.yaml 文件来启用 auto-pruning 功能。

先决条件

  • 您已在 config.yaml 文件中将 FEATURE_UI_V2 设置为 true

流程

  • 在 Red Hat Quay config.yaml 文件中,添加和设置 FEATURE_AUTO_PRUNE 环境变量为 True。例如:

    # ...
    FEATURE_AUTO_PRUNE: true
    # ...

15.2.2. 使用 Red Hat Quay v2 UI 为命名空间创建自动修剪策略

使用以下步骤,使用 Red Hat Quay v2 UI 为命名空间创建自动修剪策略。

先决条件

  • 您已启用了 FEATURE_AUTO_PRUNE 功能。

流程

  1. 标记四个示例镜像,如 busybox,它将推送到启用了 auto-pruning 的存储库。例如:

    $ podman tag docker.io/library/busybox <quay-server.example.com>/<quayadmin>/busybox:test
    $ podman tag docker.io/library/busybox <quay-server.example.com>/<quayadmin>/busybox:test2
    $ podman tag docker.io/library/busybox <quay-server.example.com>/<quayadmin>/busybox:test3
    $ podman tag docker.io/library/busybox <quay-server.example.com>/<quayadmin>/busybox:test4
  2. 输入以下命令将四个示例镜像(如 busybox )推送到启用了 auto-pruning 的存储库:

    $ podman push <quay-server.example.com>/quayadmin/busybox:test
    $ podman push <quay-server.example.com>/<quayadmin>/busybox:test2
    $ podman push <quay-server.example.com>/<quayadmin>/busybox:test3
    $ podman push <quay-server.example.com>/<quayadmin>/busybox:test4
  3. 检查您的存储库中是否有四个标签。
  4. 在 Red Hat Quay v2 UI 上,单击导航窗格中的 Organizations
  5. 选择您要将 auto-pruning 功能应用到的机构名称,如 test_organization
  6. 单击 Settings
  7. 单击 Auto-Prune Policies。例如:

    Auto-Prune Policies page

  8. 单击下拉菜单并选择所需的策略,例如,按标签数
  9. 选择要保留所需的标签数量。默认情况下,这在 20 个标签中设置。在本例中,要保留的标签数量设置为 3
  10. 点击 Save。此时会出现自动修剪策略的通知。

验证

  • 导航到您组织存储库的 Tags 页面。在本例中,标签标记为从标签最旧的创建日期开始删除。几分钟后,auto-pruner worker 会删除不再在所建立的标准中适合的标签。在本例中,它会删除 busybox:test 标签,并保留 busybox:test2busybox:test3busybox:test4 标签。

    在标签被自动修剪后,它们进入 Red Hat Quay 时间机器,或者在标签被删除前删除标签的时间。镜像标签的过期时间取决于您的机构设置。如需更多信息,请参阅 Red Hat Quay 垃圾回收

15.2.3. 使用 Red Hat Quay API 为命名空间创建自动修剪策略

您可以使用 Red Hat Quay API 端点来管理命名空间的自动修剪策略。

先决条件

  • 您已在 config.yaml 文件中设置 BROWSER_API_CALLS_XHR_ONLY: false
  • 您已创建了 OAuth 访问令牌。
  • 您已登录到 Red Hat Quay。

流程

  1. 输入以下 POST 命令创建一个新策略,该策略限制机构中允许的标签数:

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "number_of_tags", "value": 10}' http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/

    另外,您可以在创建日期后将标签设置为在指定时间过期:

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{
    "method": "creation_date", "value": "7d"}' http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/

    输出示例

    {"uuid": "73d64f05-d587-42d9-af6d-e726a4a80d6e"}

    尝试创建多个策略会返回以下错误:

    {"detail": "Policy for this namespace already exists, delete existing to create new policy", "error_message": "Policy for this namespace already exists, delete existing to create new policy", "error_type": "invalid_request", "title": "invalid_request", "type": "http://<quay-server.example.com>/api/v1/error/invalid_request", "status": 400}
  2. 输入以下命令检查您的自动修剪策略:

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/

    输出示例

    {"policies": [{"uuid": "73d64f05-d587-42d9-af6d-e726a4a80d6e", "method": "creation_date", "value": "7d"}]}

  3. 您可以输入以下命令删除自动修剪策略。请注意,删除策略需要 UUID。

    $ curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/73d64f05-d587-42d9-af6d-e726a4a80d6e

15.2.4. 使用 API 为当前用户为命名空间创建自动修剪策略

您可以使用 Red Hat Quay API 端点来管理帐户的自动修剪策略。

注意

在以下命令中使用 /user/ 代表当前登录到 Red Hat Quay 的用户。

先决条件

  • 您已在 config.yaml 文件中设置 BROWSER_API_CALLS_XHR_ONLY: false
  • 您已创建了 OAuth 访问令牌。
  • 您已登录到 Red Hat Quay。

流程

  1. 输入以下 POST 命令创建一个新策略,该策略限制当前用户的标签数:

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "number_of_tags", "value": 10}' http://<quay-server.example.com>/api/v1/<user>/autoprunepolicy/

    输出示例

    {"uuid": "8c03f995-ca6f-4928-b98d-d75ed8c14859"}

  2. 输入以下命令检查您的自动修剪策略:

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/<user>/autoprunepolicy/8c03f995-ca6f-4928-b98d-d75ed8c14859

    或者,您可以包含 UUID:

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/<user>/autoprunepolicy/

    输出示例

    {"policies": [{"uuid": "8c03f995-ca6f-4928-b98d-d75ed8c14859", "method": "number_of_tags", "value": 10}]}

  3. 您可以输入以下命令删除自动修剪策略。请注意,删除策略需要 UUID。

    $ curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/<user>/autoprunepolicy/8c03f995-ca6f-4928-b98d-d75ed8c14859

    输出示例

    {"uuid": "8c03f995-ca6f-4928-b98d-d75ed8c14859"}

15.2.5. 使用 Red Hat Quay v2 UI 为存储库创建自动修剪策略

使用以下步骤,使用 Red Hat Quay v2 UI 为存储库创建自动修剪策略。

先决条件

  • 您已启用了 FEATURE_AUTO_PRUNE 功能。

流程

  1. 标记四个示例镜像,如 busybox,它将推送到启用了 auto-pruning 的存储库。例如:

    $ podman tag docker.io/library/busybox <quay-server.example.com>/<organization_name>/<repository_name>:test
    $ podman tag docker.io/library/busybox <quay-server.example.com>/<organization_name>/<repository_name>:test2
    $ podman tag docker.io/library/busybox <quay-server.example.com>/<organization_name>/<repository_name>:test3
    $ podman tag docker.io/library/busybox <quay-server.example.com>/<organization_name>/<repository_name>:test4
  2. 输入以下命令将四个示例镜像(如 busybox )推送到启用了 auto-pruning 的存储库:

    $ podman push <quay-server.example.com>/<organization_name>/<repository_name>:test
    $ podman push <quay-server.example.com>/<organization_name>/<repository_name>:test2
    $ podman push <quay-server.example.com>/<organization_name>/<repository_name>:test3
    $ podman push <quay-server.example.com>/<organization_name>/<repository_name>:test4
  3. 检查您的存储库中是否有四个标签。
  4. 在 Red Hat Quay v2 UI 上,单击导航窗格中的 Repository
  5. 选择您要将 auto-pruning 功能应用到的机构名称,例如 < organization_name>/<repository_name>
  6. 单击 Settings
  7. 单击 Repository Auto-Prune Policies
  8. 单击下拉菜单并选择所需的策略,例如,按标签数
  9. 选择要保留所需的标签数量。默认情况下,这在 20 个标签中设置。在本例中,要保留的标签数量设置为 3
  10. 点击 Save。此时会出现自动修剪策略的通知。

验证

  • 导航到您组织存储库的 Tags 页面。在本例中,标签标记为从标签最旧的创建日期开始删除。几分钟后,auto-pruner worker 会删除不再在所建立的标准中适合的标签。在本例中,它会删除 busybox:test 标签,并保留 busybox:test2busybox:test3busybox:test4 标签。

    在标签被自动修剪后,它们进入 Red Hat Quay 时间机器,或者在标签被删除前删除标签的时间。镜像标签的过期时间取决于您的机构设置。如需更多信息,请参阅 Red Hat Quay 垃圾回收

15.2.6. 使用 Red Hat Quay API 为存储库创建自动修剪策略

您可以使用 Red Hat Quay API 端点来管理存储库的自动修剪策略。

先决条件

  • 您已在 config.yaml 文件中设置 BROWSER_API_CALLS_XHR_ONLY: false
  • 您已创建了 OAuth 访问令牌。
  • 您已登录到 Red Hat Quay。

流程

  1. 输入以下 POST 命令创建一个新策略,该策略限制机构中允许的标签数:

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "number_of_tags","value": 2}' http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/

    另外,您可以在创建日期后将标签设置为在指定时间过期:

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "creation_date", "value": "7d"}' http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/

    输出示例

    {"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7"}

    尝试创建多个策略会返回以下错误:

    {"detail": "Policy for this namespace already exists, delete existing to create new policy", "error_message": "Policy for this namespace already exists, delete existing to create new policy", "error_type": "invalid_request", "title": "invalid_request", "type": "http://quay-server.example.com/api/v1/error/invalid_request", "status": 400}
  2. 输入以下命令检查您的自动修剪策略:

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/

    或者,您可以包含 UUID:

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7

    输出示例

    {"policies": [{"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7", "method": "number_of_tags", "value": 10}]}

  3. 您可以输入以下命令删除自动修剪策略。请注意,删除策略需要 UUID。

    $ curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7

    输出示例

    {"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7"}

15.2.7. 使用 API 的用户在存储库上创建自动修剪策略

您可以使用 Red Hat Quay API 端点为非您自己的用户帐户管理存储库上的自动修剪策略,只要存储库具有 admin 特权。

先决条件

  • 您已在 config.yaml 文件中设置 BROWSER_API_CALLS_XHR_ONLY: false
  • 您已创建了 OAuth 访问令牌。
  • 您已登录到 Red Hat Quay。
  • 在您要为其创建策略的存储库上具有 admin 权限。

流程

  1. 输入以下 POST 命令创建一个新策略,该策略限制当前用户的标签数:

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "number_of_tags","value": 2}' http://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/

    输出示例

    {"uuid": "7726f79c-cbc7-490e-98dd-becdc6fefce7"}

  2. 输入以下命令检查您的自动修剪策略:

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/

    或者,您可以包含 UUID:

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/7726f79c-cbc7-490e-98dd-becdc6fefce7

    输出示例

    {"policies": [{"uuid": "7726f79c-cbc7-490e-98dd-becdc6fefce7", "method": "number_of_tags", "value": 2}]}

  3. 您可以输入以下命令删除自动修剪策略。请注意,删除策略需要 UUID。

    $ curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/user/autoprunepolicy/7726f79c-cbc7-490e-98dd-becdc6fefce7

    输出示例

    {"uuid": "7726f79c-cbc7-490e-98dd-becdc6fefce7"}

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.