6.12. 使用 Red Hat Quay API 管理自动修剪策略
可以使用 Red Hat Quay API 为机构、存储库和用户创建、检索、更改和删除自动修剪策略。
流程
输入以下命令使用
POST /api/v1/repository
端点创建存储库:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"namespace": "quayadmin", "name": "<new_repository_name>", "kind": "image"}
{"namespace": "quayadmin", "name": "<new_repository_name>", "kind": "image"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用
GET /api/v1/repository
端点列出存储库。例如:curl -X GET \ -H "Authorization: Bearer <ACCESS_TOKEN>" \ "https://quay-server.example.com/api/v1/repository?public=true&starred=false&namespace=<NAMESPACE>"
$ curl -X GET \ -H "Authorization: Bearer <ACCESS_TOKEN>" \ "https://quay-server.example.com/api/v1/repository?public=true&starred=false&namespace=<NAMESPACE>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"repositories": [{"namespace": "quayadmin", "name": "busybox", "description": null, "is_public": false, "kind": "image", "state": "MIRROR", "is_starred": false, "quota_report": {"quota_bytes": 2280675, "configured_quota": 2199023255552}}]}
{"repositories": [{"namespace": "quayadmin", "name": "busybox", "description": null, "is_public": false, "kind": "image", "state": "MIRROR", "is_starred": false, "quota_report": {"quota_bytes": 2280675, "configured_quota": 2199023255552}}]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过
POST /api/v1/repository/{repository}/changevisibility
端点,可以将可见性从公共改为私有:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"success": true}
{"success": true}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以检查 Red Hat Quay UI,或者您可以输入以下
GET /api/v1/repository/{repository}
命令来返回有关存储库的详情:curl -X GET -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
$ curl -X GET -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"detail": "Not Found", "error_message": "Not Found", "error_type": "not_found", "title": "not_found", "type": "http://quay-server.example.com/api/v1/error/not_found", "status": 404}
{"detail": "Not Found", "error_message": "Not Found", "error_type": "not_found", "title": "not_found", "type": "http://quay-server.example.com/api/v1/error/not_found", "status": 404}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 存储库描述可以使用
PUT /api/v1/repository/{repository}
端点更新:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"success": true}
{"success": true}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令使用
DELETE /api/v1/repository/{repository}
端点删除存储库:curl -X DELETE -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
$ curl -X DELETE -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令不会在 CLI 中返回输出。
6.12.1. 使用 Red Hat Quay API 为命名空间创建一个自动修剪策略 复制链接链接已复制到粘贴板!
您可以使用 Red Hat Quay API 端点来管理命名空间自动运行策略。
先决条件
-
您已在
config.yaml
文件中设置了BROWSER_API_CALLS_XHR_ONLY: false
。 - 您已创建了 OAuth 访问令牌。
- 已登陆到 Red Hat Quay。
流程
输入以下
POST /api/v1/organization/{orgname}/autoprunepolicy/
命令,创建一个新策略来限制机构中允许的标签数: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": "number_of_tags", "value": 10}' http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,您可以在创建日期后将标签设置为在指定时间过期:
curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{
$ 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/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"uuid": "73d64f05-d587-42d9-af6d-e726a4a80d6e"}
{"uuid": "73d64f05-d587-42d9-af6d-e726a4a80d6e"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选。您可以将额外策略添加到机构中,并传递
tagPattern
和tagPatternMatches
字段,以仅修剪与给定 regex 模式匹配的标签。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
tagPatternMatches
设置为true
会导致修剪与给定正则表达式模式匹配的标签。在本例中,与^v*
匹配的标签会被修剪。
输出示例
{"uuid": "ebf7448b-93c3-4f14-bf2f-25aa6857c7b0"}
{"uuid": "ebf7448b-93c3-4f14-bf2f-25aa6857c7b0"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用
PUT /api/v1/organization/{orgname}/autoprunepolicy/{policy_uuid}
命令更新机构的自动修剪策略。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令不返回输出。继续下一步。
输入以下命令检查自动修剪策略:
curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/
$ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"policies": [{"uuid": "ebf7448b-93c3-4f14-bf2f-25aa6857c7b0", "method": "creation_date", "value": "4d", "tagPattern": "^v*", "tagPatternMatches": true}, {"uuid": "da4d0ad7-3c2d-4be8-af63-9c51f9a501bc", "method": "number_of_tags", "value": 10, "tagPattern": null, "tagPatternMatches": true}, {"uuid": "17b9fd96-1537-4462-a830-7f53b43f94c2", "method": "creation_date", "value": "7d", "tagPattern": "^v*", "tagPatternMatches": true}]}
{"policies": [{"uuid": "ebf7448b-93c3-4f14-bf2f-25aa6857c7b0", "method": "creation_date", "value": "4d", "tagPattern": "^v*", "tagPatternMatches": true}, {"uuid": "da4d0ad7-3c2d-4be8-af63-9c51f9a501bc", "method": "number_of_tags", "value": 10, "tagPattern": null, "tagPatternMatches": true}, {"uuid": "17b9fd96-1537-4462-a830-7f53b43f94c2", "method": "creation_date", "value": "7d", "tagPattern": "^v*", "tagPatternMatches": true}]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以输入以下命令来删除您的机构的自动修剪策略。请注意,删除策略需要 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
$ curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/73d64f05-d587-42d9-af6d-e726a4a80d6e
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.12.2. 使用 API 为当前用户创建一个命名空间自动修剪策略 复制链接链接已复制到粘贴板!
您可以使用 Red Hat Quay API 端点来管理您的帐户自动运行策略。
以下命令中使用 /user/
代表当前登录到 Red Hat Quay 的用户。
先决条件
-
您已在
config.yaml
文件中设置了BROWSER_API_CALLS_XHR_ONLY: false
。 - 您已创建了 OAuth 访问令牌。
- 已登陆到 Red Hat Quay。
流程
输入以下
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/
$ 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/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"uuid": "8c03f995-ca6f-4928-b98d-d75ed8c14859"}
{"uuid": "8c03f995-ca6f-4928-b98d-d75ed8c14859"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令检查自动修剪策略:
curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/user/autoprunepolicy/
$ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/user/autoprunepolicy/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,您可以包含 UUID:
curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/user/autoprunepolicy/8c03f995-ca6f-4928-b98d-d75ed8c14859
$ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/user/autoprunepolicy/8c03f995-ca6f-4928-b98d-d75ed8c14859
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"policies": [{"uuid": "8c03f995-ca6f-4928-b98d-d75ed8c14859", "method": "number_of_tags", "value": 10}]}
{"policies": [{"uuid": "8c03f995-ca6f-4928-b98d-d75ed8c14859", "method": "number_of_tags", "value": 10}]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以输入以下命令来删除自动修剪策略。请注意,删除策略需要 UUID。
curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/user/autoprunepolicy/8c03f995-ca6f-4928-b98d-d75ed8c14859
$ curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/user/autoprunepolicy/8c03f995-ca6f-4928-b98d-d75ed8c14859
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"uuid": "8c03f995-ca6f-4928-b98d-d75ed8c14859"}
{"uuid": "8c03f995-ca6f-4928-b98d-d75ed8c14859"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.12.3. 使用 Red Hat Quay API 为存储库创建自动修剪策略 复制链接链接已复制到粘贴板!
您可以使用 Red Hat Quay API 端点来管理存储库自动运行策略。
先决条件
-
您已在
config.yaml
文件中设置了BROWSER_API_CALLS_XHR_ONLY: false
。 - 您已创建了 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": "number_of_tags","value": 2}' http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,您可以在创建日期后将标签设置为在指定时间过期:
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/
$ 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/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7"}
{"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选。您可以添加额外的策略,并在
tagPattern
和tagPatternMatches
字段中传递,以仅修剪与给定 regex 模式匹配的标签。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
tagPatternMatches
设置为false
会导致所有与给定正则表达式模式匹配的标签都会被修剪。在本例中,除^test
以外的所有 标签都会被修剪。
输出示例
{"uuid": "b53d8d3f-2e73-40e7-96ff-736d372cd5ef"}
{"uuid": "b53d8d3f-2e73-40e7-96ff-736d372cd5ef"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用
PUT /api/v1/repository/{repository}/autoprunepolicy/{policy_uuid}
命令为存储库更新您的策略,并传递 UUID。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令不返回输出。继续下一步,以检查您的自动修剪策略。
输入以下命令检查自动修剪策略:
curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/
$ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,您可以包含 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
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"policies": [{"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7", "method": "number_of_tags", "value": 10}]}
{"policies": [{"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7", "method": "number_of_tags", "value": 10}]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以输入以下命令来删除自动修剪策略。请注意,删除策略需要 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
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7"}
{"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.12.4. 在带有 API 的用户的存储库上创建自动修剪策略 复制链接链接已复制到粘贴板!
您可以使用 Red Hat Quay API 端点为不属于您的用户帐户管理存储库上的自动运行策略,只要存储库上具有 admin
权限。
先决条件
-
您已在
config.yaml
文件中设置了BROWSER_API_CALLS_XHR_ONLY: false
。 - 您已创建了 OAuth 访问令牌。
- 已登陆到 Red Hat Quay。
-
在您要为其创建策略的存储库上具有
admin
权限。
流程
输入以下
POST /api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/
命令,创建一个新策略来限制用户的标签数:curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "number_of_tags","value": 2}' https://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/
$ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "number_of_tags","value": 2}' https://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"uuid": "7726f79c-cbc7-490e-98dd-becdc6fefce7"}
{"uuid": "7726f79c-cbc7-490e-98dd-becdc6fefce7"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选。您可以为当前用户添加额外的策略,并传递
tagPattern
和tagPatternMatches
字段,以仅修剪与给定 regex 模式匹配的标签。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"uuid": "b3797bcd-de72-4b71-9b1e-726dabc971be"}
{"uuid": "b3797bcd-de72-4b71-9b1e-726dabc971be"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用
PUT /api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/<policy_uuid>
; 命令为当前用户更新您的策略。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新策略不会在 CLI 中返回输出。
输入以下命令检查自动修剪策略:
curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/
$ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,您可以包含 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
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"uuid": "81ee77ec-496a-4a0a-9241-eca49437d15b", "method": "creation_date", "value": "7d", "tagPattern": "^v*", "tagPatternMatches": true}
{"uuid": "81ee77ec-496a-4a0a-9241-eca49437d15b", "method": "creation_date", "value": "7d", "tagPattern": "^v*", "tagPatternMatches": true}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以输入以下命令来删除自动修剪策略。请注意,删除策略需要 UUID。
curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/<policy_uuid>
$ curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/<policy_uuid>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"uuid": "7726f79c-cbc7-490e-98dd-becdc6fefce7"}
{"uuid": "7726f79c-cbc7-490e-98dd-becdc6fefce7"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow