|
| 1 | +:_mod-docs-content-type: ASSEMBLY |
| 2 | +[id="update-paths"] |
| 3 | += Update paths |
| 4 | +include::_attributes/common-attributes.adoc[] |
| 5 | +:context: update-paths |
| 6 | + |
| 7 | +toc::[] |
| 8 | + |
| 9 | +When determining _update paths_, also known as upgrade edges or upgrade constraints, for an installed cluster extension, {olmv1-first} supports {olmv0} semantics starting in {product-title} 4.16. This support follows the behavior from {olmv0}, including `replaces`, `skips`, and `skipRange` directives, with a few noted differences. |
| 10 | + |
| 11 | +By supporting {olmv0} semantics, {olmv1} accurately reflects the update graph from catalogs. |
| 12 | + |
| 13 | +.Differences from original {olmv0} implementation |
| 14 | + |
| 15 | +* If there are multiple possible successors, {olmv1} behavior differs in the following ways: |
| 16 | +** In {olmv0}, the successor closest to the channel head is chosen. |
| 17 | +** In {olmv1}, the successor with the highest semantic version (semver) is chosen. |
| 18 | +
|
| 19 | +* Consider the following set of file-based catalog (FBC) channel entries: |
| 20 | ++ |
| 21 | +[source,yaml] |
| 22 | +---- |
| 23 | +# ... |
| 24 | +- name: example.v3.0.0 |
| 25 | + skips: ["example.v2.0.0"] |
| 26 | +- name: example.v2.0.0 |
| 27 | + skipRange: >=1.0.0 <2.0.0 |
| 28 | +---- |
| 29 | ++ |
| 30 | +If `1.0.0` is installed, {olmv1} behavior differs in the following ways: |
| 31 | ++ |
| 32 | +-- |
| 33 | +** {olmv0-caps} will not detect an update path to `v2.0.0` because `v2.0.0` is skipped and not on the `replaces` chain. |
| 34 | +** {olmv1} will detect the update path because {olmv1} does not have a concept of a `replaces` chain. {olmv1} finds all entries that have a `replace`, `skip`, or `skipRange` value that covers the currently installed version. |
| 35 | +-- |
| 36 | +
|
| 37 | +[role="_additional-resources"] |
| 38 | +.Additional resources |
| 39 | +* xref:../../operators/understanding/olm/olm-workflow.adoc#olm-upgrades_olm-workflow[{olmv0-caps} upgrade semantics] |
| 40 | +
|
| 41 | +include::modules/olmv1-version-range-support.adoc[leveloffset=+1] |
| 42 | + |
| 43 | +include::modules/olmv1-version-range-comparisons.adoc[leveloffset=+1] |
| 44 | +include::modules/olmv1-about-target-versions.adoc[leveloffset=+1] |
| 45 | +include::modules/olmv1-forcing-an-update-or-rollback.adoc[leveloffset=+1] |
| 46 | + |
| 47 | +[role="_additional-resources"] |
| 48 | +.Additional resources |
| 49 | +* xref:../../extensions/ce/update-paths.adoc#olmv1-version-range-support_update-paths[Support for version ranges] |
| 50 | +// after #82245 merges, add an xref to _Creating a service account to manage cluster extensions_ |
| 51 | +
|
| 52 | +include::modules/olmv1-ocp-compat.adoc[leveloffset=+1] |
| 53 | + |
| 54 | +[role="_additional-resources"] |
| 55 | +.Additional resources |
| 56 | +* link:https://kubernetes.io/docs/reference/using-api/deprecation-guide/[Deprecated API Migration Guide] (Kubernetes documentation) |
| 57 | +
|
| 58 | +
|
| 59 | +include::modules/olmv1-blocked-cluster-updates.adoc[leveloffset=+2] |
| 60 | + |
| 61 | +[role="_additional-resources"] |
| 62 | +.Additional resources |
| 63 | +* xref:../../updating/understanding_updates/intro-to-updates.adoc#understanding_clusteroperator_conditiontypes_understanding-openshift-updates[Understanding cluster Operator condition types] |
| 64 | +* xref:../../operators/admin/olm-upgrading-operators.adoc#olm-upgrading-operators[Upgrading installed Operators] |
| 65 | +* xref:../../operators/admin/olm-deleting-operators-from-cluster.adoc#olm-deleting-operators-from-a-cluster[Deleting Operators from a cluster] |
| 66 | +* xref:../../operators/operator-reference.adoc#cluster-operators-ref-olmv1_cluster-operators-ref[Cluster Operators reference -> {olmv1-first} Operator] |
0 commit comments