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.14 の場合、OLM 1.0 の文書化された手順は CLI ベースのみになります。別の方法として、管理者は、Import YAML ページや Search ページなどの通常の方法を使用して、Web コンソールで関連オブジェクトを作成および表示することもできます。ただし、既存の OperatorHub および Installed Operators ページに OLM 1.0 コンポーネントはまだ表示されません。
クラスターで有効になっている
TechPreviewNoUpgrade
機能セット。警告TechPreviewNoUpgrade
機能セットを有効にすると元に戻すことができなくなり、マイナーバージョンの更新ができなくなります。これらの機能セットは、実稼働クラスターでは推奨されません。-
OpenShift CLI (
oc
) がワークステーションにインストールされている。 -
opm
CLI がワークステーションにインストールされている。 - 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 scratch
1 ADD manifests /manifests
Copy 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:v4.14 -i registry.redhat.io/openshift4/ose-operator-registry:v4.14
$ opm generate dockerfile <catalog_dir> \ -i registry.redhat.io/openshift4/ose-operator-registry:v4.14
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
-i
フラグを使用して公式の Red Hat ベースイメージを指定します。それ以外の場合、Dockerfile はデフォルトのアップストリームイメージを使用します。
注記生成された Dockerfile は、直前の手順で作成したカタログディレクトリーと同じ親ディレクトリーに存在する必要があります。
ディレクトリー構造の例
. ├── <catalog_dir> └── <catalog_dir>.Dockerfile
. ├── <catalog_dir> └── <catalog_dir>.Dockerfile
Copy 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.json
Copy 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