Skip to content

Drop hard coded upgradeable 4.23 or 5.0 - #1399

Closed
wking wants to merge 8 commits into
openshift:mainfrom
wking:drop-hard-coded-upgradeable-4.23-or-5.0
Closed

wking wants to merge 8 commits into
openshift:mainfrom
wking:drop-hard-coded-upgradeable-4.23-or-5.0

Conversation

@wking

@wking wking commented Oct 30, 2026

Copy link
Copy Markdown
Member

Manually carrying operator-framework/operator-lifecycle-manager#3955 back to the 5.0 branch here. The 5.1 branch will presumably be covered later in an automatic rebase on upstream development, after the upstream pull merges. Generated by:

$ git remote add wking-operator-lifecycle-manager https://github.com/wking/operator-lifecycle-manager.git
$ git fetch wking-operator-lifecycle-manager
$ git checkout -b drop-hard-coded-upgradeable-4.23-or-5.0 origin/release-5.0
$ git cherry-pick -S wking-operator-lifecycle-manager/drop-hard-coded-upgradeable-4.23-or-5.0^^
$ git cherry-pick -S wking-operator-lifecycle-manager/drop-hard-coded-upgradeable-4.23-or-5.0^
$ git cherry-pick -S wking-operator-lifecycle-manager/drop-hard-coded-upgradeable-4.23-or-5.0

all of which applied cleanly, as of this upstream tip:

$ git log --oneline -1 wking-operator-lifecycle-manager/drop-hard-coded-upgradeable-4.23-or-5.0
22de4b1c3 (wking-operator-lifecycle-manager/drop-hard-coded-upgradeable-4.23-or-5.0) pkg/controller/operators/openshift: Firm skew-error handling

ankitathomas and others added 8 commits August 24, 2026 11:47
Signed-off-by: Ankita Thomas <ankithom@redhat.com>
Signed-off-by: Chris Moore <cmoore@redhat.com>
…rry-pick-1357-to-release-5.0

[release-5.0] OCPBUGS-113283: force node arch for opm and catalogsource pod for multiarch tests; fix test failure
…cy cases

Signed-off-by: grokspawn <jordan@nimblewidget.com>
…rry-pick-1359-to-release-5.0

[release-5.0] OCPBUGS-83412: set catalogsource spec.grpcpodconfig.scc: restricted for all non-legacy cases
incompatibleOperators lists the CSVs from the informer cache. The cache
returns them in map order, which changes between reconciles.
skews.String() kept that order, so the same set of blocking CSVs
produced different messages. conditionsEqual compares the message, so
each reorder counted as a condition transition: the controller rewrote
the ClusterOperator status and moved lastTransitionTime although
nothing had changed. With two blocking CSVs on OCP 4.22 the message
alternated between the two orders every one to two minutes.

skews.String() now sorts a copy of the skews before it builds the
message: skews with a property error first, as before, then by
namespace and name. The same set of CSVs gives the same message in any
input order, so the condition only transitions when the set changes.

The regression test feeds three skews in three orders and expects one
message. It fails on the previous implementation, which filled the
non-error entries from the end of the slice.

Fixes OCPBUGS-129618

Signed-off-by: Harald Klein <hklein@redhat.com>
Co-Authored-By: Claude <noreply@anthropic.com>
…48)"

This reverts commit 73a2205759278f98a4407bd0d07f166c5445a7bc
(Hard-code version upgrade message for 4.22 upgrade paths, 2026-01-26, #3748).
That change was an acceptable hack for 4.22 controllers, but should
never have landed in the development branch, where it's currently
generating output like:

  ClusterServiceVersions blocking minor version upgrades to 4.23 or major version upgrades to 5.0

in 5.0 clusters [1].

[1]: https://redhat.atlassian.net/browse/OPRUN-4431?focusedCommentId=17613550
While "it is safe to ignore the error here" would be nice, and may
work for flows coming from an incompatibleOperators call, it's a
brittle assumption.  For example, it breaks down in
TestSkewsStringIsDeterministic, which had been running skew.String()
and skews.String() without either populating .err.  In this commit,
I'm making sure we've evaluated for errors in any code path that leads
to those String() calls.  This may make some code-paths slightly less
efficient, by parsing the same valid skew version multiple times.  But
parsing a skew version isn't that expensive, so I'm not worried about
a few CPU cycles there.
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification

This PR uses the pipeline controller for second-stage tests. Selection and triggering follow the repository configuration.

Use /test ? to list jobs and /pipeline help for commands.

@coderabbitai

coderabbitai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@openshift-ci
openshift-ci Bot requested review from perdasilva and tmshort October 30, 2026 18:51
@openshift-ci

openshift-ci Bot commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: wking
Once this PR has been reviewed and has the lgtm label, please assign joelanford for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@wking

wking commented Oct 30, 2026

Copy link
Copy Markdown
Member Author

darn it, I meant to open against 5.0. Closing to try again...

@wking wking closed this Oct 30, 2026
@wking

wking commented Oct 30, 2026

Copy link
Copy Markdown
Member Author

re-opened against release-5.0 with #1400.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants