14.2. Red Hat Quay UI を使用した名前空間の自動プルーニングポリシーの管理
名前空間の自動プルーニングポリシーは、Red Hat Quay UI v2 を使用して作成します。これは、自動プルーニング機能と v2 UI を有効にするように Red Hat Quay の config.yaml
ファイルを設定した後に実行できます。
この機能は、Red Hat Quay レガシー UI を使用している場合には使用できません。
14.2.1. Red Hat Quay 名前空間の自動プルーニング機能の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay の config.yaml
ファイルを設定し、名前空間の自動プルーニング機能を有効にするには、次の手順を実行します。
前提条件
-
config.yaml
ファイルでFEATURE_UI_V2
をtrue
に設定している。
手順
Red Hat Quay の
config.yaml
ファイルに、FEATURE_AUTO_PRUNE
環境変数を追加してTrue
に設定します。以下に例を示します。# ... FEATURE_AUTO_PRUNE: true # ...
# ... FEATURE_AUTO_PRUNE: true # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.2.2. Red Hat Quay v2 UI を使用した自動プルーニングポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay UI v2 を使用して自動プルーニングポリシーを作成するには、次の手順を実行します。
前提条件
-
FEATURE_AUTO_PRUNE
機能を有効にしている。
手順
自動プルーニングが有効なリポジトリーにプッシュする 4 つのサンプルイメージ (
busybox
など) にタグを付けます。以下に例を示します。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:test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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:test2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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:test3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow podman tag docker.io/library/busybox <quay-server.example.com>/<quayadmin>/busybox:test4
$ podman tag docker.io/library/busybox <quay-server.example.com>/<quayadmin>/busybox:test4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、4 つのサンプルイメージ (
busybox
など) を自動プルーニングが有効なリポジトリーにプッシュします。podman push <quay-server.example.com>/quayadmin/busybox:test
$ podman push <quay-server.example.com>/quayadmin/busybox:test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow podman push <quay-server.example.com>/<quayadmin>/busybox:test2
$ podman push <quay-server.example.com>/<quayadmin>/busybox:test2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow podman push <quay-server.example.com>/<quayadmin>/busybox:test3
$ podman push <quay-server.example.com>/<quayadmin>/busybox:test3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow podman push <quay-server.example.com>/<quayadmin>/busybox:test4
$ podman push <quay-server.example.com>/<quayadmin>/busybox:test4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - リポジトリーに 4 つのタグがあることを確認します。
- Red Hat Quay UI v2 のナビゲーションペインで Organizations をクリックします。
-
自動プルーニング機能を適用する組織の名前を選択します (例:
test_organization
)。 - Settings をクリックします。
Auto-Prune Policies をクリックします。以下に例を示します。
- ドロップダウンメニューをクリックして、目的のポリシー (By number of tags など) を選択します。
- 保持するタグの数を選択します。デフォルトでは、これは 20 タグに設定されています。この例では、保持するタグの数は 3 に設定されています。
Save をクリックします。Successfully updated auto-prune policy というアラートが表示されます。
検証
リポジトリーの Tags ページに移動します。数分後、自動プルーナーワーカーが、設定した基準に適合しないタグを削除します。この例では、
busybox:test
タグを削除し、busybox:test2
タグ、busybox:test3
タグ、およびbusybox:test4
タグを保持します。タグは自動的にプルーニングされると、Red Hat Quay タイムマシン期間に移行します。この期間は、タグが削除されてからガベージコレクションが行われるまでの、タグにアクセスできる期間を指します。イメージタグの有効期限は、組織の設定によって異なります。詳細は、Red Hat Quay ガベージコレクション を参照してください。
14.2.3. Red Hat Quay API を使用した自動プルーニングポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay API エンドポイントを使用して、組織の自動プルーニングポリシーを管理できます。
前提条件
-
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 '{
$ 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/<quayadmin>/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/<quayadmin>/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 重複したポリシーを作成しようとすると、次のエラーが返されます。
{"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}
{"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}
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/<quayadmin>/autoprunepolicy/
$ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/organization/<quayadmin>/autoprunepolicy/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
{"policies": [{"uuid": "73d64f05-d587-42d9-af6d-e726a4a80d6e", "method": "creation_date", "value": "7d"}]}
{"policies": [{"uuid": "73d64f05-d587-42d9-af6d-e726a4a80d6e", "method": "creation_date", "value": "7d"}]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力すると、自動プルーニングポリシーを削除できます。
curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/organization/<quayadmin>/autoprunepolicy/
$ curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/organization/<quayadmin>/autoprunepolicy/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.2.4. 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 '{
$ 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/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 または、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 {"uuid": "8c03f995-ca6f-4928-b98d-d75ed8c14859", "method": "number_of_tags", "value": 10}
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