2.2. Operator Controller
Operator Controller は、Operator Lifecycle Manager (OLM) v1 の中心的なコンポーネントであり、他の OLM v1 コンポーネント (catalogd) を使用します。Operator Controller は API で Kubernetes を拡張し、これを通してユーザーは Operator や機能拡張をインストールできます。
2.2.1. ClusterExtension API リンクのコピーリンクがクリップボードにコピーされました!
Operator Controller は、インストールされた拡張機能のインスタンスを表す単一のリソースである新しい ClusterExtension API オブジェクトを提供します。これには、registry+v1 バンドル形式を介した Operator などが含まれます。この clusterextension.olm.operatorframework.io API は、ユーザー向け API を 1 つのオブジェクトに統合することで、インストールされた拡張機能の管理を効率化します。
OLM v1 では、ClusterExtension オブジェクトはクラスタースコープです。これは、関連する Subscription および OperatorGroup オブジェクトの設定に応じて、Operator が namespace スコープまたはクラスタースコープのいずれかになる可能性がある OLM (Classic) とは異なります。
以前の動作の詳細は、マルチテナンシーと Operator のコロケーション を参照してください。
ClusterExtension オブジェクトの例
apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
name: <extension_name>
spec:
namespace: <namespace_name>
serviceAccount:
name: <service_account_name>
source:
sourceType: Catalog
catalog:
packageName: <package_name>
channels:
- <channel>
version: "<version>"
2.2.1.1. ターゲットバージョンを指定するカスタムリソース (CR) の例 リンクのコピーリンクがクリップボードにコピーされました!
Operator Lifecycle Manager (OLM) v1 では、クラスター管理者はカスタムリソース (CR) で Operator または拡張機能のターゲットバージョンを宣言的に設定できます。
次のフィールドのいずれかを指定して、ターゲットバージョンを定義できます。
- チャネル
- バージョン番号
- バージョン範囲
CR でチャネルを指定すると、OLM v1 は、指定されたチャネル内で解決できる最新バージョンの Operator または拡張機能をインストールします。指定されたチャネルに更新が公開されると、OLM v1 はそのチャネルから解決できる最新リリースに自動的に更新します。
チャネルを指定した CR の例
apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
name: <clusterextension_name>
spec:
namespace: <installed_namespace>
serviceAccount:
name: <service_account_installer_name>
source:
sourceType: Catalog
catalog:
packageName: <package_name>
channels:
- latest
- 1
- オプション: 指定したチャネルから解決できる最新のリリースをインストールします。チャネルへの更新は自動的にインストールされます。
channelsパラメーターの値を配列として指定します。
CR で Operator または拡張機能のターゲットバージョンを指定すると、OLM v1 は指定されたバージョンをインストールします。CR でターゲットバージョンが指定されている場合、カタログに更新が公開されても OLM v1 はターゲットバージョンを変更しません。
クラスターにインストールされている Operator のバージョンを更新する必要がある場合は、Operator の CR を手動で編集する必要があります。Operator のターゲットバージョンを指定すると、Operator のバージョンが指定されたリリースに固定されます。
ターゲットバージョンを指定した CR の例
apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
name: <clusterextension_name>
spec:
namespace: <installed_namespace>
serviceAccount:
name: <service_account_installer_name>
source:
sourceType: Catalog
catalog:
packageName: <package_name>
version: "1.11.1"
- 1
- オプション: ターゲットバージョンを指定します。インストールされている Operator または拡張機能のバージョンを更新する必要がある場合は、CR のこのフィールドを目的のターゲットバージョンに手動で更新する必要があります。
Operator または拡張機能の許容可能なバージョン範囲を定義する場合は、比較文字列を使用してバージョン範囲を指定できます。バージョン範囲を指定すると、OLM v1 は、Operator Controller で解決できる最新バージョンの Operator または拡張機能をインストールします。
バージョン範囲を指定した CR の例
apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
name: <clusterextension_name>
spec:
namespace: <installed_namespace>
serviceAccount:
name: <service_account_installer_name>
source:
sourceType: Catalog
catalog:
packageName: <package_name>
version: ">1.11.1"
- 1
- オプション: 必要なバージョン範囲が、バージョン
1.11.1より大きいことを指定します。詳細は、「バージョン範囲のサポート」を参照してください。
CR を作成または更新した後、次のコマンドを実行して設定ファイルを適用します。
コマンド構文
$ oc apply -f <extension_name>.yaml