5.5. Update paths
When determining update paths, also known as upgrade edges or upgrade constraints, for an installed cluster extension, Operator Lifecycle Manager (OLM) v1 supports OLM (Classic) semantics starting in OpenShift Container Platform 4.16. This support follows the behavior from OLM (Classic), including replaces, skips, and skipRange directives, with a few noted differences.
By supporting OLM (Classic) semantics, OLM v1 accurately reflects the update graph from catalogs.
Differences from original OLM (Classic) implementation
If there are multiple possible successors, OLM v1 behavior differs in the following ways:
- In OLM (Classic), the successor closest to the channel head is chosen.
- In OLM v1, the successor with the highest semantic version (semver) is chosen.
Consider the following set of file-based catalog (FBC) channel entries:
# ... - name: example.v3.0.0 skips: ["example.v2.0.0"] - name: example.v2.0.0 skipRange: >=1.0.0 <2.0.0If
1.0.0is installed, OLM v1 behavior differs in the following ways:-
OLM (Classic) will not detect an update path to
v2.0.0becausev2.0.0is skipped and not on thereplaceschain. -
OLM v1 will detect the update path because OLM v1 does not have a concept of a
replaceschain. OLM v1 finds all entries that have areplace,skip, orskipRangevalue that covers the currently installed version.
-
OLM (Classic) will not detect an update path to
5.5.1. Support for version ranges 링크 복사링크가 클립보드에 복사되었습니다!
In Operator Lifecycle Manager (OLM) v1, you can specify a version range by using a comparison string in an Operator or extension’s custom resource (CR). If you specify a version range in the CR, OLM v1 installs or updates to the latest version of the Operator that can be resolved within the version range.
Resolved version workflow
- The resolved version is the latest version of the Operator that satisfies the constraints of the Operator and the environment.
- An Operator update within the specified range is automatically installed if it is resolved successfully.
- An update is not installed if it is outside of the specified range or if it cannot be resolved successfully.