4.6. Operator 条件の管理

クラスター管理者は、Operator Lifecycle Manager (OLM) を使用して Operator 条件を管理できます。

4.6.1. Operator 条件の上書き

クラスター管理者には、Operator が報告するサポートされている Operator 条件を無視することをお勧めします。Operator 条件が存在する場合、Spec.Overrides 配列の Operator 条件は Spec.Conditions 配列の条件を上書きし、これによりクラスター管理者は、Operator が Operator Lifecycle Manager (OLM) に状態を誤って報告する状況に対応することができます。

注記

デフォルトでは、 Spec.Overrides配列は、クラスター管理者によって追加されるまで、 Operator Conditionオブジェクトには存在しません。Spec.Conditions配列も、ユーザーによって追加されるか、カスタム Operator ロジックの結果として追加されるまで存在しません。

たとえば、アップグレードできないことを常に通信する Operator の既知のバージョンについて考えてみましょう。この場合、Operator がアップグレードできないと通信していますが、Operator をアップグレードすることをお勧めします。これは、条件の type および statusOperatorCondition オブジェクトの Spec.Overrides 配列に追加して Operator 条件を上書きすることによって実行できます。

前提条件

  • OLM を使用してインストールされたOperatorConditionオブジェクトを含む

手順

  1. Operator のOperatorConditionオブジェクトを編集します。

    $ oc edit operatorcondition <name>
  2. Spec.Overrides 配列をオブジェクトに追加します。

    Operator 条件の上書きの例

    apiVersion: operators.coreos.com/v1
    kind: OperatorCondition
    metadata:
      name: my-operator
      namespace: operators
    spec:
      overrides:
      - type: Upgradeable 1
        status: "True"
        reason: "upgradeIsSafe"
        message: "This is a known issue with the Operator where it always reports that it cannot be upgraded."
      conditions:
      - type: Upgradeable
        status: "False"
        reason: "migration"
        message: "The operator is performing a migration."
        lastTransitionTime: "2020-08-24T23:15:55Z"

    1
    クラスター管理者は、アップグレードの準備状態を True に変更できます。

4.6.2. Operator 条件を使用するための Operator の更新

Operator Lifecycle Manager (OLM) は、調整する ClusterServiceVersion リソースごとに OperatorCondition リソースを自動的に作成します。CSV のすべてのサービスアカウントには、Operator が所有する OperatorCondition と対話するための RBAC が付与されます。

Operator の作成者は、Operator が OLM によってデプロイされた後に、独自の条件を設定できるように Operator を開発し、operator-lib ライブラリーを使用することができます。Operator 作成者として Operator 条件を設定する方法の詳細については、Operator 条件の有効化 ページを参照してください。

4.6.2.1. デフォルトの設定

後方互換性を維持するために、OLM は OperatorCondition リソースがない状態を条件からのオプトアウトとして扱います。そのため、Operator 条件の使用にオプトインする Operator は、Pod の ready プローブが true に設定される前に、デフォルトの条件を設定する必要があります。これにより、Operator には、条件を正しい状態に更新するための猶予期間が与えられます。

4.6.3. 関連情報