7.4. OLM 1.0 でのプレーンバンドルの管理 (テクノロジープレビュー)
Operator Lifecycle Manager (OLM) 1.0 では、プレーンバンドル は YAML 形式の任意の Kubernetes マニフェストの静的コレクションです。olm.bundle スキーマオブジェクトの実験的な olm.bundle.mediatype プロパティーは、プレーンバンドル (plain+v0) と通常の (registry+v1) バンドルを区別します。
OLM 1.0 は、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
クラスター管理者は、次の手順を実行することで、プレーンバンドルイメージを含むファイルベースのカタログを構築して公開できます。
- プレーンなバンドルイメージを構築します。
- ファイルベースのカタログを作成します。
- プレーンバンドルイメージをファイルベースのカタログに追加します。
- カタログをイメージとして作成します。
- カタログイメージを公開します。
7.4.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
cluster-adminパーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。注記OpenShift Container Platform 4.15 では、OLM 1.0 に関する手順書が CLI ベースのものに限られています。別の方法として、管理者は、Import YAML ページや Search ページなどの通常の方法を使用して、Web コンソールで関連オブジェクトを作成および表示することもできます。ただし、既存の OperatorHub および Installed Operators ページに OLM 1.0 コンポーネントはまだ表示されません。
クラスターで有効になっている
TechPreviewNoUpgrade機能セット。警告TechPreviewNoUpgrade機能セットを有効にすると元に戻すことができなくなり、マイナーバージョンの更新ができなくなります。これらの機能セットは、実稼働クラスターでは推奨されません。-
OpenShift CLI (
oc) がワークステーションにインストールされている。 -
opmCLI がワークステーションにインストールされている。 - Docker または Podman がワークステーションにインストールされている。
- Quay などのコンテナーレジストリーへのプッシュアクセス
プロジェクトのルートにあるフラットディレクトリー内に、次の構造のような Kubernetes マニフェストがある。
ディレクトリー構造の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.4.2. イメージソースからプレーンバンドルイメージを構築する リンクのコピーリンクがクリップボードにコピーされました!
Operator Controller は現在、プレーンバンドルイメージ からのみ作成されたプレーンバンドルのインストールをサポートしています。
手順
プロジェクトのルートで、バンドルイメージを構築できる Dockerfile を作成します。
plainbundle.Dockerfileの例FROM scratch ADD manifests /manifests
FROM scratch1 ADD manifests /manifestsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- イメージのサイズを小さくするには、
FROM scratchディレクティブを使用します。バンドルイメージには他のファイルやディレクトリーは必要ありません。
次の例のように、任意のビルドツールを使用して Open Container Initiative (OCI) 準拠のイメージをビルドします。
podman build -f plainbundle.Dockerfile -t \ quay.io/<organization_name>/<repository_name>:<image_tag> .$ podman build -f plainbundle.Dockerfile -t \ quay.io/<organization_name>/<repository_name>:<image_tag> .1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- プッシュアクセス権限があるリポジトリーを参照するイメージタグを使用します。
次のコマンドを実行して、イメージをリモートレジストリーにプッシュします。
podman push quay.io/<organization_name>/<repository_name>:<image_tag>
$ podman push quay.io/<organization_name>/<repository_name>:<image_tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.4.3. ファイルベースのカタログの作成 リンクのコピーリンクがクリップボードにコピーされました!
ファイルベースのカタログがない場合は、次の手順を実行してカタログを初期化する必要があります。
手順
次のコマンドを実行して、カタログ用のディレクトリーを作成します。
mkdir <catalog_dir>
$ mkdir <catalog_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前の手順と同じディレクトリーレベルで
opm generate dockerfileコマンドを実行して、カタログイメージを構築できる Dockerfile を生成します。opm generate dockerfile <catalog_dir> \ -i registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4.15 -i registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4.15$ opm generate dockerfile <catalog_dir> \ -i registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4.151 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
-iフラグを使用して公式の Red Hat ベースイメージを指定します。それ以外の場合、Dockerfile はデフォルトのアップストリームイメージを使用します。
注記生成された Dockerfile は、直前の手順で作成したカタログディレクトリーと同じ親ディレクトリーに存在する必要があります。
ディレクトリー構造の例
. ├── <catalog_dir> └── <catalog_dir>.Dockerfile
. ├── <catalog_dir> └── <catalog_dir>.DockerfileCopy to Clipboard Copied! Toggle word wrap Toggle overflow opm initコマンドを実行して、カタログに拡張機能のパッケージ定義を追加します。opm init <extension_name> \ --output json \ > <catalog_dir>/index.json$ opm init <extension_name> \ --output json \ > <catalog_dir>/index.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、指定されたカタログ設定ファイルに
olm.package宣言型設定 blob を生成します。
7.4.4. ファイルベースのカタログへのプレーンバンドルの追加 リンクのコピーリンクがクリップボードにコピーされました!
opm render コマンドは、カタログへのプレーンバンドルの追加をサポートしていません。次の手順に示すように、プレーンバンドルをファイルベースのカタログに手動で追加する必要があります。
手順
カタログの
index.jsonまたはindex.yamlファイルが、次の例のようになっていることを確認します。<catalog_dir>/index.jsonファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow olm.bundleブロブを作成するには、次の例のように、index.jsonまたはindex.yamlファイルを編集します。olm.bundleブロブを含む<catalog_dir>/index.jsonファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow olm.channelブロブを作成するには、次の例のように、index.jsonまたはindex.yamlファイルを編集します。olm.channelブロブを含む<catalog_dir>/index.jsonファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
index.jsonまたはindex.yamlファイルを開き、次の例のようになっていることを確認します。<catalog_dir>/index.jsonファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してカタログを検証します。
opm validate <catalog_dir>
$ opm validate <catalog_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.4.5. ファイルベースのカタログの構築と公開 リンクのコピーリンクがクリップボードにコピーされました!
手順
次のコマンドを実行して、ファイルベースのカタログをイメージとしてビルドします。
podman build -f <catalog_dir>.Dockerfile -t \ quay.io/<organization_name>/<repository_name>:<image_tag> . quay.io/<organization_name>/<repository_name>:<image_tag> .$ podman build -f <catalog_dir>.Dockerfile -t \ quay.io/<organization_name>/<repository_name>:<image_tag> .Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、カタログイメージをプッシュします。
podman push quay.io/<organization_name>/<repository_name>:<image_tag>
$ podman push quay.io/<organization_name>/<repository_name>:<image_tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow