Skip to content

MCO-1984: Add Component Readiness tests for boot image skew enforcement#5547

Open
djoshy wants to merge 2 commits intoopenshift:mainfrom
djoshy:implement-skew-enforcement-e2e
Open

MCO-1984: Add Component Readiness tests for boot image skew enforcement#5547
djoshy wants to merge 2 commits intoopenshift:mainfrom
djoshy:implement-skew-enforcement-e2e

Conversation

@djoshy
Copy link
Contributor

@djoshy djoshy commented Jan 12, 2026

This PR adds 7 e2e tests for the boot image skew enforcement feature:

  1. Manual mode with RHCOSVersion within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  2. Manual mode with RHCOSVersion outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  3. Manual mode with OCPVersion within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  4. Manual mode with OCPVersion outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  5. Automatic mode within skew limits — Uses the default Automatic mode, backdates a boot image resulting in a reconciliation loop and then verifies that the CO's Upgradeable condition is True.
  6. Automatic mode with degraded controller — Uses Automatic mode but injects an older boot image with a non-existent user-data secret, causing the boot image controller to degrade. Verifies the CO's Upgradeable condition is False. Then, restores the MachineSet, and verifies that the CO's Upgradeable condition is set back to True.
  7. None mode (opted out) — Sets None mode to opt out of skew enforcement and verifies the CO's Upgradeable condition is True.

Additional notes:

  • I have also refactoored a few helpers based on review, they have been broken out into a separate commit.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jan 12, 2026
@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Jan 12, 2026

@djoshy: This pull request references MCO-1984 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

This PR adds 5 e2e tests for the boot image skew enforcement feature. It's based on #5428 and should only merge after that PR lands. Only the last commit is relevant to this PR; the remaining are from #5428. Tests added:

  1. Manual mode within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  2. Manual mode outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  3. Automatic mode — Uses the default Automatic mode and verifies the CO's Upgradeable condition is True.
  4. Automatic mode with degraded controller — Uses Automatic mode but injects an older boot image with a non-existent user-data secret, causing the boot image controller to degrade. Verifies the CO's Upgradeable condition is False.
  5. None mode (opted out) — Sets None mode to opt out of skew enforcement and verifies the CO's Upgradeable condition is True.

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 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 Jan 12, 2026
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 12, 2026

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 Jan 12, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: djoshy

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 Jan 12, 2026
@djoshy djoshy force-pushed the implement-skew-enforcement-e2e branch from 0415a0f to 12f0f71 Compare January 12, 2026 20:34
@djoshy
Copy link
Contributor Author

djoshy commented Jan 12, 2026

/payload-job periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-2of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-2of2

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 12, 2026

@djoshy: trigger 4 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-azure-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-2of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-2of2

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/0d85c830-eff6-11f0-8cec-7bb3f17fd777-0

@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Jan 12, 2026

@djoshy: This pull request references MCO-1984 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

This PR adds 5 e2e tests for the boot image skew enforcement feature. It's based on #5428 and should only merge after that PR lands. Only the last commit is relevant to this PR; the remaining are from #5428. Tests added:

  1. Manual mode within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  2. Manual mode outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  3. Automatic mode — Uses the default Automatic mode and verifies the CO's Upgradeable condition is True.
  4. Automatic mode with degraded controller — Uses Automatic mode but injects an older boot image with a non-existent user-data secret, causing the boot image controller to degrade. Verifies the CO's Upgradeable condition is False.
  5. None mode (opted out) — Sets None mode to opt out of skew enforcement and verifies the CO's Upgradeable condition is True.

Additional note: It also has some minor verify fixes that was encountering locally that I kept in the same commit(mostly lack of "%s"), I'm happy to break it into a separate commit if needed.

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
Copy link
Contributor

openshift-ci-robot commented Jan 12, 2026

@djoshy: This pull request references MCO-1984 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

This PR adds 5 e2e tests for the boot image skew enforcement feature. It's based on #5428 and should only merge after that PR lands. Only the last commit is relevant to this PR; the remaining are from #5428. Tests added:

  1. Manual mode within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  2. Manual mode outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  3. Automatic mode — Uses the default Automatic mode and verifies the CO's Upgradeable condition is True.
  4. Automatic mode with degraded controller — Uses Automatic mode but injects an older boot image with a non-existent user-data secret, causing the boot image controller to degrade. Verifies the CO's Upgradeable condition is False.
  5. None mode (opted out) — Sets None mode to opt out of skew enforcement and verifies the CO's Upgradeable condition is True.

Additional note: It also has some minor verify fixes that I was encountering locally. I kept the fixes in the same commit(they were just lack of "%s" specifiers), but I'm happy to break it into a separate commit if needed.

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 djoshy force-pushed the implement-skew-enforcement-e2e branch from 12f0f71 to 80fa5d5 Compare January 13, 2026 15:11
@djoshy
Copy link
Contributor Author

djoshy commented Jan 13, 2026

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

/payload-job periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-2of2

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 13, 2026

@djoshy: trigger 2 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-gcp-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-2of2

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/1ca51e00-f092-11f0-88fd-2976531df82a-0

@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Jan 13, 2026

@djoshy: This pull request references MCO-1984 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

This PR adds 5 e2e tests for the boot image skew enforcement feature. It's based on #5428 and #5539 and should only merge after those PRs have landed. Only the last commit is relevant to the e2es; the remaining are from #5428 and #5539. Tests added:

  1. Manual mode within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  2. Manual mode outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  3. Automatic mode — Uses the default Automatic mode and verifies the CO's Upgradeable condition is True.
  4. Automatic mode with degraded controller — Uses Automatic mode but injects an older boot image with a non-existent user-data secret, causing the boot image controller to degrade. Verifies the CO's Upgradeable condition is False.
  5. None mode (opted out) — Sets None mode to opt out of skew enforcement and verifies the CO's Upgradeable condition is True.

Additional note: It also has some minor verify fixes that I was encountering locally. I kept the fixes in the same commit(they were just lack of "%s" specifiers), but I'm happy to break it into a separate commit if needed.

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
Copy link
Contributor

openshift-ci-robot commented Jan 13, 2026

@djoshy: This pull request references MCO-1984 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

This PR adds 5 e2e tests for the boot image skew enforcement feature. It's based on #5428 and should only merge after that PR has landed. Only the last commit is relevant to the e2e. Tests added:

  1. Manual mode within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  2. Manual mode outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  3. Automatic mode — Uses the default Automatic mode and verifies the CO's Upgradeable condition is True.
  4. Automatic mode with degraded controller — Uses Automatic mode but injects an older boot image with a non-existent user-data secret, causing the boot image controller to degrade. Verifies the CO's Upgradeable condition is False.
  5. None mode (opted out) — Sets None mode to opt out of skew enforcement and verifies the CO's Upgradeable condition is True.

Additional note: It also has some minor verify fixes that I was encountering locally. I kept the fixes in the same commit(they were just lack of "%s" specifiers), but I'm happy to break it into a separate commit if needed.

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
Contributor Author

djoshy commented Jan 13, 2026

/payload-abort

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 13, 2026

@djoshy: aborted 2 active payload job(s) for pull request #5547

@djoshy
Copy link
Contributor Author

djoshy commented Jan 13, 2026

/payload-job periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-2of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-2of2

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 13, 2026

@djoshy: trigger 4 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-azure-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-2of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-2of2

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/9b814080-f0a3-11f0-8afd-59d511167709-0

@djoshy djoshy force-pushed the implement-skew-enforcement-e2e branch from b38b41c to 31cba48 Compare January 16, 2026 13:54
@djoshy
Copy link
Contributor Author

djoshy commented Jan 16, 2026

/payload-job periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-2of2

rebased to capture changes from #5539, and now that openshift/api#2648 has landed, these tests should begin to pass. Unsure if the CRD will show up in the test suites yet, but doing a single run to see

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 16, 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-gcp-mco-disruptive-techpreview-2of2

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/7ac7ae50-f2e3-11f0-827a-c71b5cd03599-0

@djoshy djoshy marked this pull request as ready for review January 16, 2026 13:58
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 16, 2026
@openshift-ci openshift-ci bot requested a review from cheesesashimi January 16, 2026 13:59
@djoshy
Copy link
Contributor Author

djoshy commented Jan 26, 2026

@sergiordlr Thanks for the review! I've addressed all your comments:

  • refactor skew enforcement tests to use reusable MachineConfiguration methods (SetManualSkew, SetNoneSkew, RemoveSkew) instead of YAML templates
  • use MachineSet helper methods for manipulating the provider
  • use Eventually instead of Expect with descriptive messages for Upgradeable CO checks
  • add spec save/restore for MachineConfiguration so original state is not lost

We need to take into account that the skew functionality will break the existing test cases configuring machineset bootimages, since those test cases test the Partial and the None configurations and those configurations are forbidden when skew is automatic.

When adding the test cases for the skew functionality, if possible, we should add the code to configure Skew mode None in the already existing bootimages test cases so that they don't collide.

Thanks for calling this out! As boot image tests for GCP & AWS are not part of the disruptive suite(they're in origin instead), I overlooked this. I have landed a fix for it via openshift/origin#30712. For Azure/vsphere, they would get affected once boot image updates are enabled by default, so I have added those test changes as part of #5583.

@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Jan 26, 2026

@djoshy: This pull request references MCO-1984 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

This PR adds 5 e2e tests for the boot image skew enforcement feature. It's based on #5428 and should only merge after that PR has landed. Only the last commit is relevant to the e2e. Tests added:

  1. Manual mode within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  2. Manual mode outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  3. Automatic mode — Uses the default Automatic mode and verifies the CO's Upgradeable condition is True.
  4. Automatic mode with degraded controller — Uses Automatic mode but injects an older boot image with a non-existent user-data secret, causing the boot image controller to degrade. Verifies the CO's Upgradeable condition is False. Then, restores the MachineSet, and verifies that the CO's Upgradeable condition is set back to True.
  5. None mode (opted out) — Sets None mode to opt out of skew enforcement and verifies the CO's Upgradeable condition is True.

Additional note: It also has some minor verify fixes that I was encountering locally; they have been broken out into a different commit.

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 djoshy force-pushed the implement-skew-enforcement-e2e branch from 103d692 to 2fb346c Compare January 27, 2026 21:25
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 27, 2026
@djoshy djoshy force-pushed the implement-skew-enforcement-e2e branch from 2fb346c to fa8426d Compare January 27, 2026 21:31
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 27, 2026
@djoshy
Copy link
Contributor Author

djoshy commented Jan 27, 2026

/payload-job periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-2of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-2of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-2of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-vsphere-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-vsphere-mco-disruptive-techpreview-2of2

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 27, 2026

@djoshy: trigger 8 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-azure-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-2of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-2of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-2of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-vsphere-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-vsphere-mco-disruptive-techpreview-2of2

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/c27e82e0-fbc7-11f0-8bc9-171b6f3158dc-0

@djoshy djoshy force-pushed the implement-skew-enforcement-e2e branch from fa8426d to 9e4256c Compare January 28, 2026 15:06
@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Jan 28, 2026

@djoshy: This pull request references MCO-1984 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

This PR adds 7 e2e tests for the boot image skew enforcement feature. It's based on #5428 and should only merge after that PR has landed. Only the last commit is relevant to the e2e. Tests added:

  1. Manual mode with RHCOSVersion within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  2. Manual mode with RHCOSVersion outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  3. Manual mode with OCPVersion within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  4. Manual mode with OCPVersion outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  5. Automatic mode within skew limits — Uses the default Automatic mode, backdates a boot image resulting in a reconciliation loop and then verifies that the CO's Upgradeable condition is True.
  6. Automatic mode with degraded controller — Uses Automatic mode but injects an older boot image with a non-existent user-data secret, causing the boot image controller to degrade. Verifies the CO's Upgradeable condition is False. Then, restores the MachineSet, and verifies that the CO's Upgradeable condition is set back to True.
  7. None mode (opted out) — Sets None mode to opt out of skew enforcement and verifies the CO's Upgradeable condition is True.

Additional notes:

  • I also did some minor verify fixes that I was encountering locally; they have been broken out into a different commit.
  • I have also moved a few helpers around since these tests lives in the extended-priv folder.

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
Copy link
Contributor

openshift-ci-robot commented Jan 28, 2026

@djoshy: This pull request references MCO-1984 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

This PR adds 7 e2e tests for the boot image skew enforcement feature. It's based on #5428 and should only merge after that PR has landed. Only the last 3 commits are relevant to the e2es. Tests added:

  1. Manual mode with RHCOSVersion within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  2. Manual mode with RHCOSVersion outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  3. Manual mode with OCPVersion within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  4. Manual mode with OCPVersion outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  5. Automatic mode within skew limits — Uses the default Automatic mode, backdates a boot image resulting in a reconciliation loop and then verifies that the CO's Upgradeable condition is True.
  6. Automatic mode with degraded controller — Uses Automatic mode but injects an older boot image with a non-existent user-data secret, causing the boot image controller to degrade. Verifies the CO's Upgradeable condition is False. Then, restores the MachineSet, and verifies that the CO's Upgradeable condition is set back to True.
  7. None mode (opted out) — Sets None mode to opt out of skew enforcement and verifies the CO's Upgradeable condition is True.

Additional notes:

  • I also did some minor verify fixes that I was encountering locally; they have been broken out into a different commit.
  • I have also moved a few helpers around since these tests lives in the extended-priv folder.

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.


// Verify that the boot image controller is not degraded
machineConfiguration.WaitForBootImageControllerDegradedState(false)

Copy link
Contributor

Choose a reason for hiding this comment

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

Should we check here that the machineconfiguration.status is reporting the right coreos version?

Same question regarding the other test checking the automatic mode.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We could, but realistically this is not going to change in error mode or success, since it would be the current version from the start. We would be checking API validation in a way, which seems not necessary.

@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Jan 30, 2026

@djoshy: This pull request references MCO-1984 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

This PR adds 7 e2e tests for the boot image skew enforcement feature. It's based on #5428 and should only merge after that PR has landed. Only the last 2 commits are relevant to the e2es. Tests added:

  1. Manual mode with RHCOSVersion within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  2. Manual mode with RHCOSVersion outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  3. Manual mode with OCPVersion within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  4. Manual mode with OCPVersion outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  5. Automatic mode within skew limits — Uses the default Automatic mode, backdates a boot image resulting in a reconciliation loop and then verifies that the CO's Upgradeable condition is True.
  6. Automatic mode with degraded controller — Uses Automatic mode but injects an older boot image with a non-existent user-data secret, causing the boot image controller to degrade. Verifies the CO's Upgradeable condition is False. Then, restores the MachineSet, and verifies that the CO's Upgradeable condition is set back to True.
  7. None mode (opted out) — Sets None mode to opt out of skew enforcement and verifies the CO's Upgradeable condition is True.

Additional notes:

  • I have also refactoored a few helpers based on review, they have been broken out into a separate commit.

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 djoshy force-pushed the implement-skew-enforcement-e2e branch from 9e4256c to 2e00151 Compare January 30, 2026 19:44
@djoshy
Copy link
Contributor Author

djoshy commented Jan 30, 2026

/payload-job periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-2of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-2of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-2of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-vsphere-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-vsphere-mco-disruptive-techpreview-2of2

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 30, 2026

@djoshy: trigger 8 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-azure-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-2of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-2of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-2of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-vsphere-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-vsphere-mco-disruptive-techpreview-2of2

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/16cc1580-fe14-11f0-9575-bd1d6722ebb3-0

@djoshy
Copy link
Contributor Author

djoshy commented Jan 30, 2026

Updated and rebased per @sergiordlr's review above.

@djoshy
Copy link
Contributor Author

djoshy commented Jan 31, 2026

/retest

@djoshy djoshy force-pushed the implement-skew-enforcement-e2e branch 3 times, most recently from 2e42e44 to c018110 Compare February 3, 2026 16:06
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 3, 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-hypershift c018110 link true /test e2e-hypershift
ci/prow/e2e-aws-ovn c018110 link true /test e2e-aws-ovn
ci/prow/e2e-gcp-op-1of2 c018110 link true /test e2e-gcp-op-1of2
ci/prow/e2e-gcp-op-2of2 c018110 link true /test e2e-gcp-op-2of2
ci/prow/e2e-gcp-op-single-node c018110 link true /test e2e-gcp-op-single-node
ci/prow/e2e-gcp-op-ocl c018110 link false /test e2e-gcp-op-ocl
ci/prow/images c018110 link true /test images
ci/prow/e2e-aws-ovn-upgrade c018110 link true /test e2e-aws-ovn-upgrade

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
Contributor

sergiordlr commented Feb 5, 2026

These tests will be used for regression testing. They are the implementation of MCO-1803

@djoshy djoshy force-pushed the implement-skew-enforcement-e2e branch from c018110 to ed0b5ca Compare February 5, 2026 18:39
@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Feb 5, 2026

@djoshy: This pull request references MCO-1984 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

This PR adds 7 e2e tests for the boot image skew enforcement feature:

  1. Manual mode with RHCOSVersion within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  2. Manual mode with RHCOSVersion outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  3. Manual mode with OCPVersion within skew limits — Sets manual mode with a compliant boot image and verifies the CO's Upgradeable condition is True.
  4. Manual mode with OCPVersion outside skew limits — Sets manual mode with a non-compliant boot image and verifies the CO's Upgradeable condition is False.
  5. Automatic mode within skew limits — Uses the default Automatic mode, backdates a boot image resulting in a reconciliation loop and then verifies that the CO's Upgradeable condition is True.
  6. Automatic mode with degraded controller — Uses Automatic mode but injects an older boot image with a non-existent user-data secret, causing the boot image controller to degrade. Verifies the CO's Upgradeable condition is False. Then, restores the MachineSet, and verifies that the CO's Upgradeable condition is set back to True.
  7. None mode (opted out) — Sets None mode to opt out of skew enforcement and verifies the CO's Upgradeable condition is True.

Additional notes:

  • I have also refactoored a few helpers based on review, they have been broken out into a separate commit.

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
Contributor Author

djoshy commented Feb 5, 2026

/payload-job periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-2of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-2of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-2of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-vsphere-mco-disruptive-techpreview-1of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-vsphere-mco-disruptive-techpreview-2of2 periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-metal-ipi-ovn-dualstack-mco-disruptive-techpreview periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-metal-ipi-ovn-ipv6-mco-disruptive-techpreview periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-metal-ipi-ovn-ipv4-mco-disruptive-techpreview

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 5, 2026

@djoshy: trigger 11 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-azure-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-2of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-gcp-mco-disruptive-techpreview-2of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-aws-mco-disruptive-techpreview-2of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-vsphere-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-vsphere-mco-disruptive-techpreview-2of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-metal-ipi-ovn-dualstack-mco-disruptive-techpreview
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-metal-ipi-ovn-ipv6-mco-disruptive-techpreview
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-metal-ipi-ovn-ipv4-mco-disruptive-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/72a61000-02c3-11f1-9d99-57ef686a0021-0

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-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants