7.6. API を使用してミラー組織を作成する
API を使用して Red Hat Quay にミラー組織を作成するには、curl と OAuth ベアラートークンを使用して、組織ミラー API エンドポイントに HTTP リクエストを送信します。ミラー設定の作成と更新、設定とミラーリングされたリポジトリーの読み取り、同期の開始またはキャンセル、外部レジストリーの検証、およびセットアップの削除を行うことができます。
すでにリポジトリーが存在する既存の組織では、組織レベルのミラーリングを設定することはできません。ミラーリング対象として特化した組織を作成し、その組織内のすべてのリポジトリーはミラーリング設定によってのみ管理されるようにする必要があります。
前提条件
- 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エンドポイントを使用します。$ 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 に出力を返しません。