Skip to content

Conversation

@yoavsc0302
Copy link
Contributor

A machine config manifest was introduced to work around OCPBUGS-26580, where DNS is not properly set up on first boot when booting from iSCSI storage.

However, this manifest was only added during day1 installation when iSCSI disks were detected. This caused day2 nodes with iSCSI disks to fail joining clusters that had no iSCSI disks on day1, because the workaround manifest was not present in the cluster.

This PR changes the behavior to always add the workaround manifest. The script installed by the manifest is a no-op if no iSCSI disks are detected, making this change safe.

Related: https://issues.redhat.com/browse/OCPBUGS-26580

List all the issues related to this PR

  • New Feature
  • Enhancement
  • Bug fix
  • Tests
  • Documentation
  • CI/CD

What environments does this code impact?

  • Automation (CI, tools, etc)
  • Cloud
  • Operator Managed Deployments
  • None

How was this code tested?

  • assisted-test-infra environment
  • dev-scripts environment
  • Reviewer's test appreciated
  • Waiting for CI to do a full test run
  • Manual (Elaborate on how it was tested)
  • No tests needed

Checklist

  • Title and description added to both, commit and PR.
  • Relevant issues have been associated (see CONTRIBUTING guide)
  • This change does not require a documentation update (docstring, docs, README, etc)
  • Does this change include unit-tests (note that code changes require unit-tests)

Reviewers Checklist

  • Are the title and description (in both PR and commit) meaningful and clear?
  • Is there a bug required (and linked) for this change?
  • Should this PR be backported?

…support

A machine config manifest was introduced to work around OCPBUGS-26580, where
DNS is not properly set up on first boot when booting from iSCSI storage.

However, this manifest was only added during day1 installation when iSCSI
disks were detected. This caused day2 nodes with iSCSI disks to fail joining
clusters that had no iSCSI disks on day1, because the workaround manifest
was not present in the cluster.

This PR changes the behavior to always add the workaround manifest. The
script installed by the manifest is a no-op if no iSCSI disks are detected,
making this change safe.

Related: https://issues.redhat.com/browse/OCPBUGS-26580
@openshift-ci-robot
Copy link

openshift-ci-robot commented Dec 29, 2025

@yoavsc0302: This pull request references MGMT-20499 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 bug to target the "4.22.0" version, but no target version was set.

Details

In response to this:

A machine config manifest was introduced to work around OCPBUGS-26580, where DNS is not properly set up on first boot when booting from iSCSI storage.

However, this manifest was only added during day1 installation when iSCSI disks were detected. This caused day2 nodes with iSCSI disks to fail joining clusters that had no iSCSI disks on day1, because the workaround manifest was not present in the cluster.

This PR changes the behavior to always add the workaround manifest. The script installed by the manifest is a no-op if no iSCSI disks are detected, making this change safe.

Related: https://issues.redhat.com/browse/OCPBUGS-26580

List all the issues related to this PR

  • New Feature
  • Enhancement
  • Bug fix
  • Tests
  • Documentation
  • CI/CD

What environments does this code impact?

  • Automation (CI, tools, etc)
  • Cloud
  • Operator Managed Deployments
  • None

How was this code tested?

  • assisted-test-infra environment
  • dev-scripts environment
  • Reviewer's test appreciated
  • Waiting for CI to do a full test run
  • Manual (Elaborate on how it was tested)
  • No tests needed

Checklist

  • Title and description added to both, commit and PR.
  • Relevant issues have been associated (see CONTRIBUTING guide)
  • This change does not require a documentation update (docstring, docs, README, etc)
  • Does this change include unit-tests (note that code changes require unit-tests)

Reviewers Checklist

  • Are the title and description (in both PR and commit) meaningful and clear?
  • Is there a bug required (and linked) for this change?
  • Should this PR be backported?

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

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

coderabbitai bot commented Dec 29, 2025

Walkthrough

Changes modify NIC reapply manifest generation from a conditional approach based on ISCSI boot detection to an unconditional strategy that always generates manifests across all roles. Implementation logic is updated alongside test cases to reflect this new behavior.

Changes

Cohort / File(s) Summary
Implementation
internal/network/manifests_generator.go
Replaces conditional manifest generation with unconditional logic; removes host-ISCSI boot detection and associated imports; adds logging for manifest addition; control flow changes from skip to unconditional creation with runtime template handling no-op behavior on non-ISCSI nodes
Test Updates
internal/network/manifests_generator_test.go
Updates test descriptions and assertions to expect manifest creation in Multipath FC scenario; adds new test case for day-2 host support without ISCSI installations; introduces failure path test for manifest creation errors

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 4461671 and a534819.

📒 Files selected for processing (2)
  • internal/network/manifests_generator.go
  • internal/network/manifests_generator_test.go
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • internal/network/manifests_generator.go
  • internal/network/manifests_generator_test.go
🧬 Code graph analysis (1)
internal/network/manifests_generator_test.go (2)
internal/operators/manager.go (1)
  • Manifest (44-49)
models/manifest.go (1)
  • ManifestFolderOpenshift (71-71)
🔇 Additional comments (3)
internal/network/manifests_generator_test.go (3)

1207-1233: LGTM!

The test correctly validates the new unconditional manifest generation behavior. The updated description and expectations (2 manifest creation calls) align with the implementation changes, ensuring manifests are created even for Multipath FC drives.


1234-1241: LGTM!

This test case directly validates the core requirement from the PR objectives: manifests are now created unconditionally to support day2 hosts with iSCSI disks, even when day1 hosts don't have iSCSI drives. The test expectations are correct (2 calls for master and worker roles).


1242-1248: LGTM!

The failure test correctly validates error propagation and message formatting. The test ensures that manifest creation failures are properly handled and reported with clear context (filename).


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

@openshift-ci openshift-ci bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Dec 29, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

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

⚠️ Outside diff range comments (1)
internal/network/manifests_generator.go (1)

627-627: Fix typo in error log message.

The error message contains "reqpply" which should be "reapply".

🔎 Proposed fix
-			log.WithError(err).Error("Failed to create nic reqpply manifest")
+			log.WithError(err).Error("Failed to create nic reapply manifest")
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 4461671 and a534819.

📒 Files selected for processing (2)
  • internal/network/manifests_generator.go
  • internal/network/manifests_generator_test.go
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • internal/network/manifests_generator.go
  • internal/network/manifests_generator_test.go
🧬 Code graph analysis (1)
internal/network/manifests_generator_test.go (2)
internal/operators/manager.go (1)
  • Manifest (44-49)
models/manifest.go (1)
  • ManifestFolderOpenshift (71-71)
🔇 Additional comments (3)
internal/network/manifests_generator_test.go (3)

1207-1233: LGTM!

The test correctly validates the new unconditional manifest generation behavior. The updated description and expectations (2 manifest creation calls) align with the implementation changes, ensuring manifests are created even for Multipath FC drives.


1234-1241: LGTM!

This test case directly validates the core requirement from the PR objectives: manifests are now created unconditionally to support day2 hosts with iSCSI disks, even when day1 hosts don't have iSCSI drives. The test expectations are correct (2 calls for master and worker roles).


1242-1248: LGTM!

The failure test correctly validates error propagation and message formatting. The test ensures that manifest creation failures are properly handled and reported with clear context (filename).

@openshift-ci
Copy link

openshift-ci bot commented Dec 29, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: yoavsc0302

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

The pull request process is described here

Details Needs approval from an approver in each of these files:

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

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Dec 29, 2025
@codecov
Copy link

codecov bot commented Dec 29, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 43.50%. Comparing base (4461671) to head (a534819).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #8705      +/-   ##
==========================================
- Coverage   43.50%   43.50%   -0.01%     
==========================================
  Files         411      411              
  Lines       71264    71254      -10     
==========================================
- Hits        31004    30999       -5     
+ Misses      37500    37497       -3     
+ Partials     2760     2758       -2     
Files with missing lines Coverage Δ
internal/network/manifests_generator.go 76.69% <100.00%> (-0.16%) ⬇️

... and 3 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@yoavsc0302
Copy link
Contributor Author

/retest

@openshift-ci
Copy link

openshift-ci bot commented Dec 29, 2025

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

Test name Commit Details Required Rerun command
ci/prow/okd-scos-images a534819 link true /test okd-scos-images

Full PR test history. Your PR dashboard.

Details

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

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants