16.3. アノテーション解析
一部の OCI メディアタイプではラベルが使用されないために、有効期限のタイムスタンプなどの重要な情報が含まれません。Red Hat Quay は、このようなメタデータ転送用のラベルを含まない OCI メディアタイプに対応するために、アノテーションを介して渡されるメタデータをサポートしています。ORAS (OCI Registry as Storage) などのツールを使用して、アーティファクトタイプに情報を埋め込むことができるようになり、失効などのイメージの適切な動作を確実に実行しやすくなりました。
次の手順では、ORAS を使用して OCI メディアアーティファクトに有効期限を追加します。
podman push
でイメージをプッシュしてから、oras
でアノテーションを追加すると、MIME タイプが変更されます。これにより、Podman がその MIME タイプを認識しなくなるため、podman pull
を使用して同じイメージをプルできなくなります。
前提条件
-
oras
CLI をダウンロードした。詳細は、Installation を参照してください。 - OCI メディアアーティファクトを Red Hat Quay リポジトリーにプッシュした。
手順
デフォルトでは、
application/vnd.oci.image.manifest.v1+json
などの一部の OCI メディアタイプは、有効期限のタイムスタンプなど、特定のラベルを使用しません。ORAS (oras
) などの CLI ツールを使用して、OCI メディアタイプにアノテーションを追加できます。以下に例を示します。$ oras push --annotation "quay.expires-after=2d" \ 1 --annotation "expiration = 2d" \ 2 quay.io/<organization_name>/<repository>/<image_name>:<tag>
出力例
✓ Exists application/vnd.oci.empty.v1+json 2/2 B 100.00% 0s └─ sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a ✓ Uploaded application/vnd.oci.image.manifest.v1+json 561/561 B 100.00% 511ms └─ sha256:9b4f2d43b62534423894d077f0ff0e9e496540ec8b52b568ea8b757fc9e7996b Pushed [registry] quay.io/stevsmit/testorg3/oci-image:v1 ArtifactType: application/vnd.unknown.artifact.v1 Digest: sha256:9b4f2d43b62534423894d077f0ff0e9e496540ec8b52b568ea8b757fc9e7996b
検証
oras
でイメージをプルします。以下に例を示します。$ oras pull quay.io/<organization_name>/<repository>/<image_name>:<tag>
oras
を使用して変更を検査します。以下に例を示します。$ oras manifest fetch quay.io/<organization_name>/<repository>/<image_name>:<tag>
出力例
{"schemaVersion":2,"mediaType":"application/vnd.oci.image.manifest.v1+json","artifactType":"application/vnd.unknown.artifact.v1","config":{"mediaType":"application/vnd.oci.empty.v1+json","digest":"sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a","size":2,"data":"e30="},"layers":[{"mediaType":"application/vnd.oci.empty.v1+json","digest":"sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a","size":2,"data":"e30="}],"annotations":{"org.opencontainers.image.created":"2024-07-11T15:22:42Z","version ":" 8.11"}}