1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00

OLMv1 4.16: Support legacy OLM upgrade constraint semantics

This commit is contained in:
Alex Dellapenta
2024-06-11 15:48:12 -06:00
committed by openshift-cherrypick-robot
parent 9966829100
commit de21cbcef8
5 changed files with 70 additions and 20 deletions

View File

@@ -13,7 +13,7 @@ In the current Technology Preview release of {olmv1-first}, you manage catalogs
:FeatureName: {olmv1}
include::snippets/technology-preview.adoc[]
[id="prerequisites_olmv1-installing-an-operator-from-a-catalog"]
[id="prerequisites_{context}"]
== Prerequisites
* Access to an {product-title} cluster using an account with `cluster-admin` permissions
@@ -69,11 +69,45 @@ include::modules/olmv1-updating-an-operator.adoc[leveloffset=+1]
* xref:../../operators/olm_v1/olmv1-installing-an-operator-from-a-catalog.adoc#olmv1-about-target-versions_olmv1-installing-operator[Example custom resources (CRs) that specify a target version]
* xref:../../operators/olm_v1/olmv1-installing-an-operator-from-a-catalog.adoc#olmv1-version-range-comparisons_olmv1-installing-operator[Version comparison strings]
include::modules/olmv1-semver-support.adoc[leveloffset=+2]
[id="upgrade-constraint-semantics_{context}"]
== Upgrade constraint semantics
When determining upgrade edges 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.
By supporting {olmv0} semantics, {olmv1} now honors the upgrade graph from catalogs accurately.
.Differences from original {olmv0} implementation
* If there are multiple possible successors, {olmv1} behavior differs in the following ways:
** In {olmv0}, the successor closest to the channel head is chosen.
** In {olmv1}, the successor with the highest semantic version (semver) is chosen.
* Consider the following set of file-based catalog (FBC) channel entries:
+
[source,yaml]
----
# ...
- name: example.v3.0.0
skips: ["example.v2.0.0"]
- name: example.v2.0.0
skipRange: >=1.0.0 <2.0.0
----
+
If `1.0.0` is installed, {olmv1} behavior differs in the following ways:
+
--
** {olmv0-caps} will not see an upgrade edge to `v2.0.0` because `v2.0.0` is skipped and not on the `replaces` chain.
** {olmv1} will see the upgrade edge 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.
--
[NOTE]
====
Support for semantic versioning (semver) upgrade constraints was introduced in {product-title} 4.15 but disabled in 4.16 in favor of {olmv0} semantics during this Technology Preview phase.
====
[role="_additional-resources"]
.Additional resources
* xref:../../operators/olm_v1/olmv1-installing-an-operator-from-a-catalog.adoc#olmv1-forcing-an-update-or-rollback_olmv1-installing-operator[Forcing an update or rollback]
* xref:../../operators/understanding/olm/olm-workflow.adoc#olm-upgrades_olm-workflow[{olmv0-caps} upgrade semantics]
include::modules/olmv1-version-range-support.adoc[leveloffset=+2]