15.3.8. 使用 Red Hat Quay API 为存储库创建自动修剪策略
您可以使用 Red Hat Quay API 端点来管理存储库自动运行策略。
先决条件
- 您已创建了 OAuth 访问令牌。
- 已登陆到 Red Hat Quay。
流程
输入以下
POST /api/v1/repository/{repository}/autoprunepolicy/命令,创建一个新策略来限制机构中允许的标签数:$ 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"}可选。您可以添加额外的策略,并在
tagPattern和tagPatternMatches字段中传递,以仅修剪与给定 regex 模式匹配的标签。例如:$ curl -X POST \ -H "Authorization: Bearer <access_token>" \ -H "Content-Type: application/json" \ -d '{ "method": "<creation_date>", "value": "<7d>", "tagPattern": "<^test.>*", "tagPatternMatches": <false>1 }' \ "https://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/"- 1
- 将
tagPatternMatches设置为False会导致所有与给定正则表达式模式匹配的标签都会被修剪。在本例中,除^test以外的所有 标签都会被修剪。输出示例
{"uuid": "b53d8d3f-2e73-40e7-96ff-736d372cd5ef"}
您可以使用
PUT /api/v1/repository/{repository}/autoprunepolicy/{policy_uuid}命令为存储库更新您的策略,并传递 UUID。例如:$ curl -X PUT \ -H "Authorization: Bearer <bearer_token>" \ -H "Content-Type: application/json" \ -d '{ "method": "number_of_tags", "value": "5", "tagPattern": "^test.*", "tagPatternMatches": true }' \ "https://quay-server.example.com/api/v1/repository/<namespace>/<repo_name>/autoprunepolicy/<uuid>"此命令不返回输出。继续下一步,以检查您的自动修剪策略。
输入以下命令检查自动修剪策略:
$ 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}]}您可以输入以下命令来删除自动修剪策略。请注意,删除策略需要 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"}