2.2.3. 依存関係解決のシナリオ例
以下の例で、プロバイダー は CRD または APIService を所有する Operator です。
例: 依存 API を非推奨にする
A および B は API である (例: CRD):
- A のプロバイダーは B に依存する。
- B のプロバイダーには Subscription がある。
- B のプロバイダーは C を提供するように更新するが、B を非推奨にする。
この結果は以下のようになります。
- B にはプロバイダーがなくなる。
- A は機能しなくなる。
これは OLM がアップグレードストラテジーで回避するケースです。
例: バージョンのデッドロック
A および B は API である:
- A のプロバイダーには B が必要。
- B のプロバイダーには A が必要。
- A のプロバイダーは (A2 を提供し、B2 を必要とするように) 更新され、A を非推奨にする。
- B のプロバイダーは (B2 を提供し、A2 を必要とするように) 更新され、B を非推奨にする。
OLM が B を同時に更新せずに A を更新しようとする場合や、その逆の場合、OLM は、新しい互換性のあるセットが見つかったとしても Operator の新規バージョンに進むことができません。
これは OLM がアップグレードストラテジーで回避するもう 1 つのケースです。