Skip to content

Conversation

@isabella-janssen
Copy link
Member

@isabella-janssen isabella-janssen commented Nov 12, 2025

Note: this PR should merge after openshift/origin#30505.

- What I did

  • Split the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.
  • Clean up the legacy MachineConfigNodeUpdateFilesAndOS MCN condition when ImageModeStatusReporting feature gate is enabled and introduce the new MachineConfigNodeUpdateOS, MachineConfigNodeUpdateFiles and ImagePulledFromRegistry conditions.
  • Update the regression tests to reflect the new conditions.

- How to verify it
Regression test verification: The ImageModeStatusReporting regression tests should pass.

Manual verification:

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
  Conditions:
...
    Last Transition Time:  2025-11-21T01:36:19Z
    Message:               This node has not yet entered the AppliedFilesAndOS phase
    Reason:                NotYetOccurred
    Status:                False
    Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
  Conditions:
...
    Last Transition Time:  2025-11-21T01:53:07Z
    Message:               This node has not yet entered the AppliedFilesAndOS phase
    Reason:                NotYetOccurred
    Status:                False
    Type:                  AppliedFilesAndOS
...

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0      
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
  Conditions:
...
    Last Transition Time:  2025-11-21T02:09:56Z
    Message:               This node has not yet entered the AppliedFiles phase
    Reason:                NotYetOccurred
    Status:                False
    Type:                  AppliedFiles
    Last Transition Time:  2025-11-21T02:09:56Z
    Message:               This node has not yet entered the AppliedOSImage phase
    Reason:                NotYetOccurred
    Status:                False
    Type:                  AppliedOSImage
    Last Transition Time:  2025-11-21T02:09:56Z
    Message:               This node has not yet entered the ImagePulledFromRegistry phase
    Reason:                NotYetOccurred
    Status:                False
    Type:                  ImagePulledFromRegistry
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
  Conditions:
...
    Last Transition Time:  2025-11-21T02:12:04Z
    Message:               Applied files. SSH Keys did need an update
    Reason:                UpdateExecutedAppliedFiles
    Status:                True
    Type:                  AppliedFiles
    Last Transition Time:  2025-11-21T02:09:57Z
    Message:               This node has not yet entered the AppliedOSImage phase
    Reason:                NotYetOccurred
    Status:                False
    Type:                  AppliedOSImage
    Last Transition Time:  2025-11-21T02:09:57Z
    Message:               This node has not yet entered the ImagePulledFromRegistry phase
    Reason:                NotYetOccurred
    Status:                False
    Type:                  ImagePulledFromRegistry
...

See below example of MCNs when cluster is launched in TechPreview:

$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Status:
  Conditions:
...
    Message:               This node has not yet entered the AppliedFiles phase
    Reason:                NotYetOccurred
    Status:                False
    Type:                  AppliedFiles
    Last Transition Time:  2025-11-21T13:03:12Z
    Message:               This node has not yet entered the AppliedOSImage phase
    Reason:                NotYetOccurred
    Status:                False
    Type:                  AppliedOSImage
...
    Last Transition Time:  2025-11-21T13:03:12Z
    Message:               This node has not yet entered the ImagePulledFromRegistry phase
    Reason:                NotYetOccurred
    Status:                False
    Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had an image update applied:

Example MC I used
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
  labels:
    machineconfiguration.openshift.io/role: infra
  name: 90-infra-testfile
spec:
  config:
    ignition:
      version: 3.2.0
    storage:
      files:
      - contents:
          source: data:,hello%20world%0A
        mode: 420
        path: /home/core/test
$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5                                                            
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
...
Status:
  Conditions:
    Last Transition Time:  2025-11-21T14:21:55Z
    Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Updated the Files on disk as a part of the in progress phase
    Reason:                AppliedFiles
    Status:                False
    Type:                  UpdateExecuted
...
    Last Transition Time:  2025-11-21T14:21:55Z
    Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Applied files. SSH Keys did need an update
    Reason:                UpdateExecutedAppliedFiles
    Status:                False
    Type:                  AppliedFiles
    Last Transition Time:  2025-11-21T13:03:12Z
    Message:               This node has not yet entered the AppliedOSImage phase
    Reason:                NotYetOccurred
    Status:                False
    Type:                  AppliedOSImage
...
    Last Transition Time:  2025-11-21T13:03:12Z
    Message:               This node has not yet entered the ImagePulledFromRegistry phase
    Reason:                NotYetOccurred
    Status:                False
    Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

I enabled Image Mode for this
$ oc create -f - << EOF
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineOSConfig
metadata:
  name: infra 
spec:               
  machineConfigPool:
    name: infra
  imageBuilder:          
    imageBuilderType: Job 
  renderedImagePushSecret:                                                                                                    
    name: $(oc get -n openshift-machine-config-operator sa builder -ojsonpath='{.secrets[0].name}')
  renderedImagePushSpec: "image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image:latest"
EOF
$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
...
Status:
  Conditions:
...
    Last Transition Time:  2025-11-21T14:45:31Z
    Message:               Action during update to image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image@sha256:e288c38055ac01cf2ba4be653d88e032f865077bb6446c48a80e01dd76a417b2: Updated the OS on disk as a part of the in progress phase
    Reason:                AppliedOSImage
    Status:                False
    Type:                  UpdateExecuted
...
    Last Transition Time:  2025-11-21T14:21:55Z
    Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Applied files. SSH Keys did need an update
    Reason:                UpdateExecutedAppliedFiles
    Status:                False
    Type:                  AppliedFiles
    Last Transition Time:  2025-11-21T14:45:31Z
    Message:               Action during update to image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image@sha256:e288c38055ac01cf2ba4be653d88e032f865077bb6446c48a80e01dd76a417b2: Applied new OS config to node.
    Reason:                UpdateExecutedAppliedOSImage
    Status:                False
    Type:                  AppliedOSImage
...
    Last Transition Time:  2025-11-21T14:45:31Z
    Message:               Action during update to image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image@sha256:e288c38055ac01cf2ba4be653d88e032f865077bb6446c48a80e01dd76a417b2: Successfully pulled OS image image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image@sha256:e288c38055ac01cf2ba4be653d88e032f865077bb6446c48a80e01dd76a417b2 from registry
    Reason:                ImagePulledFromRegistry
    Status:                False
    Type:                  ImagePulledFromRegistry
...

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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

openshift-ci-robot commented Nov 12, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

- What I did
This splits the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.

- How to verify it

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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.

@isabella-janssen isabella-janssen marked this pull request as draft November 12, 2025 21:18
@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 Nov 12, 2025
@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 12, 2025
@isabella-janssen isabella-janssen force-pushed the mco-1870 branch 3 times, most recently from 3e034f5 to eb2cfa0 Compare November 20, 2025 02:29
@isabella-janssen isabella-janssen marked this pull request as ready for review November 20, 2025 02:29
@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 Nov 20, 2025
@openshift-ci openshift-ci bot requested a review from cheesesashimi November 20, 2025 02:31
Comment on lines +168 to +169
// Note that the following two conditions replace the previous, singular
// `MachineConfigNodeUpdateFilesAndOS` condition
Copy link
Member Author

Choose a reason for hiding this comment

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

Note to reviewer: The idea here is that the MachineConfigNodeUpdateFilesAndOS condition in 4.19 and 4.20 will no longer be populated and instead we will be populating the MachineConfigNodeUpdateFiles and MachineConfigNodeUpdateOS conditions. I don't think this will cause any issues but would like a second sanity check on that.

Copy link
Contributor

Choose a reason for hiding this comment

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

We are using the MachineConfigNodeUpdateFilesAndOS just to report, isn't it? I mean, we are not reacting to it for other purposes like tracking the MCP status aren't we? If so, I don't think this should be a problem.
From a user point of view, only customers using ImageMode should see the difference I guess, cause the MachineConfigNodeUpdateFilesAndOS is still reported for non-image mode. If so, I think it's still a small user base that won't be doing something with the condition. If someone asks me for my opinion, I'd say I prefer to have this change now early in the life of the feature than later, when maybe I have created some automation around it.

Copy link
Member Author

Choose a reason for hiding this comment

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

We are using the MachineConfigNodeUpdateFilesAndOS just to report, isn't it? I mean, we are not reacting to it for other purposes like tracking the MCP status aren't we?

Yes, the condition is just for reporting, no MCP statuses are reacting to this status, and it's getting cleaned up when the FeatureGate is enabled, so it should be ok.

From a user point of view, only customers using ImageMode should see the difference I guess, cause the MachineConfigNodeUpdateFilesAndOS is still reported for non-image mode.

For now, but once the ImageModeStatusReporting FG is GAed they would instead see the split up condition always (image mode or not). We could change it so that MachineConfigNodeUpdateFilesAndOS persists for non-image mode ipdates, but it seems odd to me to keep it if there are the split, more specific conditions instead. The plan was to remove the MachineConfigNodeUpdateFilesAndOS condition at some point in favor of the two conditions (MCO-1775). Does there need to be more of a "smooth transition" than just splitting them, do you think?

Copy link
Member Author

Choose a reason for hiding this comment

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

Just documenting here that I spoke with @yuqi-zhang and @pablintino about this today. The general consensus, as I understand it (please correct me if I'm misrepresenting Pablo & Jerry), is that removing the singular, combined MachineConfigNodeUpdateFilesAndOS condition and replacing it with the separated conditions is fine considering how new the MCN resource is, the low likelihood that customers are keying scripts off the combined condition, and the idea that duplicating statuses will likely be more confusing than simply splitting the condition.

Copy link
Contributor

Choose a reason for hiding this comment

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

As a note, I realized that it's being referenced in a printer column: https://github.com/openshift/api/blob/master/machineconfiguration/v1/types_machineconfignode.go#L26

(and of course, the const below).

We should probably update that (unless that's already tracked somewhere), but I think that should be safe in the API since it's not an explicit enum or validated state.

Copy link
Member Author

Choose a reason for hiding this comment

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

Oh yes, good catch @yuqi-zhang. Given that this is not going to land today anyways, I'll make sure to have an API PR for removing that print column ready to merge alongside this PR after the 4.22 branch opens. I've also added that as an acceptance criteria for this story. Thanks for the extra set of eyes on this!

@isabella-janssen
Copy link
Member Author

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

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 20, 2025

@isabella-janssen: 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.21-periodics-e2e-aws-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-aws-mco-disruptive-techpreview-2of2

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/a0870430-c5b9-11f0-969b-64edc28a3b3d-0

@umohnani8
Copy link
Contributor

changes LGTM

@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Nov 20, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

- What I did
This splits the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.

- How to verify it

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-nsrf352-72292-hc5f6-worker-a-5gg6x
Name:         ci-ln-nsrf352-72292-hc5f6-worker-a-5gg6x
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-20T20:57:23Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-nsrf352-72292-hc5f6-master-0      
Name:         ci-ln-nsrf352-72292-hc5f6-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-20T20:41:14Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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 Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

- What I did
This splits the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.

- How to verify it

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-nsrf352-72292-hc5f6-worker-a-5gg6x
Name:         ci-ln-nsrf352-72292-hc5f6-worker-a-5gg6x
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-20T20:57:23Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-nsrf352-72292-hc5f6-master-0      
Name:         ci-ln-nsrf352-72292-hc5f6-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-20T20:41:14Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

See below example of MCNs when cluster is launched in TechPreview:

See below example of MCNs when TechPreview cluster has had an image update applied:

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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 Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

- What I did
This splits the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.

- How to verify it

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:36:19Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:53:07Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

See below example of MCNs when cluster is launched in TechPreview:

See below example of MCNs when TechPreview cluster has had an image update applied:

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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 Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

- What I did
This splits the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.

- How to verify it

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:36:19Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:53:07Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0      
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:12:04Z
   Message:               Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                True
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when cluster is launched in TechPreview:

See below example of MCNs when TechPreview cluster has had an image update applied:

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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.

…teFilesAndOS' condition to 'MachineConfigNodeUpdateOS' and 'MachineConfigNodeUpdateFiles' and introduce 'ImagePulledFromRegistry' when 'ImageModeStatusReporting' is enabled
@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

- What I did

  • Splits the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.
  • Clean up the legacy MachineConfigNodeUpdateFilesAndOS MCN condition when ImageModeStatusReporting feature gate is enabled and introduce the new MachineConfigNodeUpdateOS, MachineConfigNodeUpdateFiles and ImagePulledFromRegistry conditions.

- How to verify it

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:36:19Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:53:07Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0      
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:12:04Z
   Message:               Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                True
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when cluster is launched in TechPreview:

See below example of MCNs when TechPreview cluster has had an image update applied:

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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 Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

Note that thsi PR should merge after openshift/origin#30505.

- What I did

  • Split the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.
  • Clean up the legacy MachineConfigNodeUpdateFilesAndOS MCN condition when ImageModeStatusReporting feature gate is enabled and introduce the new MachineConfigNodeUpdateOS, MachineConfigNodeUpdateFiles and ImagePulledFromRegistry conditions.
  • Update the regression tests to reflect the new conditions.

- How to verify it

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:36:19Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:53:07Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0      
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:12:04Z
   Message:               Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                True
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when cluster is launched in TechPreview:

See below example of MCNs when TechPreview cluster has had an image update applied:

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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 Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

Note: this PR should merge after openshift/origin#30505.

- What I did

  • Split the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.
  • Clean up the legacy MachineConfigNodeUpdateFilesAndOS MCN condition when ImageModeStatusReporting feature gate is enabled and introduce the new MachineConfigNodeUpdateOS, MachineConfigNodeUpdateFiles and ImagePulledFromRegistry conditions.
  • Update the regression tests to reflect the new conditions.

- How to verify it

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:36:19Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:53:07Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0      
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:12:04Z
   Message:               Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                True
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when cluster is launched in TechPreview:

See below example of MCNs when TechPreview cluster has had an image update applied:

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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.

@isabella-janssen
Copy link
Member Author

/test unit

@isabella-janssen
Copy link
Member Author

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

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 21, 2025

@isabella-janssen: 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.21-periodics-e2e-aws-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-aws-mco-disruptive-techpreview-2of2

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/5ed988b0-c685-11f0-9291-a6766f42b6b3-0

@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

Note: this PR should merge after openshift/origin#30505.

- What I did

  • Split the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.
  • Clean up the legacy MachineConfigNodeUpdateFilesAndOS MCN condition when ImageModeStatusReporting feature gate is enabled and introduce the new MachineConfigNodeUpdateOS, MachineConfigNodeUpdateFiles and ImagePulledFromRegistry conditions.
  • Update the regression tests to reflect the new conditions.

- How to verify it

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:36:19Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:53:07Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0      
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:12:04Z
   Message:               Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                True
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when cluster is launched in TechPreview:

$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Status:
 Conditions:
...
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry

See below example of MCNs when TechPreview cluster has had an image update applied:

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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.

@isabella-janssen
Copy link
Member Author

/retest-required

@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

Note: this PR should merge after openshift/origin#30505.

- What I did

  • Split the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.
  • Clean up the legacy MachineConfigNodeUpdateFilesAndOS MCN condition when ImageModeStatusReporting feature gate is enabled and introduce the new MachineConfigNodeUpdateOS, MachineConfigNodeUpdateFiles and ImagePulledFromRegistry conditions.
  • Update the regression tests to reflect the new conditions.

- How to verify it

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:36:19Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:53:07Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0      
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:12:04Z
   Message:               Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                True
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when cluster is launched in TechPreview:

$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Status:
 Conditions:
...
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had an image update applied:

$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5                                                            
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
...
Status:
 Conditions:
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Updated the Files on disk as a part of the in progress phase
   Reason:                AppliedFiles
   Status:                False
   Type:                  UpdateExecuted
...
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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 Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

Note: this PR should merge after openshift/origin#30505.

- What I did

  • Split the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.
  • Clean up the legacy MachineConfigNodeUpdateFilesAndOS MCN condition when ImageModeStatusReporting feature gate is enabled and introduce the new MachineConfigNodeUpdateOS, MachineConfigNodeUpdateFiles and ImagePulledFromRegistry conditions.
  • Update the regression tests to reflect the new conditions.

- How to verify it

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:36:19Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:53:07Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0      
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:12:04Z
   Message:               Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                True
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when cluster is launched in TechPreview:

$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Status:
 Conditions:
...
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had an image update applied:

Example MC I used
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
 labels:
   machineconfiguration.openshift.io/role: infra
 name: 90-infra-testfile
spec:
 config:
   ignition:
     version: 3.2.0
   storage:
     files:
     - contents:
         source: data:,hello%20world%0A
       mode: 420
       path: /home/core/test
$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5                                                            
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
...
Status:
 Conditions:
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Updated the Files on disk as a part of the in progress phase
   Reason:                AppliedFiles
   Status:                False
   Type:                  UpdateExecuted
...
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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 Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

Note: this PR should merge after openshift/origin#30505.

- What I did

  • Split the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.
  • Clean up the legacy MachineConfigNodeUpdateFilesAndOS MCN condition when ImageModeStatusReporting feature gate is enabled and introduce the new MachineConfigNodeUpdateOS, MachineConfigNodeUpdateFiles and ImagePulledFromRegistry conditions.
  • Update the regression tests to reflect the new conditions.

- How to verify it

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:36:19Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:53:07Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0      
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:12:04Z
   Message:               Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                True
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when cluster is launched in TechPreview:

$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Status:
 Conditions:
...
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had an image update applied:

Example MC I used
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
 labels:
   machineconfiguration.openshift.io/role: infra
 name: 90-infra-testfile
spec:
 config:
   ignition:
     version: 3.2.0
   storage:
     files:
     - contents:
         source: data:,hello%20world%0A
       mode: 420
       path: /home/core/test
$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5                                                            
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
...
Status:
 Conditions:
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Updated the Files on disk as a part of the in progress phase
   Reason:                AppliedFiles
   Status:                False
   Type:                  UpdateExecuted
...
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

I enabled Image Mode for this
oc create -f - << EOF
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineOSConfig
metadata:
 name: infra 
spec:               
 machineConfigPool:
   name: infra
 imageBuilder:          
   imageBuilderType: Job 
 renderedImagePushSecret:                                                                                                    
   name: $(oc get -n openshift-machine-config-operator sa builder -ojsonpath='{.secrets[0].name}')
 renderedImagePushSpec: "image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image:latest"
EOF

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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 Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

Note: this PR should merge after openshift/origin#30505.

- What I did

  • Split the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.
  • Clean up the legacy MachineConfigNodeUpdateFilesAndOS MCN condition when ImageModeStatusReporting feature gate is enabled and introduce the new MachineConfigNodeUpdateOS, MachineConfigNodeUpdateFiles and ImagePulledFromRegistry conditions.
  • Update the regression tests to reflect the new conditions.

- How to verify it

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:36:19Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:53:07Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0      
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:12:04Z
   Message:               Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                True
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when cluster is launched in TechPreview:

$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Status:
 Conditions:
...
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had an image update applied:

Example MC I used
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
 labels:
   machineconfiguration.openshift.io/role: infra
 name: 90-infra-testfile
spec:
 config:
   ignition:
     version: 3.2.0
   storage:
     files:
     - contents:
         source: data:,hello%20world%0A
       mode: 420
       path: /home/core/test
$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5                                                            
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
...
Status:
 Conditions:
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Updated the Files on disk as a part of the in progress phase
   Reason:                AppliedFiles
   Status:                False
   Type:                  UpdateExecuted
...
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

I enabled Image Mode for this
$ oc create -f - << EOF
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineOSConfig
metadata:
 name: infra 
spec:               
 machineConfigPool:
   name: infra
 imageBuilder:          
   imageBuilderType: Job 
 renderedImagePushSecret:                                                                                                    
   name: $(oc get -n openshift-machine-config-operator sa builder -ojsonpath='{.secrets[0].name}')
 renderedImagePushSpec: "image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image:latest"
EOF

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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.

@isabella-janssen
Copy link
Member Author

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

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 21, 2025

@isabella-janssen: 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.21-periodics-e2e-gcp-mco-disruptive-techpreview-1of2
  • periodic-ci-openshift-machine-config-operator-release-4.21-periodics-e2e-gcp-mco-disruptive-techpreview-2of2

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/fa755070-c6e8-11f0-89b5-66047601ca74-0

@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

Note: this PR should merge after openshift/origin#30505.

- What I did

  • Split the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.
  • Clean up the legacy MachineConfigNodeUpdateFilesAndOS MCN condition when ImageModeStatusReporting feature gate is enabled and introduce the new MachineConfigNodeUpdateOS, MachineConfigNodeUpdateFiles and ImagePulledFromRegistry conditions.
  • Update the regression tests to reflect the new conditions.

- How to verify it
Regression test verification:
The ImageModeStatusReporting regression tests should pass.

Manual verification:

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:36:19Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:53:07Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0      
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:12:04Z
   Message:               Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                True
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when cluster is launched in TechPreview:

$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Status:
 Conditions:
...
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had an image update applied:

Example MC I used
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
 labels:
   machineconfiguration.openshift.io/role: infra
 name: 90-infra-testfile
spec:
 config:
   ignition:
     version: 3.2.0
   storage:
     files:
     - contents:
         source: data:,hello%20world%0A
       mode: 420
       path: /home/core/test
$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5                                                            
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
...
Status:
 Conditions:
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Updated the Files on disk as a part of the in progress phase
   Reason:                AppliedFiles
   Status:                False
   Type:                  UpdateExecuted
...
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

I enabled Image Mode for this
$ oc create -f - << EOF
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineOSConfig
metadata:
 name: infra 
spec:               
 machineConfigPool:
   name: infra
 imageBuilder:          
   imageBuilderType: Job 
 renderedImagePushSecret:                                                                                                    
   name: $(oc get -n openshift-machine-config-operator sa builder -ojsonpath='{.secrets[0].name}')
 renderedImagePushSpec: "image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image:latest"
EOF

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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 Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

Note: this PR should merge after openshift/origin#30505.

- What I did

  • Split the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.
  • Clean up the legacy MachineConfigNodeUpdateFilesAndOS MCN condition when ImageModeStatusReporting feature gate is enabled and introduce the new MachineConfigNodeUpdateOS, MachineConfigNodeUpdateFiles and ImagePulledFromRegistry conditions.
  • Update the regression tests to reflect the new conditions.

- How to verify it
Regression test verification: The ImageModeStatusReporting regression tests should pass.

Manual verification:

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:36:19Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:53:07Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0      
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:12:04Z
   Message:               Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                True
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when cluster is launched in TechPreview:

$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Status:
 Conditions:
...
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had an image update applied:

Example MC I used
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
 labels:
   machineconfiguration.openshift.io/role: infra
 name: 90-infra-testfile
spec:
 config:
   ignition:
     version: 3.2.0
   storage:
     files:
     - contents:
         source: data:,hello%20world%0A
       mode: 420
       path: /home/core/test
$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5                                                            
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
...
Status:
 Conditions:
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Updated the Files on disk as a part of the in progress phase
   Reason:                AppliedFiles
   Status:                False
   Type:                  UpdateExecuted
...
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

I enabled Image Mode for this
$ oc create -f - << EOF
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineOSConfig
metadata:
 name: infra 
spec:               
 machineConfigPool:
   name: infra
 imageBuilder:          
   imageBuilderType: Job 
 renderedImagePushSecret:                                                                                                    
   name: $(oc get -n openshift-machine-config-operator sa builder -ojsonpath='{.secrets[0].name}')
 renderedImagePushSpec: "image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image:latest"
EOF

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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 Nov 21, 2025

@isabella-janssen: This pull request references MCO-1870 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.21.0" version, but no target version was set.

In response to this:

Note: this PR should merge after openshift/origin#30505.

- What I did

  • Split the singular existing MachineConfigNodeUpdateFilesAndOS MCN condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles for clusters where the ImageModeStatusReporting feature gate is enabled.
  • Clean up the legacy MachineConfigNodeUpdateFilesAndOS MCN condition when ImageModeStatusReporting feature gate is enabled and introduce the new MachineConfigNodeUpdateOS, MachineConfigNodeUpdateFiles and ImagePulledFromRegistry conditions.
  • Update the regression tests to reflect the new conditions.

- How to verify it
Regression test verification: The ImageModeStatusReporting regression tests should pass.

Manual verification:

  1. Launch a 4.21 tech preview cluster with this PR included.
  2. Apply a MachineConfig to trigger an update.
  3. Track the MCN conditions to make sure the MachineConfigNodeUpdateOS or MachineConfigNodeUpdateFiles conditions update, according to the type of update triggered.

See below example of MCNs without the ImageModeStatusReporting FeatureGate enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:36:19Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T01:53:07Z
   Message:               This node has not yet entered the AppliedFilesAndOS phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFilesAndOS
...

See below example of MCNs when the ImageModeStatusReporting FeatureGate is enabled:

$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-master-0      
Name:         ci-ln-1tv1bwb-72292-nfc7s-master-0
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:56Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...
$ oc describe machineconfignode/ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
Name:         ci-ln-1tv1bwb-72292-nfc7s-worker-a-nrmdz
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T02:12:04Z
   Message:               Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                True
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
   Last Transition Time:  2025-11-21T02:09:57Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when cluster is launched in TechPreview:

$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Status:
 Conditions:
...
   Message:               This node has not yet entered the AppliedFiles phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had an image update applied:

Example MC I used
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
 labels:
   machineconfiguration.openshift.io/role: infra
 name: 90-infra-testfile
spec:
 config:
   ignition:
     version: 3.2.0
   storage:
     files:
     - contents:
         source: data:,hello%20world%0A
       mode: 420
       path: /home/core/test
$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5                                                            
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
...
Status:
 Conditions:
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Updated the Files on disk as a part of the in progress phase
   Reason:                AppliedFiles
   Status:                False
   Type:                  UpdateExecuted
...
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the AppliedOSImage phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T13:03:12Z
   Message:               This node has not yet entered the ImagePulledFromRegistry phase
   Reason:                NotYetOccurred
   Status:                False
   Type:                  ImagePulledFromRegistry
...

See below example of MCNs when TechPreview cluster has had a non-image based update applied:

I enabled Image Mode for this
$ oc create -f - << EOF
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineOSConfig
metadata:
 name: infra 
spec:               
 machineConfigPool:
   name: infra
 imageBuilder:          
   imageBuilderType: Job 
 renderedImagePushSecret:                                                                                                    
   name: $(oc get -n openshift-machine-config-operator sa builder -ojsonpath='{.secrets[0].name}')
 renderedImagePushSpec: "image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image:latest"
EOF
$ oc describe machineconfignode/ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
Name:         ci-ln-67ydc0t-72292-srj8f-worker-a-7xvh5
...
Status:
 Conditions:
...
   Last Transition Time:  2025-11-21T14:45:31Z
   Message:               Action during update to image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image@sha256:e288c38055ac01cf2ba4be653d88e032f865077bb6446c48a80e01dd76a417b2: Updated the OS on disk as a part of the in progress phase
   Reason:                AppliedOSImage
   Status:                False
   Type:                  UpdateExecuted
...
   Last Transition Time:  2025-11-21T14:21:55Z
   Message:               Action during update to rendered-infra-d8016266a3269ea1d50b326ea2de8641: Applied files. SSH Keys did need an update
   Reason:                UpdateExecutedAppliedFiles
   Status:                False
   Type:                  AppliedFiles
   Last Transition Time:  2025-11-21T14:45:31Z
   Message:               Action during update to image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image@sha256:e288c38055ac01cf2ba4be653d88e032f865077bb6446c48a80e01dd76a417b2: Applied new OS config to node.
   Reason:                UpdateExecutedAppliedOSImage
   Status:                False
   Type:                  AppliedOSImage
...
   Last Transition Time:  2025-11-21T14:45:31Z
   Message:               Action during update to image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image@sha256:e288c38055ac01cf2ba4be653d88e032f865077bb6446c48a80e01dd76a417b2: Successfully pulled OS image image-registry.openshift-image-registry.svc:5000/openshift-machine-config-operator/ocb-image@sha256:e288c38055ac01cf2ba4be653d88e032f865077bb6446c48a80e01dd76a417b2 from registry
   Reason:                ImagePulledFromRegistry
   Status:                False
   Type:                  ImagePulledFromRegistry
...

- Description for the changelog
MCO-1870: Split MachineConfigNodeUpdateFilesAndOS condition into MachineConfigNodeUpdateOS and MachineConfigNodeUpdateFiles

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.

@isabella-janssen
Copy link
Member Author

isabella-janssen commented Nov 21, 2025

/hold

This should land after openshift/origin#30505, which is currently blocked by CI failures (see this Slack thread).

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Nov 21, 2025
Copy link
Contributor

@pablintino pablintino left a comment

Choose a reason for hiding this comment

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

/lgtm

needsImagePulledFromRegistry := true
var newConditions []metav1.Condition
for _, condition := range mcn.Status.Conditions {
//nolint:gocritic // (ijanssen) the linter thinks this block would be clearer as a switch statement, but I disagree
Copy link
Contributor

Choose a reason for hiding this comment

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

+1 on your opinion

Comment on lines +168 to +169
// Note that the following two conditions replace the previous, singular
// `MachineConfigNodeUpdateFilesAndOS` condition
Copy link
Contributor

Choose a reason for hiding this comment

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

We are using the MachineConfigNodeUpdateFilesAndOS just to report, isn't it? I mean, we are not reacting to it for other purposes like tracking the MCP status aren't we? If so, I don't think this should be a problem.
From a user point of view, only customers using ImageMode should see the difference I guess, cause the MachineConfigNodeUpdateFilesAndOS is still reported for non-image mode. If so, I think it's still a small user base that won't be doing something with the condition. If someone asks me for my opinion, I'd say I prefer to have this change now early in the life of the feature than later, when maybe I have created some automation around it.

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Nov 21, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 21, 2025

[APPROVALNOTIFIER] This PR is APPROVED

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

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

The pull request process is described here

Needs approval from an approver in each of these files:
  • OWNERS [isabella-janssen,pablintino]

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

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants