Skip to content

OCPBUGS-78498: Update skew error message with doc links#5825

Merged
openshift-merge-bot[bot] merged 1 commit intoopenshift:mainfrom
djoshy:add-skew-docs
Mar 31, 2026
Merged

OCPBUGS-78498: Update skew error message with doc links#5825
openshift-merge-bot[bot] merged 1 commit intoopenshift:mainfrom
djoshy:add-skew-docs

Conversation

@djoshy
Copy link
Copy Markdown
Contributor

@djoshy djoshy commented Mar 30, 2026

Replaces the [TODO: insert link] placeholder in the Upgradeable guard message with a real docs URL that dynamically reflects the cluster's current running version (e.g. 4.21). Falls back to latest if the version can't be determined. Tests and helpers were updated to account for this. The Prometheus alert only uses the latest link as the MCO cannot dynamically inject into the Prometheus manifest.

@openshift-ci-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Mar 30, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@djoshy: This pull request references Jira Issue OCPBUGS-78498, which is invalid:

  • expected the bug to target the "4.22.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

Replaces the [TODO: insert link] placeholder in the Upgradeable guard message with a real docs URL that dynamically reflects the cluster's current running version (e.g. 4.21). Falls back to latest if the version can't be determined. Some helpers were updated to support this. The Prometheus alert only uses the latest link as the MCO cannot dynamically inject into the alert message.

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 openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 30, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 73df178f-5f56-4ba5-98a0-94f12988fb0d

📥 Commits

Reviewing files that changed from the base of the PR and between 83c87a1 and 52ce5d6.

📒 Files selected for processing (4)
  • install/0000_90_machine-config_01_prometheus-rules.yaml
  • pkg/operator/status.go
  • pkg/operator/status_test.go
  • pkg/operator/sync.go
✅ Files skipped from review due to trivial changes (1)
  • install/0000_90_machine-config_01_prometheus-rules.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/operator/status.go

Walkthrough

Updated a PrometheusRule alert link and replaced a placeholder docs URL in operator status logic by deriving an OCP docs version from ClusterVersion history; added a helper for current OCP version and adjusted install-version selection semantics. Tests were updated to exercise ClusterVersion-driven behavior and expected messages.

Changes

Cohort / File(s) Summary
PrometheusRule Alert Documentation
install/0000_90_machine-config_01_prometheus-rules.yaml
Replaced placeholder annotations.description link for MCCBootImageSkewEnforcementNone with a concrete Red Hat OpenShift documentation URL.
Status check and message generation
pkg/operator/status.go
When boot-image-skew limit is exceeded, derive an OCP docs version from cluster data and construct a concrete Red Hat docs URL; updated the upgrade-blocking message to reference that URL instead of a placeholder.
ClusterVersion parsing helpers & enforcement logic
pkg/operator/sync.go
Renamed getOCPVersionFromClusterVersion()getOCPInstallVersionFromClusterVersion() and changed semantics to select the oldest completed history entry as the install version (parse failures now return empty string). Added getCurrentOCPVersionFromClusterVersion() to parse the newest history entry. Updated syncBootImageSkewEnforcementStatus to use the install-version helper.
Unit tests: status tests updated
pkg/operator/status_test.go
Expanded tests to accept an optional clusterVersion, inject a clusterVersionLister into the test Operator, added scenarios exercising ClusterVersion history, and updated expected messages to include the concrete Red Hat docs URL and revised phrasing.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 30, 2026
@djoshy
Copy link
Copy Markdown
Contributor Author

djoshy commented Mar 30, 2026

/jira refresh

/test unit

@openshift-ci-robot openshift-ci-robot added the jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. label Mar 30, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@djoshy: This pull request references Jira Issue OCPBUGS-78498, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

/jira refresh

/test unit

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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot openshift-ci-robot removed the jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. label Mar 30, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pkg/operator/sync.go (1)

2553-2586: ⚠️ Potential issue | 🟠 Major

Migrate existing automatic status to the install-version baseline.

