Skip to content

OCPBUGS-93879: Create different test buckets for heavy CI jobs #31377

Open
xueqzhan wants to merge 1 commit into
openshift:mainfrom
xueqzhan:bucket-experiment
Open

OCPBUGS-93879: Create different test buckets for heavy CI jobs #31377
xueqzhan wants to merge 1 commit into
openshift:mainfrom
xueqzhan:bucket-experiment

Conversation

@xueqzhan

@xueqzhan xueqzhan commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Separate CPU-intensive tests into dedicated buckets with reduced parallelism to prevent API server/etcd overload during e2e test execution on heavy jobs.

Problem

The k8s 1.35 rebase massively expanded several test groups (DRA +46%, Pod InPlace Resize +32 table-driven entries, Pod Generation graduated to GA). When these CPU-intensive tests
run simultaneously at full parallelism (30), they overwhelm the API server and etcd, causing cascading context deadline exceeded and etcdserver: request timed out failures. This primarily affects FIPS + TechPreview upgrade jobs, which have the highest test counts and most enabled features.

Solution

Introduce a testBucketCreator interface with two implementations:

  • defaultBucketCreator: Original bucket strategy — no changes for standard jobs.
  • heavyJobBucketCreator: CPU-aware bucketing that separates CPU-intensive tests into dedicated buckets with reduced parallelism.

The strategy is selected at runtime based on the job name: jobs containing both "fips" and "techpreview" use the heavy bucketing strategy.

Heavy job bucket layout

Kube phase:

  • Kubernetes (remaining) — full parallelism
  • KubeCPUHeavy (DRA, InPlace Resize, Probing, Pod Generation, CRD) — half parallelism

OpenShift phase:

  • OpenShift (remaining) — full parallelism
  • OpenshiftCPUHeavyTier1 (OLMv1, Router/GatewayAPI, AWS CloudProvider, Network) — 1/3 parallelism
  • OpenshiftCPUHeavyTier2 (DeploymentConfig, PDB, Node/Kubelet, CLI Workloads) — 2/3 parallelism

Other buckets (Storage, NetworkK8s, Builds) run at 2/3 parallelism instead of 1/2 to reduce overhead.

Impact

I have seen huge improvement for fips tp jobs with this bucket rearrangement. But the overall job duration also increased between 15m to 20m. But given the current state of the jobs, I think it is an ok comprimise.

Summary by CodeRabbit

  • New Features
    • Expanded the test runner to discover and execute additional “CPU-heavy” Kubernetes and OpenShift test groups.
    • Improved multi-iteration execution by extending duplication and expected test counting to include these new groups.
    • Updated run sequencing to execute the new groups as separate phases in a deterministic order.
    • Added discovery logging for the new Kubernetes/OpenShift CPU-heavy buckets.

@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: automatic mode

@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 Jul 9, 2026
@xueqzhan

xueqzhan commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

This PR partitions selected Kubernetes and OpenShift tests into CPU-heavy buckets, adds discovery and --count handling, and executes them with monitored runs capped at min(25, parallelism).

Changes

CPU-heavy test scheduling

Layer / File(s) Summary
CPU-heavy bucket classification
pkg/test/ginkgo/cmd_runsuite.go
Splits matching Kubernetes and OpenShift tests into CPU-heavy buckets and logs their discovery counts.
Count-mode duplication
pkg/test/ginkgo/cmd_runsuite.go
Preserves and duplicates the new buckets for --count repetitions and includes them in expectedTestCount.
Monitored CPU-heavy execution
pkg/test/ginkgo/cmd_runsuite.go
Runs the Kubernetes and OpenShift CPU-heavy buckets with parallelism capped at 25 and appends executed tests to the aggregate list.

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

Suggested reviewers: sjenning, deads2k

🚥 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.
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 Ginkgo test titles were added or changed; the diff only adjusts suite bucketing in cmd_runsuite.go.
Test Structure And Quality ✅ Passed PASS: The PR only changes suite bucketing in cmd_runsuite.go; it adds no Ginkgo It/BeforeEach/Eventually blocks or resource setup/cleanup patterns to review.
Microshift Test Compatibility ✅ Passed Only the run-suite bucket logic changed; no new Ginkgo specs or MicroShift-unsafe test bodies were added.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR only re-buckets existing tests in cmd_runsuite.go; no new It/Describe/Context specs or SNO-sensitive assumptions were added.
Topology-Aware Scheduling Compatibility ✅ Passed The only modified file is pkg/test/ginkgo/cmd_runsuite.go, a test runner; it adds test bucket splitting and parallelism caps, not deployment/controller scheduling constraints.
Ote Binary Stdout Contract ✅ Passed Patch only adds CPU-heavy bucket splitting and logrus.Infof calls; no stdout writes or stdout logger redirection were introduced.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo tests were added; the diff only re-buckets existing tests and adjusts parallelism, so IPv4/external connectivity checks don’t apply.
No-Weak-Crypto ✅ Passed Diff only adds test-bucket splits and parallelism changes; no weak crypto, custom crypto, or secret comparisons appear in the touched file or patch.
Container-Privileges ✅ Passed PR changes only test-bucketing logic in pkg/test/ginkgo/cmd_runsuite.go; no container manifests or privilege settings were modified.
No-Sensitive-Data-In-Logs ✅ Passed The added log lines only report bucket counts and generic bucket names; no secrets, PII, hostnames, or customer data are logged.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the addition of separate heavy CI test buckets.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci

openshift-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/0c146d90-7bd2-11f1-8628-d6f865f51c18-0

@openshift-ci
openshift-ci Bot requested review from deads2k and sjenning July 9, 2026 20:11
@openshift-ci

openshift-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: xueqzhan

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 Jul 9, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
pkg/test/ginkgo/cmd_runsuite.go (1)

691-786: 📐 Maintainability & Code Quality | 🔵 Trivial | 🏗️ Heavy lift

Repeated bucket-execution boilerplate could be extracted into a helper.

The copyTests → recordTestBucketInterval → q.Execute → EndInterval → log → append sequence is now duplicated ~14 times in this function (4 new instances added here). Extracting a small helper would reduce duplication and make future bucket additions less error-prone.

♻️ Example helper extraction
func executeTestBucket(ctx context.Context, q *parallelTestQueue, recorder monitor.Recorder, name string, tests []*testCase, parallelism int, cfg testOutputConfig, abortFn abortFunc) []*testCase {
	testsCopy := copyTests(tests)
	intervalID, startTime := recordTestBucketInterval(recorder, name)
	q.Execute(ctx, testsCopy, parallelism, cfg, abortFn)
	recorder.EndInterval(intervalID, time.Now())
	logrus.Infof("Completed %s test bucket in %v", name, time.Since(startTime))
	return testsCopy
}

Usage:

-		draTestsCopy := copyTests(draTests)
-		draIntervalID, draStartTime := recordTestBucketInterval(monitorEventRecorder, "DRA")
-		q.Execute(testCtx, draTestsCopy, parallelism, testOutputConfig, abortFn)
-		monitorEventRecorder.EndInterval(draIntervalID, time.Now())
-		logrus.Infof("Completed DRA test bucket in %v", time.Since(draStartTime))
-		tests = append(tests, draTestsCopy...)
+		tests = append(tests, executeTestBucket(testCtx, q, monitorEventRecorder, "DRA", draTests, parallelism, testOutputConfig, abortFn)...)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pkg/test/ginkgo/cmd_runsuite.go` around lines 691 - 786, The bucket execution
flow in this function is repeated many times and should be extracted into a
shared helper. Move the copyTests, recordTestBucketInterval, q.Execute,
monitorEventRecorder.EndInterval, logrus.Infof, and append sequence into a
reusable helper like executeTestBucket, then replace each bucket block (for
example Kubernetes, DRA, InPlaceResize, Probing, Storage, Network, Netpol,
Builds, OpenShift, DeploymentConfig, MustGather) with calls to it. Keep the
helper responsible for returning the copied tests so the caller can continue
appending them to tests.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@pkg/test/ginkgo/cmd_runsuite.go`:
- Around line 691-786: The bucket execution flow in this function is repeated
many times and should be extracted into a shared helper. Move the copyTests,
recordTestBucketInterval, q.Execute, monitorEventRecorder.EndInterval,
logrus.Infof, and append sequence into a reusable helper like executeTestBucket,
then replace each bucket block (for example Kubernetes, DRA, InPlaceResize,
Probing, Storage, Network, Netpol, Builds, OpenShift, DeploymentConfig,
MustGather) with calls to it. Keep the helper responsible for returning the
copied tests so the caller can continue appending them to tests.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 62231f2a-4f19-4df7-9419-d5e1cf9a1f93

📥 Commits

Reviewing files that changed from the base of the PR and between a40276a and d398e5b.

📒 Files selected for processing (1)
  • pkg/test/ginkgo/cmd_runsuite.go

@openshift-ci openshift-ci Bot added the ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review label Jul 9, 2026
@xueqzhan

xueqzhan commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

/payload-aggregate periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview 10

@openshift-ci

openshift-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/a8f9bc00-7bd7-11f1-9f83-ccfaed31241a-0

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

@openshift-ci

openshift-ci Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/96088da0-7caf-11f1-9351-44f6e94c965d-0

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-aggregate periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview 10

@openshift-ci

openshift-ci Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/5569f8e0-7cb1-11f1-8cff-afa80418945c-0

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

@openshift-ci

openshift-ci Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/5badb0e0-7d63-11f1-8c41-d227074856d9-0

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

@openshift-ci

openshift-ci Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/5de72620-7d63-11f1-9955-6ab1f637f7c9-0

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

@openshift-ci

openshift-ci Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/5fcf2000-7d63-11f1-91fc-dc7e147706c0-0

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

@openshift-ci

openshift-ci Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/f85932f0-7e1e-11f1-9e51-697b9f4b4700-0

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

1 similar comment
@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

@openshift-ci

openshift-ci Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/fadc8270-7e1e-11f1-838a-6af43a5a1ff6-0

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-ci-5.0-e2e-azure-ovn-upgrade

@openshift-ci

openshift-ci Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-ci-5.0-e2e-azure-ovn-upgrade

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/474014e0-838f-11f1-98fa-7cd607985a1e-0

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-aggregate periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview 5

@openshift-ci

openshift-ci Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/5769ceb0-838f-11f1-8709-dd6334c9ac84-0

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/retest-required

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview

@openshift-ci

openshift-ci Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/9bdd8580-83c8-11f1-8cdf-b48fdc4f2b9b-0

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

1 similar comment
@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

@openshift-ci

openshift-ci Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/ab4bde90-83c8-11f1-91c7-3c2aa556f6aa-0

@openshift-ci

openshift-ci Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/ad2a3b80-83c8-11f1-845d-b0cbe7358598-0

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

@openshift-ci

openshift-ci Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/afbb46a0-83c8-11f1-8225-30d1e6c61d5a-0

@xueqzhan xueqzhan changed the title Create more test bucket to debug high cpu issues OCPBUGS-93879: Create different test buckets for heavy CI jobs Jul 20, 2026
@openshift-ci-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jul 20, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@xueqzhan: This pull request references Jira Issue OCPBUGS-93879, which is invalid:

  • expected the bug to target the "5.0.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

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

Details

In response to this:

/hold

Summary by CodeRabbit

  • New Features
  • Expanded the test runner to discover and execute additional “CPU-heavy” Kubernetes and OpenShift test groups.
  • Improved multi-iteration execution by extending duplication and expected test counting to include these new groups.
  • Updated run sequencing to execute the new groups as separate phases in a deterministic order.
  • Added discovery logging for the new Kubernetes/OpenShift CPU-heavy buckets.

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.

@xueqzhan
xueqzhan force-pushed the bucket-experiment branch from d2ecbbe to 64d5b02 Compare July 20, 2026 14:01
@xueqzhan

Copy link
Copy Markdown
Contributor Author

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jul 20, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@xueqzhan: This pull request references Jira Issue OCPBUGS-93879, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)
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.

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/retest-required

@openshift-ci-robot

Copy link
Copy Markdown

@xueqzhan: This pull request references Jira Issue OCPBUGS-93879, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

Separate CPU-intensive tests into dedicated buckets with reduced parallelism to prevent API server/etcd overload during e2e test execution on heavy jobs.

Problem

The k8s 1.35 rebase massively expanded several test groups (DRA +46%, Pod InPlace Resize +32 table-driven entries, Pod Generation graduated to GA). When these CPU-intensive tests
run simultaneously at full parallelism (30), they overwhelm the API server and etcd, causing cascading context deadline exceeded and etcdserver: request timed out failures. This primarily affects FIPS + TechPreview upgrade jobs, which have the highest test counts and most enabled features.

Solution

Introduce a testBucketCreator interface with two implementations:

  • defaultBucketCreator: Original bucket strategy — no changes for standard jobs.
  • heavyJobBucketCreator: CPU-aware bucketing that separates CPU-intensive tests into dedicated buckets with reduced parallelism.

The strategy is selected at runtime based on the job name: jobs containing both "fips" and "techpreview" use the heavy bucketing strategy.

Heavy job bucket layout

Kube phase:

  • Kubernetes (remaining) — full parallelism
  • KubeCPUHeavy (DRA, InPlace Resize, Probing, Pod Generation, CRD) — half parallelism

OpenShift phase:

  • OpenShift (remaining) — full parallelism
  • OpenshiftCPUHeavyTier1 (OLMv1, Router/GatewayAPI, AWS CloudProvider, Network) — 1/3 parallelism
  • OpenshiftCPUHeavyTier2 (DeploymentConfig, PDB, Node/Kubelet, CLI Workloads) — 2/3 parallelism

Other buckets (Storage, NetworkK8s, Builds) run at 2/3 parallelism instead of 1/2 to reduce overhead.

Impact

I have seen huge improvement for fips tp jobs with this bucket rearrangement. But the overall job duration also increased between 15m to 20m. But given the current state of the jobs, I think it is an ok comprimise.

Summary by CodeRabbit

  • New Features
  • Expanded the test runner to discover and execute additional “CPU-heavy” Kubernetes and OpenShift test groups.
  • Improved multi-iteration execution by extending duplication and expected test counting to include these new groups.
  • Updated run sequencing to execute the new groups as separate phases in a deterministic order.
  • Added discovery logging for the new Kubernetes/OpenShift CPU-heavy buckets.

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

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@xueqzhan

Copy link
Copy Markdown
Contributor Author

/retest-required

@openshift-ci

openshift-ci Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

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

Test name Commit Details Required Rerun command
ci/prow/e2e-aws-ovn-microshift 64d5b02 link true /test e2e-aws-ovn-microshift
ci/prow/e2e-aws-ovn-fips 64d5b02 link true /test e2e-aws-ovn-fips
ci/prow/e2e-gcp-ovn-upgrade 64d5b02 link true /test e2e-gcp-ovn-upgrade
ci/prow/e2e-aws-ovn-serial-2of2 64d5b02 link true /test e2e-aws-ovn-serial-2of2
ci/prow/e2e-gcp-ovn 64d5b02 link true /test e2e-gcp-ovn

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. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants