7.6. 使用 API 创建已镜像的机构
要使用 API 在 Red Hat Quay 中创建镜像机构,您可以使用 curl 和 OAuth bearer 令牌向机构镜像 API 端点发送 HTTP 请求。您可以创建和更新镜像设置,读取配置和已镜像的存储库,启动或取消同步,验证外部 registry,并删除设置。
无法在现有已包含存储库的组织上配置机构级别镜像。必须创建一个专用的机构来充当镜像目标,机构中的所有存储库都专门用于镜像配置。
先决条件
- 您已生成了 OAuth 访问令牌。
流程
使用
POST /api/v1/organization/{orgname}/mirror端点创建一个新的机构级镜像配置:$ curl -X POST "https://<quay-server.example.com>/api/v1/organization/<orgname>/mirror" \ -H "Authorization: Bearer <access_token>" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "external_registry_type": "quay", "external_registry_url": "https://quay.io", "external_namespace": "<external_namespace>", "robot_username": "<orgname>+<robot_account>", "visibility": "private", "sync_interval": 3600, "sync_start_date": "2025-01-01T00:00:00Z", "is_enabled": true }'使用
GET /api/v1/organization/{orgname}/mirror端点来检索机构级镜像配置:$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/organization/<orgname>/mirror输出示例
{"is_enabled": true, "external_registry_type": "quay", "external_registry_url": "http://quay.io", "external_namespace": "test", "external_registry_username": null, "external_registry_config": {}, "repository_filters": [], "robot_username": "example+test", "visibility": "private", "sync_interval": 3600, "sync_start_date": "2025-01-01T00:00:00Z", "sync_expiration_date": null, "sync_status": "NEVER_RUN", "sync_retries_remaining": 3, "skopeo_timeout": 300, "creation_date": "2026-03-09T18:39:21.993431Z"}使用
GET /api/v1/organization/{orgname}/mirror/repositories端点获取要在机构中镜像的存储库列表:$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ "https://<quay-server.example.com>/api/v1/organization/<orgname>/mirror/repositories?page=1&limit=100"输出示例
{"repositories": [], "page": 1, "limit": 100, "total": 0, "has_next": false}使用
POST /api/v1/organization/{orgname}/mirror/sync-now端点来触发机构中所有存储库的立即同步:$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/organization/<orgname>/mirror/sync-now此命令不会在 CLI 中返回输出。
使用
POST /api/v1/organization/{orgname}/mirror/sync-cancel端点取消机构中所有存储库的待处理的同步:$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/organization/<orgname>/mirror/sync-cancel此命令不会在 CLI 中返回输出。
使用
PUT /api/v1/organization/{orgname}/mirror端点来更新机构级镜像配置:$ curl -X PUT \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"is_enabled": true, "sync_interval": 7200}' \ https://<quay-server.example.com>/api/v1/organization/<orgname>/mirror输出示例
" "使用
POST /api/v1/organization/{orgname}/mirror/verify端点来验证与机构级别镜像配置的外部 registry 的连接:$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/organization/<orgname>/mirror/verify输出示例
{"success": false, "message": "Unexpected response: 301"}使用
DELETE /api/v1/organization/{orgname}/mirror端点删除机构级镜像配置:$ curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/organization/<orgname>/mirror此命令不会在 CLI 中返回输出。