2.2. Operator Controller
Operator Controller は、Operator Lifecycle Manager (OLM) v1 の中心的なコンポーネントであり、他の OLM v1 コンポーネント (catalogd) を使用します。これは、ユーザーが Operator や拡張機能をインストールできる API を Kubernetes に追加したものです。
2.2.1. ClusterExtension API リンクのコピーリンクがクリップボードにコピーされました!
OLM v1 でインストール済みの拡張機能を管理するには、ClusterExtension API を使用します。この統合 API は、複数の OLM (Classic) オブジェクトを、クラスタースコープの単一リソースに置き換えることで、拡張機能の管理を単純化します。
OLM v1 では、ClusterExtension オブジェクトのスコープはクラスターに指定されます。これは、Operator が namespace スコープまたはクラスタースコープのいずれかになる OLM (Classic) とは異なります。OLM (Classic) の場合、スコープは関連する Subscription および OperatorGroup オブジェクトの設定により異なります。
OLM (Classic) の動作の詳細は、マルチテナンシーと Operator のコロケーション を参照してください。
ClusterExtension オブジェクトの例
apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
name: <extension_name>
spec:
namespace: <namespace_name>
config:
configType: Inline
inline:
watchNamespace: <namespace_name>
serviceAccount:
name: <service_account_name>
source:
sourceType: Catalog
catalog:
packageName: <package_name>
channels:
- <channel>
version: "<version>"
config- 拡張機能が特定の namespace の監視をサポートしている場合、このフィールドを使用して拡張機能の動作を設定します。詳細は、「拡張機能の設定」を参照してください。
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