4.4. Operator Lifecycle Manager 機能の設定
Operator Lifecycle Manager (OLM) コントローラーは、cluster
という名前の OLMConfig
カスタムリソース (CR) で設定されます。クラスター管理者は、このリソースを変更して、特定の機能を有効または無効にすることができます。
本書では、 OLMConfig
リソースによって設定されている OLM で現在サポートされている機能について概説します。
4.4.1. コピーした CSV の無効化
Operator が Operator Lifecycle Manager (OLM) によってインストールされると、そのクラスターサービスバージョン (CSV) の簡単なコピーが Operator が監視するすべての namespace に作成されます。これらの CSV は、コピーされた CSV と呼ばれ、特定の namespace でリソースイベントをアクティブに調整しているコントローラーをユーザーに通知します。
Operator がAll Namespaces
インストールモードを使用するように設定されている場合に、単一または指定された namespace のセットを対象とするのではなく、コピーされた CSV がクラスター上のすべての namespace に作成されます。特に大規模なクラスターでは、namespace およびインストールされた Operator が数百または数千の場合に、コピーされた CSV は OLM のメモリー使用量、クラスター etcd 制限、およびネットワークなどのリソースを有効にしない量を消費する可能性があります。
これらの大規模なクラスターをサポートするために、クラスター管理者は、AllNamespaces
モードでインストールされる Operator のコピーされた CSV を無効にできます。
コピーされた CSV を無効にする場合、OperatorHub および CLI で Operator を検出するユーザーの機能は、ユーザーの namespace に直接インストールされた Operator に限定されます。
Operator がユーザーの namespace でイベントを調整するように設定されているが、別の namespace にインストールされている場合、ユーザーは OperatorHub または CLI で Operator を表示できません。この制限の影響を受ける Operator は引き続き利用でき、ユーザーの namespace でイベントの調整を継続します。
この動作は、次の理由で発生します。
- コピーされる CSV は、特定の namespace で利用可能な Operator を特定します。
- ロールベースアクセス制御 (RBAC) は、ユーザーが OperatorHub および CLI で Operator を表示し、検出する機能のスコープを設定します。
手順
cluster
という名前のOLMConfig
オブジェクトを編集し、spec.features.disableCopiedCSVs
フィールドをtrue
に設定します。$ oc apply -f - <<EOF apiVersion: operators.coreos.com/v1 kind: OLMConfig metadata: name: cluster spec: features: disableCopiedCSVs: true 1 EOF
- 1
AllNamespaces
インストールモード Operator 向けのコピーされた CSV を無効にしました。
検証
コピーされた CSV が無効になっている場合には、OLM は Operator の namespace のイベントでこの情報をキャプチャします。
$ oc get events
出力例
LAST SEEN TYPE REASON OBJECT MESSAGE 85s Warning DisabledCopiedCSVs clusterserviceversion/my-csv.v1.0.0 CSV copying disabled for operators/my-csv.v1.0.0
spec.features.disableCopiedCSVs
フィールドが欠落しているか、false
に設定されている場合に、OLM はAllNamespaces
モードでインストールされた全 Operator 向けのコピーされた CSV を再作成し、前述のイベントを削除します。
関連情報