4.5. カタログの作成
カタログ管理者は、OpenShift Container Platform 上の Operator Lifecycle Manager (OLM) v1 で使用するために、ファイルベースのカタログ形式で新しいカタログを作成できます。
4.5.1. ファイルベースのカタログイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
opm CLI を使用して、非推奨の SQLite データベース形式を置き換えるプレーンテキストの ファイルベースのカタログ 形式 (JSON または YAML) を使用するカタログイメージを作成できます。
前提条件
-
opmCLI がインストールされている。 -
podmanバージョン 1.9.3 以降がある。 - バンドルイメージがビルドされ、Docker v2-2 をサポートするレジストリーにプッシュされている。
手順
カタログを初期化します。
次のコマンドを実行して、カタログ用のディレクトリーを作成します。
$ mkdir <catalog_dir>opm generate dockerfileコマンドを実行して、カタログイメージを構築できる Dockerfile を生成します。$ opm generate dockerfile <catalog_dir> \ -i registry.redhat.io/openshift4/ose-operator-registry-rhel9:v5.0+
-iフラグを使用して公式の Red Hat ベースイメージを指定します。それ以外の場合、Dockerfile はデフォルトのアップストリームイメージを使用します。Dockerfile は、直前の手順で作成したカタログディレクトリーと同じ親ディレクトリーに存在する必要があります。
ディレクトリー構造の例
. ├── <catalog_dir> └── <catalog_dir>.Dockerfile各項目の説明:
.- 親ディレクトリーを指定します。
<catalog_dir>- カタログディレクトリーを指定します。
<catalog_dir>.Dockerfile-
opm generate dockerfileコマンドによって生成された Dockerfile を指定します。
opm initコマンドを実行して、カタログに Operator のパッケージ定義を追加します。$ opm init <operator_name> \ --default-channel=preview \ --description=./README.md \ --icon=./operator-icon.svg \ --output yaml \ > <catalog_dir>/index.yaml-
<operator_name>変数は、Operator またはパッケージ名に置き換えます。 -
--default-channelフラグは、指定がない場合にサブスクリプションがデフォルトで使用するチャネルを指定します。 -
--descriptionフラグは、Operator のREADME.mdまたはその他のドキュメントへのパスを指定します。 -
--iconフラグは、Operator のアイコンへのパスを指定します。 -
--outputフラグは出力形式を指定します。JSONまたはYAMLは有効な値です。 <catalog_dir>変数は、カタログ設定ファイルを作成するためのパスに置き換えます。このコマンドは、指定されたカタログ設定ファイルに
olm.package宣言型設定 blob を生成します。
-
opm renderコマンドを実行して、バンドルをカタログに追加します。$ opm render <registry>/<namespace>/<bundle_image_name>:<tag> \ --output=yaml \ >> <catalog_dir>/index.yaml各項目の説明:
- <registry>/<namespace>/<bundle_image_name>:<tag>
- バンドルイメージのプル仕様を指定します。
- <catalog_dir>/index.yaml
カタログ設定ファイルへのパスを指定します。
注記チャネルには、1 つ以上のバンドルが含まれる必要があります。
バンドルのチャネルエントリーを追加します。たとえば、次の例を仕様に合わせて変更し、
<catalog_dir>/index.yamlファイルに追加します。チャネルエントリーの例
--- schema: olm.channel package: <operator_name> name: preview entries: - name: <operator_name>.v0.1.0バージョン情報の指定時には、
<operator_name>変数の直後かつ `v` の直前に、ピリオド (.) を必ず含めます。それ以外の場合、エントリーがopm validateコマンドに合格できません。ファイルベースのカタログを検証します。
カタログディレクトリーに対して
opm validateコマンドを実行します。$ opm validate <catalog_dir>エラーコードが
0であることを確認します。$ echo $?出力例
0
podman buildコマンドを実行して、カタログイメージをビルドします。$ podman build . \ -f <catalog_dir>.Dockerfile \ -t <registry>/<namespace>/<catalog_image_name>:<tag>カタログイメージをレジストリーにプッシュします。
必要に応じて、
podman loginコマンドを実行してターゲットレジストリーで認証します。$ podman login <registry>podman pushコマンドを実行して、カタログイメージをプッシュします。$ podman push <registry>/<namespace>/<catalog_image_name>:<tag>