2.4.4.7. 依赖项解析方案示例
在以下示例中,provider(供应商) 是指"拥有" CRD 或 API 服务的 Operator。
示例:弃用从属 API
A 和 B 是 API(CRD):
- A 的供应商依赖 B。
- B 的供应商有一个订阅。
- B 更新供应商提供 C,但弃用 B。
结果:
- B 不再有供应商。
- A 不再工作。
这是 OLM 通过升级策略阻止的一个案例。
示例:版本死锁
A 和 B 均为 API:
- A 的供应商需要 B。
- B 的供应商需要 A。
- A 更新的供应商到(提供 A2,需要 B2)并弃用 A。
- B 更新的供应商到(提供 B2,需要 A2)并弃用 B。
如果 OLM 试图在更新 A 的同时不更新 B,或更新 B 的同时不更新 A,则无法升级到新版 Operator,即使可找到新的兼容集也无法更新。
这是 OLM 通过升级策略阻止的另一案例。