4.11. OCI 形式でのファイルベースのカタログ Operator イメージのミラーリング
oc-mirror プラグインを使用して、Docker v2 形式ではなく Open Container Initiative (OCI) イメージ形式で Operator をミラーリングできます。Operator イメージをディスク上のファイルベースのカタログに OCI 形式でコピーできます。次に、ローカル OCI イメージをターゲットミラーレジストリーにコピーできます。
oc-mirror プラグインを使用して Operator イメージを OCI 形式でミラーリングすることは、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
OCI 機能を使用している場合、イメージはターゲットミラーレジストリーから自動的にプルーニングされません。
前提条件
- 必要なコンテナーイメージを取得するためのインターネットへのアクセスがある。
-
OpenShift CLI (
oc) がインストールされている。 -
oc-mirrorCLI プラグインをインストールしている。
手順
オプション: 必要なカタログとイメージを取得し、ディスクに保存します。ディスク上に OCI 形式のカタログイメージがすでにある場合は、この手順を省略できます。
イメージセット設定ファイルを作成します。
ディスクにコピーするためのイメージセット設定ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OCI 機能を使用する場合、
mirror.operators.catalog設定のみを使用できます。storageConfig設定は無視され、oc mirrorコマンドに渡された場所が優先されます。oc mirrorコマンドを実行して、指定されたイメージセット設定からディスクにイメージをミラーリングします。oc mirror --config=./imageset-config.yaml \ --use-oci-feature \ --oci-feature-action=copy \ oci://my-oci-catalog
$ oc mirror --config=./imageset-config.yaml \1 --use-oci-feature \2 --oci-feature-action=copy \3 oci://my-oci-catalog4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- イメージセット設定ファイルを渡します。この手順では、
imageset-config.yamlという名前であることを前提としています。 - 2
--use-oci-featureフラグを使用して OCI 機能を有効にします。- 3
- カタログをディスクにコピーするには、
--oci-feature-actionフラグをcopyに設定します。 - 4
- カタログを出力するディスク上のディレクトリーを指定します。この手順では、名前が
my-oci-catalogであることを前提としています。パスはoci://で始まる必要があります。指定されたディレクトリーがフルパスでない場合、ディレクトリーはoc mirrorコマンドが実行される現在の作業ディレクトリーに作成されます。
注記オプションで
--oci-registries-configフラグを使用して、TOML 形式のregistries.confファイルへのパスを指定できます。これを使用して、イメージセット設定ファイルを変更することなく、テスト用の運用前の場所など、別のレジストリーからミラーリングできます。registries.conf ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow registry.mirrorセクションのlocationフィールドを、イメージを取得する別のレジストリーの場所に設定します。registryセクションのlocationフィールドは、イメージセット設定ファイルで指定したものと同じレジストリーの場所である必要があります。ディレクトリーの内容を一覧表示し、次のディレクトリーが作成されたことを確認します。
ls -l
$ ls -lCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
my-oci-catalog oc-mirror-workspace olm_artifacts
my-oci-catalog1 oc-mirror-workspace2 olm_artifacts3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
イメージセット設定ファイルを更新して、ターゲットミラーレジストリーにミラーリングするディスク上のカタログの場所を指定します。
レジストリーをミラーリングするためのイメージセット設定ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ディスク上の OCI カタログの場所への絶対パスを指定します。この手順は、ディレクトリーとして
my-oci-catalogを使用し、redhat-operator-indexカタログをミラーリングしたことを前提としています。パスはoci://で始まる必要があります。
oc mirror コマンドを実行して、ディスク上のイメージセットファイルを処理し、その内容をターゲットミラーレジストリーにミラーリングします。
oc mirror --config=./imageset-config.yaml \ --use-oci-feature \ --oci-feature-action=mirror \ docker://registry.example:5000
$ oc mirror --config=./imageset-config.yaml \1 --use-oci-feature \2 --oci-feature-action=mirror \3 docker://registry.example:50004 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 更新されたイメージセット設定ファイルを渡します。この手順では、
imageset-config.yamlという名前であることを前提としています。 - 2
--use-oci-featureフラグを使用して OCI 機能を有効にします。- 3
- カタログをターゲットミラーレジストリーにミラーリングするには、
--oci-feature-actionフラグをmirrorに設定します。 - 4
- イメージセットファイルをミラーリングするレジストリーを指定します。レジストリーは
docker://で始まる必要があります。ミラーレジストリーに最上位の namespace を指定する場合は、これ以降の実行でもこれと同じ namespace を使用する必要があります。
注記オプションで
--oci-insecure-signature-policyフラグを使用して、署名をターゲットミラーレジストリーにプッシュしないようにすることができます。
次のステップ
- oc-mirror が生成したリソースを使用するようにクラスターを設定します。