Line 2553 changes the source to the install version, but this branch still only initializes MachineConfiguration.Status.BootImageSkewEnforcementStatus when automatic mode flips or the status is empty. Clusters already in Automatic will keep the pre-change Automatic.OCPVersion already persisted in status, so the new install-version semantics never take effect there. If you add the migration here, update Automatic.OCPVersion in place—pkg/apihelpers/apihelpers.go:584-592 builds a fresh automatic struct and would drop any populated RHCOSVersion.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/operator/sync.go` around lines 2553 - 2586, The code switches the
baseline to the install OCP version but only replaces the automatic status when
flipping modes or when status is empty, which leaves existing Automatic entries
with their old OCPVersion; to migrate in-place, detect the automated-path branch
(when supportsBootImageUpdates &&
apihelpers.HasMAPIMachineSetManagerWithMode(...) is true) and if
newMachineConfigurationStatus.BootImageSkewEnforcementStatus.Mode ==
opv1.BootImageSkewEnforcementModeStatusAutomatic (or
mcop.Status.BootImageSkewEnforcementStatus.Mode is Automatic), set the
Automatic.OCPVersion field to the value returned by
optr.getOCPInstallVersionFromClusterVersion() on the existing
newMachineConfigurationStatus.BootImageSkewEnforcementStatus.Automatic struct
rather than calling apihelpers.GetSkewEnforcementStatusAutomaticWithOCPVersion
(which builds a fresh struct and would drop any populated RHCOSVersion); only
fall back to replacing the status with
apihelpers.GetSkewEnforcementStatusAutomaticWithOCPVersion(...) when the status
is empty or not present.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@pkg/operator/sync.go`:
- Around line 2553-2586: The code switches the baseline to the install OCP
version but only replaces the automatic status when flipping modes or when
status is empty, which leaves existing Automatic entries with their old
OCPVersion; to migrate in-place, detect the automated-path branch (when
supportsBootImageUpdates && apihelpers.HasMAPIMachineSetManagerWithMode(...) is
true) and if newMachineConfigurationStatus.BootImageSkewEnforcementStatus.Mode
== opv1.BootImageSkewEnforcementModeStatusAutomatic (or
mcop.Status.BootImageSkewEnforcementStatus.Mode is Automatic), set the
Automatic.OCPVersion field to the value returned by
optr.getOCPInstallVersionFromClusterVersion() on the existing
newMachineConfigurationStatus.BootImageSkewEnforcementStatus.Automatic struct
rather than calling apihelpers.GetSkewEnforcementStatusAutomaticWithOCPVersion
(which builds a fresh struct and would drop any populated RHCOSVersion); only
fall back to replacing the status with
apihelpers.GetSkewEnforcementStatusAutomaticWithOCPVersion(...) when the status
is empty or not present.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 639abbdd-7da8-454b-a2c7-91afa5b016cc

📥 Commits

Reviewing files that changed from the base of the PR and between 7571581 and b62fc8d.

📒 Files selected for processing (3)
  • install/0000_90_machine-config_01_prometheus-rules.yaml
  • pkg/operator/status.go
  • pkg/operator/sync.go

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@djoshy: This pull request references Jira Issue OCPBUGS-78498, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

Replaces the [TODO: insert link] placeholder in the Upgradeable guard message with a real docs URL that dynamically reflects the cluster's current running version (e.g. 4.21). Falls back to latest if the version can't be determined. Tests and helpers were updated to account for this. The Prometheus alert only uses the latest link as the MCO cannot dynamically inject into the alert message.

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 openshift-eng/jira-lifecycle-plugin repository.

@djoshy
Copy link
Copy Markdown
Contributor Author

djoshy commented Mar 30, 2026

Note that the link is an estimate at this point, based on previews from openshift/openshift-docs#108103. This PR is just to verify the injection mechanism works as intended. The link may be tweaked prior to merge or in a later update.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pkg/operator/sync.go (1)

2622-2626: ⚠️ Potential issue | 🟠 Major

Return unknown install versions as empty, not 0.0.0.

Line 2625 turns a parse failure into a synthetic version that will always look out of skew. That can disable upgrades on malformed ClusterVersion history instead of treating the install version as unknown.

Suggested fix
 	parsedVersion, err := k8sversion.ParseGeneric(installVersion)
 	if err != nil {
-		klog.Warningf("Failed to parse install version %q: %v, use a placeholder for now", installVersion, err)
-		return "0.0.0"
+		klog.Warningf("Failed to parse install version %q: %v", installVersion, err)
+		return ""
 	}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/operator/sync.go` around lines 2622 - 2626, The code in the block using
k8sversion.ParseGeneric(installVersion) currently returns the synthetic "0.0.0"
on parse failure; change this to return an empty string to represent an unknown
install version instead. In the error branch where err != nil (around
parsedVersion, err := k8sversion.ParseGeneric(installVersion)), update the
return value from "0.0.0" to "" and keep the klog.Warningf call (optionally
augmenting the message to state the install version is unknown), so callers
receiving the install version can treat it as unknown rather than a concrete
out-of-skew version.
🧹 Nitpick comments (1)
pkg/operator/status_test.go (1)

1282-1293: Add coverage for the "latest" docs fallback.

The new harness can inject ClusterVersion, but none of the blocked-upgrade cases leave it unset or unparsable. That means the checkBootImageSkewUpgradeableGuard() fallback to .../latest/... is still untested.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/operator/status_test.go` around lines 1282 - 1293, The tests never cover
the fallback path in checkBootImageSkewUpgradeableGuard that uses the
".../latest/..." docs URL because the harness always injects a valid
ClusterVersion; update the test cases in status_test.go to include at least one
scenario where the ClusterVersion is nil or unparsable so clusterVersionLister
contains no usable ClusterVersion and triggers the fallback. Specifically,
modify the table-driven cases that construct
clusterVersionIndexer/clusterVersionLister (used when creating the Operator with
field clusterVersionLister) to leave tc.clusterVersion nil or provide an invalid
ClusterVersion object for one blocked-upgrade case, and add assertions expecting
the docs URL to contain "/latest/" to verify the fallback behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@pkg/operator/sync.go`:
- Around line 2622-2626: The code in the block using
k8sversion.ParseGeneric(installVersion) currently returns the synthetic "0.0.0"
on parse failure; change this to return an empty string to represent an unknown
install version instead. In the error branch where err != nil (around
parsedVersion, err := k8sversion.ParseGeneric(installVersion)), update the
return value from "0.0.0" to "" and keep the klog.Warningf call (optionally
augmenting the message to state the install version is unknown), so callers
receiving the install version can treat it as unknown rather than a concrete
out-of-skew version.

---

Nitpick comments:
In `@pkg/operator/status_test.go`:
- Around line 1282-1293: The tests never cover the fallback path in
checkBootImageSkewUpgradeableGuard that uses the ".../latest/..." docs URL
because the harness always injects a valid ClusterVersion; update the test cases
in status_test.go to include at least one scenario where the ClusterVersion is
nil or unparsable so clusterVersionLister contains no usable ClusterVersion and
triggers the fallback. Specifically, modify the table-driven cases that
construct clusterVersionIndexer/clusterVersionLister (used when creating the
Operator with field clusterVersionLister) to leave tc.clusterVersion nil or
provide an invalid ClusterVersion object for one blocked-upgrade case, and add
assertions expecting the docs URL to contain "/latest/" to verify the fallback
behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 15d309bb-8eaa-4269-a2a4-5a9970e7868d

📥 Commits

Reviewing files that changed from the base of the PR and between b62fc8d and 83c87a1.

📒 Files selected for processing (4)
  • install/0000_90_machine-config_01_prometheus-rules.yaml
  • pkg/operator/status.go
  • pkg/operator/status_test.go
  • pkg/operator/sync.go
✅ Files skipped from review due to trivial changes (1)
  • install/0000_90_machine-config_01_prometheus-rules.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/operator/status.go

annotations:
summary: "Boot image skew enforcement is disabled. Scaling operations may not be successful."
description: "Boot image skew enforcement mode is set to None. When scaling up, new nodes may be provisioned with older boot images that could introduce compatibility issues. Consider manually updating boot images to match the cluster version. Please refer to docs at [TODO-INSERTLINK] for additional details."
description: "Boot image skew enforcement mode is set to None. When scaling up, new nodes may be provisioned with older boot images that could introduce compatibility issues. Consider manually updating boot images to match the cluster version. Please refer to docs at https://docs.redhat.com/en/documentation/openshift_container_platform/latest/html/machine_configuration/mco-update-boot-skew-mgmt for additional details."
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that looks right.

Copy link
Copy Markdown
Member

@isabella-janssen isabella-janssen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Mar 30, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Mar 30, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: djoshy, isabella-janssen

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:
  • OWNERS [djoshy,isabella-janssen]

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

@djoshy
Copy link
Copy Markdown
Contributor Author

djoshy commented Mar 30, 2026

I manually tested this on an AWS cluster to verify:

  1. Set skew configuration to Manual with an old bootimage that would trip the skew compliance:
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
spec:
  bootImageSkewEnforcement:
    mode: Manual
    manual:
      mode: RHCOSVersion
      rhcosVersion: 9.0.20251023-0
  1. Examine the upgradeable condition on the MCO CO:
$ oc get co machine-config -o yaml
---
  - lastTransitionTime: "2026-03-30T19:11:46Z"
    message: 'Upgrades have been disabled because the cluster is using RHCOS boot
      image version 9.0.20251023-0(RHEL version: 9.0), which is below the minimum
      required RHEL version 9.2. To enable upgrades, please update your boot images
      or disable boot image skew enforcement by following the documentation at https://docs.redhat.com/en/documentation/openshift_container_platform/4.22/html/machine_configuration/mco-update-boot-skew-mgmt'
    reason: ClusterBootImageSkewError
    status: "False"
    type: Upgradeable
  1. Set skew configuration to None, this will trip the Prometheus alert:
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
spec:
  bootImageSkewEnforcement:
    mode: None
  1. Examine the prometheus alert list:
$ oc exec -n openshift-monitoring prometheus-k8s-0 -c prometheus -- curl -s 'http://localhost:9090/api/v1/alerts' | jq '.data.alerts[] | {alertname: .labels.alertname, state: .state, summary: .annotations.summary, description: .annotations.description}'

{
  "alertname": "MCCBootImageSkewEnforcementNone",
  "state": "firing",
  "summary": "Boot image skew enforcement is disabled. Scaling operations may not be successful.",
  "description": "Boot image skew enforcement mode is set to None. When scaling up, new nodes may be provisioned with older boot images that could introduce compatibility issues. Consider manually updating boot images to match the cluster version. Please refer to docs at https://docs.redhat.com/en/documentation/openshift_container_platform/latest/html/machine_configuration/mco-update-boot-skew-mgmt for additional details."
}

@djoshy
Copy link
Copy Markdown
Contributor Author

djoshy commented Mar 30, 2026

/retest-required

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Mar 31, 2026

@djoshy: 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-gcp-op-ocl-part1 52ce5d6 link false /test e2e-gcp-op-ocl-part1
ci/prow/e2e-gcp-op-ocl-part2 52ce5d6 link false /test e2e-gcp-op-ocl-part2
ci/prow/e2e-gcp-op-ocl 52ce5d6 link false /test e2e-gcp-op-ocl

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-sigs/prow repository. I understand the commands that are listed here.

@sergiordlr
Copy link
Copy Markdown
Contributor

/payload periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-1of3 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-2of3 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-3of3

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Mar 31, 2026

@sergiordlr: it appears that you have attempted to use some version of the payload command, but your comment was incorrectly formatted and cannot be acted upon. See the docs for usage info.

@djoshy
Copy link
Copy Markdown
Contributor Author

djoshy commented Mar 31, 2026

/payload-job periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-1of3 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-2of3 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-3of3
periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Mar 31, 2026

@djoshy: trigger 3 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-1of3
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-2of3
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-3of3

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/f411b7c0-2ce9-11f1-80a3-79af1b92e756-0

@djoshy
Copy link
Copy Markdown
Contributor Author

djoshy commented Mar 31, 2026

/payload-job periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Mar 31, 2026

@djoshy: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/06561430-2cea-11f1-86c3-dcea378f80e4-0

@djoshy
Copy link
Copy Markdown
Contributor Author

djoshy commented Mar 31, 2026

/test all

@djoshy
Copy link
Copy Markdown
Contributor Author

djoshy commented Mar 31, 2026

/payload-job periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-1of3

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Mar 31, 2026

@djoshy: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-1of3

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/c8eb5a70-2d10-11f1-8d5e-f82fc8292aeb-0

@djoshy
Copy link
Copy Markdown
Contributor Author

djoshy commented Mar 31, 2026

/retest-required

@djoshy
Copy link
Copy Markdown
Contributor Author

djoshy commented Mar 31, 2026

/verified by payloads

Chatted with @sergiordlr , we think existing tests and new units are enough to verify this behavior.

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Mar 31, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@djoshy: This PR has been marked as verified by payloads.

Details

In response to this:

/verified by payloads

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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-merge-bot openshift-merge-bot bot merged commit 39ca983 into openshift:main Mar 31, 2026
17 of 18 checks passed
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@djoshy: Jira Issue Verification Checks: Jira Issue OCPBUGS-78498
✔️ This pull request was pre-merge verified.
✔️ All associated pull requests have merged.
✔️ All associated, merged pull requests were pre-merge verified.

Jira Issue OCPBUGS-78498 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓

Details

In response to this:

Replaces the [TODO: insert link] placeholder in the Upgradeable guard message with a real docs URL that dynamically reflects the cluster's current running version (e.g. 4.21). Falls back to latest if the version can't be determined. Tests and helpers were updated to account for this. The Prometheus alert only uses the latest link as the MCO cannot dynamically inject into the Prometheus manifest.

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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-merge-robot
Copy link
Copy Markdown
Contributor

Fix included in accepted release 4.22.0-0.nightly-2026-04-01-092906

@djoshy djoshy deleted the add-skew-docs branch April 9, 2026 15:40
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. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants