Skip to content

Conversation

@wking
Copy link
Member

@wking wking commented Sep 11, 2023

In 9ac845f (#918), we grew a new precondition that parsed the current and target releases as semantic versions and rejected rollbacks. Admins could use 'force: true' to push through those (and other) guards, e.g. for testing purposes.

However, we still lacked guards around SemVer increases, like 4.14.z hopping straight to 4.16. In most cases, customers will be using an OpenShift Update Service with a channel, and getting recommended updates they can use with oc adm upgrade --to ... or the in-cluster web-console. But some clusters are not using update services.

With this commit, I'm stiffening the previous guard to consume the previous-version metadata that's baked into release images and consumed by Cincinnati when creating the update service responses. This isn't as helpful as using an actual update service, because it will not include information about update risks we discover after building the release. But it's still strictly stronger than the outgoing rollback-specific guard, and we haven't had to extend that previous-release list since the 4.1 release candidates.

…ious, not rollback SemVer

In 9ac845f (pkg/payload/precondition/clusterversion/rollback: New
precondition, 2023-03-25, openshift#918), we grew a new precondition that
parsed the current and target releases as semantic versions and
rejected rollbacks.  Admins could use 'force: true' to push through
those (and other) guards, e.g. for testing purposes.

However, we still lacked guards around SemVer increases, like 4.14.z
hopping straight to 4.16.  In most cases, customers will be using an
OpenShift Update Service with a channel, and getting recommended
updates they can use with 'oc adm upgrade --to ...' or the in-cluster
web-console.  But some clusters are not using update services.

* ARO clusters are not subscribed to a channel by default and need to
  opt in [1].
* Some disconnected/restricted-network clusters currently use
  --to-image updates, although I personally think they would be safer
  running a local update services [2].

With this commit, I'm stiffening the previous guard to consume the
previous-version metadata that's baked into release images [3] and
consumed by Cincinnati when creating the update service responses [4].
This isn't as helpful as using an actual update service, because it
will not include information about update risks we discover after
building the release [5].  But it's still strictly stronger than the
outgoing rollback-specific guard, and we haven't had to extend that
previous-release list since the 4.1 release candidates [6].

[1]: https://learn.microsoft.com/en-us/azure/openshift/howto-upgrade#check-for-azure-red-hat-openshift-cluster-upgrades
[2]: https://issues.redhat.com/browse/OTA-821
[3]: https://github.com/openshift/oc/blob/795bf1a6260847ecfc612da2ab11ea2d6e07da16/pkg/cli/admin/release/new.go#L135
[4]: https://github.com/openshift/cincinnati/blob/d77203d472ed5a7e00112c4d8265ba20f5034824/cincinnati/src/plugins/internal/graph_builder/release_scrape_dockerv2/registry/mod.rs#L419
[5]: https://github.com/openshift/cincinnati-graph-data#block-edges
[6]: https://github.com/openshift/cincinnati-graph-data/blob/c09842556a9c5d3920f9f2d004e24b6fb2f3a2de/raw/metadata.json
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Sep 11, 2023
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 11, 2023

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 11, 2023

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: wking

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

The pull request process is described 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

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 11, 2023
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 26, 2023

@wking: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-hypershift ba8756b link true /test e2e-hypershift
ci/prow/e2e-hypershift-conformance ba8756b link true /test e2e-hypershift-conformance

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@openshift-bot
Copy link
Contributor

Issues go stale after 90d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 26, 2023
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Dec 26, 2023
@openshift-merge-robot
Copy link
Contributor

PR needs rebase.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-bot
Copy link
Contributor

Stale issues rot after 30d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle rotten
/remove-lifecycle stale

@openshift-ci openshift-ci bot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Jan 25, 2024
@openshift-bot
Copy link
Contributor

Rotten issues close after 30d of inactivity.

Reopen the issue by commenting /reopen.
Mark the issue as fresh by commenting /remove-lifecycle rotten.
Exclude this issue from closing again by commenting /lifecycle frozen.

/close

@openshift-ci openshift-ci bot closed this Feb 25, 2024
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 25, 2024

@openshift-bot: Closed this PR.

Details

In response to this:

Rotten issues close after 30d of inactivity.

Reopen the issue by commenting /reopen.
Mark the issue as fresh by commenting /remove-lifecycle rotten.
Exclude this issue from closing again by commenting /lifecycle frozen.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants