Skip to content

Conversation

@djoshy
Copy link
Contributor

@djoshy djoshy commented Jan 9, 2026

- What I did
This PR refactors how the boot image configuration status is populated so that the admin opinion for machine manager A does not override the platform default for machine manager B. It also updates the unit tests to handle these new scenarios.

- How to verify it
This PR can be verified by tweaking the boot image configuration and observing the MachineConfiguration status object. Note that the default CPMS opinion is disabled, while the default for standard MachineSets are platform dependent. Note that this feature is still under techpreview, so you will need a cluster launched with TP enabled.

Here are some examples:
On a platform that supports boot image updates by default(GCP, AWS), with no admin opinion:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
spec:
status:
  managedBootImagesStatus:
    machineManagers:
      - resource: controlplanemachinesets
        apiGroup: machine.openshift.io
        selection:
          mode: None
      - resource: machinesets
        apiGroup: machine.openshift.io
        selection:
          mode: All

On a platform that supports boot image updates but needs opt-in(Azure):

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
spec:
status:
  managedBootImagesStatus:
    machineManagers:
      - resource: controlplanemachinesets
        apiGroup: machine.openshift.io
        selection:
          mode: None
      - resource: machinesets
        apiGroup: machine.openshift.io
        selection:
          mode: None

On a platform that supports boot image updates, but with an admin opt-out opinion for standard machinesets:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
spec:
  managedBootImages:
    machineManagers:
      - resource: machinesets
        apiGroup: machine.openshift.io
        selection:
          mode: None
status:
  managedBootImagesStatus:
    machineManagers:
      - resource: controlplanemachinesets
        apiGroup: machine.openshift.io
        selection:
          mode: None
      - resource: machinesets
        apiGroup: machine.openshift.io
        selection:
          mode: None

On a platform that supports boot image updates by default(GCP,AWS), but with an admin opt-in opinion for controlplanemachinesets:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
spec:
  managedBootImages:
    machineManagers:
      - resource: controlplanemachinesets
        apiGroup: machine.openshift.io
        selection:
          mode: All
status:
  managedBootImagesStatus:
    machineManagers:
      - resource: controlplanemachinesets
        apiGroup: machine.openshift.io
        selection:
          mode: All
      - resource: machinesets
        apiGroup: machine.openshift.io
        selection:
          mode: All

On a platform that supports boot image updates and needs opt-in(Azure), but with an admin opt-in opinion for controlplanemachinesets:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
spec:
  managedBootImages:
    machineManagers:
      - resource: controlplanemachinesets
        apiGroup: machine.openshift.io
        selection:
          mode: All
status:
  managedBootImagesStatus:
    machineManagers:
      - resource: controlplanemachinesets
        apiGroup: machine.openshift.io
        selection:
          mode: All
      - resource: machinesets
        apiGroup: machine.openshift.io
        selection:
          mode: None

On a platform that supports boot image updates for standard machinesets but not control plane machinesets(vsphere) (note that if #5540 has landed, this test case would not be possible):

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
  name: cluster
  namespace: openshift-machine-config-operator
spec:
  managedBootImages:
    machineManagers:
      - resource: controlplanemachinesets
        apiGroup: machine.openshift.io
        selection:
          mode: All
status:
  managedBootImagesStatus:
      - resource: machinesets
        apiGroup: machine.openshift.io
        selection:
          mode: None

That should cover most cases, but I'm sure there's a ton more combinations we could test for 😄

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

openshift-ci bot commented Jan 9, 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-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. labels Jan 9, 2026
@openshift-ci-robot
Copy link
Contributor

@djoshy: This pull request references Jira Issue OCPBUGS-72553, 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)

Requesting review from QA contact:
/cc @sergiordlr

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

Details

In response to this:

- What I did
This PR refactors how the boot image configuration status is populated so that the admin opinion for machine manager A does not override the platform default for machine manager B. It also updates the unit tests to handle these new scenarios.

- How to verify it
This PR can be verified by tweaking the boot image configuration and observing the MachineConfiguration status object. Note that the default CPMS opinion is disabled, while the default for standard MachineSets are platform dependent. Here are some examples:
On a platform that supports boot image updates by default(GCP, AWS), with no admin opinion:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All

On a platform that supports boot image updates but needs opt-in(Azure, vsphere):

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None

On a platform that supports boot image updates, but with an admin opt-out opinion for standard machinesets:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
 managedBootImages:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None

On a platform that supports boot image updates by default(GCP,AWS), but with an admin opt-in opinion for controlplanemachinesets:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
 managedBootImages:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All

On a platform that supports boot image updates and needs opt-in(Azure, vsphere), but with an admin opt-in opinion for controlplanemachinesets:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
 managedBootImages:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None

That should cover most cases, but I'm sure there's a ton more combinations we could test for 😄

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 requested a review from sergiordlr January 9, 2026 18:09
@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jan 9, 2026
@openshift-ci-robot
Copy link
Contributor

@djoshy: This pull request references Jira Issue OCPBUGS-72553, 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)

Requesting review from QA contact:
/cc @sergiordlr

Details

In response to this:

- What I did
This PR refactors how the boot image configuration status is populated so that the admin opinion for machine manager A does not override the platform default for machine manager B. It also updates the unit tests to handle these new scenarios.

- How to verify it
This PR can be verified by tweaking the boot image configuration and observing the MachineConfiguration status object. Note that the default CPMS opinion is disabled, while the default for standard MachineSets are platform dependent. Here are some examples:
On a platform that supports boot image updates by default(GCP, AWS), with no admin opinion:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All

On a platform that supports boot image updates but needs opt-in(Azure, vsphere):

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None

On a platform that supports boot image updates, but with an admin opt-out opinion for standard machinesets:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
 managedBootImages:
   machineManagers:
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None

On a platform that supports boot image updates by default(GCP,AWS), but with an admin opt-in opinion for controlplanemachinesets:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
 managedBootImages:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All

On a platform that supports boot image updates and needs opt-in(Azure, vsphere), but with an admin opt-in opinion for controlplanemachinesets:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
 managedBootImages:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None

That should cover most cases, but I'm sure there's a ton more combinations we could test for 😄

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 default-on-cpms-handling branch from a7e5255 to e5f2448 Compare January 9, 2026 18:33
@djoshy djoshy marked this pull request as ready for review January 9, 2026 19:28
@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 9, 2026
@djoshy
Copy link
Contributor Author

djoshy commented Jan 9, 2026

/cherry-pick release-4.21

@openshift-cherrypick-robot

@djoshy: once the present PR merges, I will cherry-pick it on top of release-4.21 in a new PR and assign it to you.

Details

In response to this:

/cherry-pick release-4.21

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.

Comment on lines 160 to 161
// Returns if platform supports updating boot images on machinesets, control-plane machinesets and if updates are enabled by default
func CheckBootImagePlatform(infra *configv1.Infrastructure, fgHandler FeatureGatesHandler) (bool, bool, bool) {
Copy link
Member

Choose a reason for hiding this comment

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

Nit (non-blocking, not a strongly held opinion): I think the comment helps clarify the intended returns here, but simply returning three bools feels a touch ambiguous to me. What do you think of the idea of having named returns here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think that's valid, thanks for calling that out! I added some returns and asked claude to come up with a nicer comment above 😄

Comment on lines +2379 to +2381
// A default opt-in can happen in two ways:
// - Cluster is being installed on a release that opts the cluster in (ManagedBootImagesStatus is not defined)
// - Cluster is opted out and is being upgraded to a release that opts the cluster in (MachineSet manager has mode=None)
Copy link
Member

Choose a reason for hiding this comment

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

(praise): Thank you for adding these scenarios for context!

@djoshy djoshy force-pushed the default-on-cpms-handling branch from 72730ee to bdf935f Compare January 13, 2026 18:03
@umohnani8
Copy link
Contributor

Changes LGTM!

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

Thank you for updating the returns & comment!

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jan 13, 2026
@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

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

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/7af72780-f0da-11f0-9876-ab3f7c17da2d-0

@djoshy
Copy link
Contributor Author

djoshy commented Jan 14, 2026

/payload-abort

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 14, 2026

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

@djoshy
Copy link
Contributor Author

djoshy commented Jan 14, 2026

D'oh, looks like I forgot to consider the partial machine manager mode, I'll have a patch up for that shortly. It broke some Azure runs in my skew e2e testing 😞

@djoshy djoshy force-pushed the default-on-cpms-handling branch from bdf935f to d9b773d Compare January 14, 2026 00:53
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Jan 14, 2026
@djoshy
Copy link
Contributor Author

djoshy commented Jan 14, 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

I shifted the merge function one level up, so it includes the additional fields required by the partial mode while combining the machine managers. Hopefully that fixes it - I'm running the payloads above to confirm.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 14, 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-azure-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-2of2

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/dc191880-f0e3-11f0-865d-0a6427830cc1-0

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 14, 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-azure-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.22-periodics-e2e-azure-mco-disruptive-techpreview-2of2

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/e5707400-f0e3-11f0-9855-ee74ccba94e6-0

@djoshy djoshy force-pushed the default-on-cpms-handling branch from d9b773d to 2af6ed1 Compare January 14, 2026 12:02
@djoshy
Copy link
Contributor Author

djoshy commented Jan 14, 2026

Fixed a minor verify issue in the last push, payloads look good 😄

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

openshift-ci bot commented Jan 15, 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

@sergiordlr
Copy link
Contributor

sergiordlr commented Jan 15, 2026

A new test case was created to check this scenario

https://polarion.engineering.redhat.com/polarion/#/project/OSE/workitem?id=OCP-87023

The test case was executed using this PR and passed in GCP (techpreview) and AWS (techpreview).

/verified by @sergiordlr

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

@sergiordlr: This PR has been marked as verified by @sergiordlr.

Details

In response to this:

A new test case was created to check this scenario

https://polarion.engineering.redhat.com/polarion/#/project/OSE/workitem?id=OCP-87023

The test case was executed using this PR and passed

/verified by @sergiordlr

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 15, 2026

/test all

@djoshy
Copy link
Contributor Author

djoshy commented Jan 15, 2026

/override ci/prow/e2e-gcp-op-2of2

known failure being worked on in #5555

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 15, 2026

@djoshy: Overrode contexts on behalf of djoshy: ci/prow/e2e-gcp-op-2of2

Details

In response to this:

/override ci/prow/e2e-gcp-op-2of2

known failure being worked on in #5555

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.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 15, 2026

@djoshy: The following test 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/bootstrap-unit 2af6ed1 link false /test bootstrap-unit

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.

@openshift-merge-bot openshift-merge-bot bot merged commit c8a6c4f into openshift:main Jan 15, 2026
13 of 14 checks passed
@openshift-ci-robot
Copy link
Contributor

@djoshy: Jira Issue Verification Checks: Jira Issue OCPBUGS-72553
✔️ 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-72553 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:

- What I did
This PR refactors how the boot image configuration status is populated so that the admin opinion for machine manager A does not override the platform default for machine manager B. It also updates the unit tests to handle these new scenarios.

- How to verify it
This PR can be verified by tweaking the boot image configuration and observing the MachineConfiguration status object. Note that the default CPMS opinion is disabled, while the default for standard MachineSets are platform dependent. Note that this feature is still under techpreview, so you will need a cluster launched with TP enabled.

Here are some examples:
On a platform that supports boot image updates by default(GCP, AWS), with no admin opinion:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All

On a platform that supports boot image updates but needs opt-in(Azure):

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None

On a platform that supports boot image updates, but with an admin opt-out opinion for standard machinesets:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
 managedBootImages:
   machineManagers:
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None

On a platform that supports boot image updates by default(GCP,AWS), but with an admin opt-in opinion for controlplanemachinesets:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
 managedBootImages:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All

On a platform that supports boot image updates and needs opt-in(Azure), but with an admin opt-in opinion for controlplanemachinesets:

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
 managedBootImages:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All
status:
 managedBootImagesStatus:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None

On a platform that supports boot image updates for standard machinesets but not control plane machinesets(vsphere) (note that if #5540 has landed, this test case would not be possible):

apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
metadata:
 name: cluster
 namespace: openshift-machine-config-operator
spec:
 managedBootImages:
   machineManagers:
     - resource: controlplanemachinesets
       apiGroup: machine.openshift.io
       selection:
         mode: All
status:
 managedBootImagesStatus:
     - resource: machinesets
       apiGroup: machine.openshift.io
       selection:
         mode: None

That should cover most cases, but I'm sure there's a ton more combinations we could test for 😄

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-cherrypick-robot

@djoshy: new pull request created: #5559

Details

In response to this:

/cherry-pick release-4.21

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.

@openshift-merge-robot
Copy link
Contributor

Fix included in accepted release 4.22.0-0.nightly-2026-01-19-085729

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.

7 participants