Skip to content

CNF-25173: e2e: resolve primary MCP from profile in test 32364 - #1624

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
SargunNarula:fix/cnf-25173-worker-cnf-bootstrap
Sep 4, 2026
Merged

CNF-25173: e2e: resolve primary MCP from profile in test 32364#1624
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
SargunNarula:fix/cnf-25173-worker-cnf-bootstrap

Conversation

@SargunNarula

@SargunNarula SargunNarula commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Test [32364] asserts the primary MachineConfigPool stays idle after creating a second PerformanceProfile. That check is invalid when the primary pool is the built-in worker MCP, because second-mcp must inherit worker MachineConfigs as per OCPBUGS-34847, #1175.

Fixes false failures in [test_id:32364] (Create second performance profiles on a cluster) when the primary PerformanceProfile targets the built-in worker MachineConfigPool.

  • Resolve the primary MCP from the deployed profile via mcps.GetByProfile(profile) instead of ROLE_WORKER_CNF.
  • Use the resolved primaryMCP for both Updating=False checks in the test.

Summary by CodeRabbit

  • Bug Fixes
    • Improved performance profile validation across deployments by dynamically identifying the applicable machine configuration pool.
    • Prevented incorrect test failures when the deployment uses the built-in worker pool.

Test [32364] asserts the primary MachineConfigPool stays idle after
creating a second PerformanceProfile. That check is invalid when the
primary pool is the built-in worker MCP, because second-mcp must inherit
worker MachineConfigs per OCPBUGS-34847 (openshift#1175).

Resolved the watched pool with mcps.GetByProfile(profile) instead of
ROLE_WORKER_CNF, and skip when the primary pool is worker. This fixes
false failures on telco  and avoids watching the wrong pool in discovery mode.

Signed-off-by: Sargun Narula <snarula@redhat.com>
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 28e1ed74-d6a4-40b3-934e-0e4061728547

📥 Commits

Reviewing files that changed from the base of the PR and between 246b707 and f26dd8f.

📒 Files selected for processing (1)
  • test/e2e/performanceprofile/functests/1_performance/performance.go

Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review.


Walkthrough

The performance-profile test now resolves the primary MachineConfigPool from the deployed profile. It skips profiles that use the built-in worker pool and uses the resolved pool for MCP update-status checks before and after cleanup.

Changes

Performance profile test

Layer / File(s) Summary
Resolve and verify the primary MCP
test/e2e/performanceprofile/functests/1_performance/performance.go
The test resolves the primary MCP with mcps.GetByProfile(profile), skips built-in worker profiles, preserves the worker-new role setup, and uses the resolved MCP for both update-status assertions.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to f26dd

This localized test change resolves the primary MachineConfigPool from the deployed profile, preventing false failures for worker-targeted profiles; no actionable merge-blocking risk remains after normal checks and review.

Suggested reviewers: marsik, mrniranjan

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed No unstable Ginkgo test title was introduced. The diff keeps the Context("Create second performance profiles on a cluster", ...) and `It("[test_id:32364] Verifies that cluster can have multiple prof…
Test Structure And Quality ✅ Passed The change follows the existing Ginkgo structure. The test already uses BeforeEach/AfterEach, and cluster waits use bounded Consistently and deletion timeouts. The new MCP lookup has a diagnostic asse…
Microshift Test Compatibility ✅ Passed PASS: The pull request does not add a new Ginkgo test node. The diff modifies the existing [test_id:32364] test and changes which existing MachineConfigPool it observes. The parent version already c…
Single Node Openshift (Sno) Test Compatibility ✅ Passed PASS: The pull request does not add a new Ginkgo test. It updates the existing [test_id:32364] test. The test creates Kubernetes resources and checks MCP status, but it does not require multiple nod…
Topology-Aware Scheduling Compatibility ✅ Passed PASS: The pull request changes only an E2E test. It resolves an MCP name, skips the test for the built-in worker MCP, and changes status checks to use that name. It does not add or modify deployment m…
Ote Binary Stdout Contract ✅ Passed PASS. The commit changes only the performance test's Context/BeforeEach logic and two MCP status checks. It adds no fmt.Print*, log output, klog configuration, or Ginkgo suite-setup output. The new Sk…
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PASS. The patch modifies the existing [test_id:32364] setup and assertions; it adds no new Ginkgo test declaration. The added code resolves an MCP, conditionally skips the built-in worker MCP, and…
No-Weak-Crypto ✅ Passed The pull request introduces no weak-crypto usage. The exact diff only adds MCP resolution, a worker-pool skip, comments, and dynamic MCP condition checks. It adds no MD5, SHA1, DES, 3DES, RC4, Blowfis…
Container-Privileges ✅ Passed PASS. The pull request changes only test/e2e/performanceprofile/functests/1_performance/performance.go. The diff adds MCP lookup and status checks, plus comments; it adds no container or Kubernetes …
No-Sensitive-Data-In-Logs ✅ Passed The changed code does not log passwords, tokens, API keys, PII, session IDs, or customer payloads. The new diagnostics expose only a PerformanceProfile name and the resolved MachineConfigPool name thr…
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the E2E test change and the primary MCP resolution. It matches the main purpose of the pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1 files.

Full details: Stable And Deterministic Test Names

Explanation

No unstable Ginkgo test title was introduced. The diff keeps the Context("Create second performance profiles on a cluster", ...) and It("[test_id:32364] Verifies that cluster can have multiple profiles", ...) titles unchanged and uses static strings. The only dynamic text is a By(fmt.Sprintf(..., primaryMCP)) progress step inside the test body, not an It, Describe, Context, or When title. primaryMCP is not used to construct a test name.

Full details: Test Structure And Quality

Explanation

The change follows the existing Ginkgo structure. The test already uses BeforeEach/AfterEach, and cluster waits use bounded Consistently and deletion timeouts. The new MCP lookup has a diagnostic assertion message and the skip condition has a clear reason. The diff only replaces the hard-coded MCP with the resolved MCP and adds the worker-pool skip; it does not introduce an uncovered resource or an indefinite wait. Existing assertions without explicit messages were not introduced by this change.

Full details: Microshift Test Compatibility

Explanation

PASS: The pull request does not add a new Ginkgo test node. The diff modifies the existing [test_id:32364] test and changes which existing MachineConfigPool it observes. The parent version already created and queried MachineConfigPool resources, so the unavailable OpenShift API usage is pre-existing. No new MicroShift compatibility failure condition is introduced.

Full details: Single Node Openshift (Sno) Test Compatibility

Explanation

PASS: The pull request does not add a new Ginkgo test. It updates the existing [test_id:32364] test. The test creates Kubernetes resources and checks MCP status, but it does not require multiple nodes, distinct hosts, replicas, failover, scaling, or multi-node scheduling. Its existing comment explicitly allows one worker node. The new MCP lookup and built-in worker skip do not introduce an SNO-incompatible assumption.

Full details: Topology-Aware Scheduling Compatibility

Explanation

PASS: The pull request changes only an E2E test. It resolves an MCP name, skips the test for the built-in worker MCP, and changes status checks to use that name. It does not add or modify deployment manifests, operator controllers, replicas, affinity, topology spread constraints, tolerations, or control-plane/worker scheduling rules. The custom check therefore has no applicable failure condition.

Full details: Ote Binary Stdout Contract

Explanation

PASS. The commit changes only the performance test's Context/BeforeEach logic and two MCP status checks. It adds no fmt.Print*, log output, klog configuration, or Ginkgo suite-setup output. The new Skip, Expect, and mcps.GetByProfile calls run in BeforeEach, which the check excludes. Existing klog calls were not changed by this commit.

Full details: Ipv6 And Disconnected Network Test Compatibility

Explanation

PASS. The patch modifies the existing [test_id:32364] setup and assertions; it adds no new Ginkgo test declaration. The added code resolves an MCP, conditionally skips the built-in worker MCP, and checks MCP status. It adds no IPv4 address, IP parsing, IPv4-only CIDR, URL construction, public hostname, registry pull, or external network connection.

Full details: No-Weak-Crypto

Explanation

The pull request introduces no weak-crypto usage. The exact diff only adds MCP resolution, a worker-pool skip, comments, and dynamic MCP condition checks. It adds no MD5, SHA1, DES, 3DES, RC4, Blowfish, ECB, custom crypto, or secret/token comparison logic.

Full details: Container-Privileges

Explanation

PASS. The pull request changes only test/e2e/performanceprofile/functests/1_performance/performance.go. The diff adds MCP lookup and status checks, plus comments; it adds no container or Kubernetes manifest fields. No added lines introduce privileged: true, hostPID, hostNetwork, hostIPC, SYS_ADMIN, or allowPrivilegeEscalation: true. The custom check is therefore not triggered.

Full details: No-Sensitive-Data-In-Logs

Explanation

The changed code does not log passwords, tokens, API keys, PII, session IDs, or customer payloads. The new diagnostics expose only a PerformanceProfile name and the resolved MachineConfigPool name through Ginkgo output and an assertion message. These are Kubernetes resource identifiers, not internal hostnames or sensitive data. The skip message contains only fixed test and issue references.

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

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

@SargunNarula SargunNarula changed the title E2E: resolve primary MCP from profile in test 32364 CNF:25173 E2E: resolve primary MCP from profile in test 32364 Aug 31, 2026
@openshift-ci
openshift-ci Bot requested review from Tal-or and yanirq August 31, 2026 10:53
@SargunNarula SargunNarula changed the title CNF:25173 E2E: resolve primary MCP from profile in test 32364 CNF-25173 e2e: resolve primary MCP from profile in test 32364 Aug 31, 2026
@yanirq

yanirq commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Aug 31, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-operator
/test e2e-aws-ovn
/test e2e-aws-ovn-techpreview
/test e2e-gcp-pao
/test e2e-gcp-pao-updating-profile
/test e2e-gcp-pao-workloadhints
/test e2e-hypershift
/test e2e-hypershift-pao
/test e2e-no-cluster
/test e2e-upgrade

@SargunNarula

Copy link
Copy Markdown
Contributor Author

/jira refresh

@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@SargunNarula: No Jira issue is referenced in the title of this pull request.
To reference a jira issue, add 'XYZ-NNN:' to the title of this pull request and request another refresh with /jira refresh.

Details

In response to this:

/jira refresh

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.

@SargunNarula SargunNarula changed the title CNF-25173 e2e: resolve primary MCP from profile in test 32364 CNF-25173: e2e: resolve primary MCP from profile in test 32364 Sep 1, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Sep 1, 2026
@openshift-ci-robot

openshift-ci-robot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

@SargunNarula: This pull request references CNF-25173 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 sub-task to target the "5.1.0" version, but no target version was set.

Details

In response to this:

Test [32364] asserts the primary MachineConfigPool stays idle after creating a second PerformanceProfile. That check is invalid when the primary pool is the built-in worker MCP, because second-mcp must inherit worker MachineConfigs as per OCPBUGS-34847, #1175.

Fixes false failures in [test_id:32364] (Create second performance profiles on a cluster) when the primary PerformanceProfile targets the built-in worker MachineConfigPool.

  • Resolve the primary MCP from the deployed profile via mcps.GetByProfile(profile) instead of ROLE_WORKER_CNF.
  • Use the resolved primaryMCP for both Updating=False checks in the test.

Summary by CodeRabbit

  • Bug Fixes
  • Improved performance profile validation across deployments by dynamically identifying the applicable machine configuration pool.
  • Prevented incorrect test failures when the deployment uses the built-in worker pool.

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.

@SargunNarula

Copy link
Copy Markdown
Contributor Author

/jira refresh

@openshift-ci-robot

openshift-ci-robot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

@SargunNarula: This pull request references CNF-25173 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 sub-task to target the "5.1.0" version, but no target version was set.

Details

In response to this:

/jira refresh

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.

@yanirq

yanirq commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

/approve

@openshift-ci

openshift-ci Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: SargunNarula, yanirq

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 Sep 3, 2026
@SargunNarula

Copy link
Copy Markdown
Contributor Author

/verified by @SargunNarula

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Sep 4, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

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

Details

In response to this:

/verified by @SargunNarula

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

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 246b707 and 2 for PR HEAD f26dd8f in total

@openshift-ci

openshift-ci Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

@SargunNarula: all tests passed!

Full PR test history. Your PR dashboard.

Details

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

@openshift-merge-bot
openshift-merge-bot Bot merged commit c97e2bb into openshift:main Sep 4, 2026
19 checks passed
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. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants