Skip to content

OCPQE-32064: Reduce monitortest sensitivity for upcoming spot check jobs, use etcd-scaling job as early example - #31212

Merged
openshift-merge-bot[bot] merged 18 commits into
openshift:mainfrom
dgoodwin:no-fail-mon-tests
Aug 14, 2026
Merged

OCPQE-32064: Reduce monitortest sensitivity for upcoming spot check jobs, use etcd-scaling job as early example#31212
openshift-merge-bot[bot] merged 18 commits into
openshift:mainfrom
dgoodwin:no-fail-mon-tests

Conversation

@dgoodwin

@dgoodwin dgoodwin commented May 25, 2026

Copy link
Copy Markdown
Contributor

This work progresses towards the concept of spot check jobs as defined by the next gen QE working group. These will be jobs run very rarely, roughly once a month. The jobs must have an owning component and capability/feature. If the job passes, all is good. If it fails, we will retry with backoff measured in days. After a couple failures, the component will be marked regressed. The job must pass once every 30 days.

These jobs must be much less sensitive, they are looking for verify obscure features or configurations and do not need the rigor our normal test jobs we run thousands of times a week do. As such, we need to calm down monitortests signficantly.

To do this I added a new clusterstability level for spot check jobs so they can control which monitortests are enabled.

A couple monitortests are left in for information gathering purposes, but their junit generation can now be set to flake only, so they will not fail jobs but we can track flake rates and see flakes in spyglass if needed.

I moved the etcd-scaling suite to use this new stability level and confirmed it corrects the monitortests that typically fail this never passing job, as they validate functionality that is inherently going to happen in jobs like this. etcd team has reviewed and approved the change. (though they want to keep their job running weekly, which still works fine with this plan as we don't have to create something to schedule retries)

One ginko etcd leader change e2e test is ported from an e2e to a monitortest to take advantage of this functionality, it was at it's core a monitortest, and is not applicable to a job where we intentionally are scaling etcd.

The disruptive stability level also now has an explicit list of monitortests, I removed the concept of universal tests as they were no longer universal and it was getting too confusing to view what stability level uses what tests. It's now an explicit list for each.

@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 requested review from deads2k and jubittajohn May 25, 2026 14:10
@coderabbitai

coderabbitai Bot commented May 25, 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 introduces a new SpotCheck cluster stability mode that enables lightweight monitoring runs without influencing test results via optional JUnit suppression. It migrates etcd leader-changes verification from Ginkgo tests to the monitor framework, updates multiple monitor tests to handle flaking and skipping flags, and integrates the mode throughout the test infrastructure.

Changes

SpotCheck Cluster Stability Mode

Layer / File(s) Summary
Framework Types and Constants
pkg/monitortestframework/types.go, pkg/test/ginkgo/test_suite.go
New SpotCheck constant added to ClusterStabilityDuringTest; new exported FlakeJunits type with HardFail/AsFlake constants; new JUnitsToFlakes helper function converts failing-only test results to flake-style by appending synthetic pass entries; sort import added for deterministic ordering.
JUnitsToFlakes Testing
pkg/monitortestframework/types_test.go
Comprehensive table-driven test suite TestJUnitsToFlakes covering nil/empty inputs, pass-only cases, failure-to-flake conversion, existing-flake preservation, mixed scenarios, skip handling, multiple failures merging, and nil-entry tolerance; additional test verifies immutability of original failures; custom junitEqual comparison and formatJUnits formatting helpers provide clear assertion output.
Etcd Leader-Changes Monitor
pkg/monitortests/etcd/leaderchanges/monitortest.go
New Prometheus-based monitor queries etcd_server_leader_changes_seen_total to bound leader changes during test execution, detects MicroShift clusters and returns NotSupported, estimates allowed thresholds from etcd-operator revisions, and emits JUnit pass/fail results based on observed change counts.
Monitor Constructor Updates for Flaking and Skipping
pkg/monitortests/etcd/etcdloganalyzer/monitortest.go, pkg/monitortests/testframework/legacytestframeworkmonitortests/alerts_monitortest.go, pkg/monitortests/node/watchnodes/monitortest.go, pkg/monitortests/clusterversionoperator/clusterversionchecker/monitortest.go
Five monitors updated to accept MonitorTestInitializationInfo parameter; store flakeJunits or skipJunits flags from initialization info; conditionally apply JUnitsToFlakes conversion when flaking is enabled or return (nil, nil) when skipping is enabled in EvaluateTestsFromConstructedIntervals.
CLI Validation and Test Suite Integration
pkg/test/ginkgo/cmd_runsuite.go, pkg/testsuites/standard_suites.go
CLI Validate() method now accepts SpotCheck alongside Stable and Disruptive for --cluster-stability flag; openshift/etcd/scaling test suite configured to use SpotCheck stability mode.
Default Monitor Registry Refactoring and SpotCheck Routing
pkg/defaultmonitortests/types.go
NewMonitorTestsFor routes SpotCheck mode to new newSpotCheckMonitorTests(info) builder; refactor newDefaultMonitorTests to explicitly register stable monitor set with HardFail etcd-log-analyzer and new etcd-leader-changes monitor; rework newDisruptiveMonitorTests to explicitly list disruptive-appropriate monitors with AsFlake etcd-log-analyzer and legacy alerts; introduce newSpotCheckMonitorTests to build minimal curated subset with SkipJunits=true and AsFlake sensitive monitors.

Sequence Diagram

sequenceDiagram
  participant CLI as Test CLI
  participant Framework as Monitor Framework
  participant Registry as Registry Builder
  participant EtcdMonitor as Etcd Leader-Changes
  participant Prometheus
  
  CLI->>Framework: NewMonitorTestsFor(SpotCheck)
  Framework->>Registry: newSpotCheckMonitorTests(info with SkipJunits=true)
  Registry->>EtcdMonitor: Register etcd leader-changes monitor
  Registry->>Framework: Return curated monitor set
  Framework->>EtcdMonitor: StartCollection
  EtcdMonitor->>EtcdMonitor: Record start time
  Framework->>EtcdMonitor: CollectData
  EtcdMonitor->>Prometheus: Query etcd_server_leader_changes_seen_total
  Prometheus-->>EtcdMonitor: Return sampled value
  EtcdMonitor->>EtcdMonitor: Compare vs allowed threshold
  EtcdMonitor-->>Framework: JUnit test case (pass/fail)
  Framework-->>CLI: Test artifacts (suppressed if SkipJunits)
Loading

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (14 passed)
Check name Status Explanation
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 All test names in PR are stable static strings: monitortest uses constant "[sig-etcd] etcd leader changes are not excessive", and unit tests use hardcoded table-driven names with no dynamic values,...
Test Structure And Quality ✅ Passed PR contains no new or modified Ginkgo test files. It deletes test/extended/etcd/leader_changes.go and adds pkg/monitortestframework/types_test.go (unit test, not Ginkgo). Custom check is not applic...
Microshift Test Compatibility ✅ Passed No new Ginkgo e2e tests are added in this PR. The PR removes one e2e test and adds MonitorTest implementations and unit tests instead. The custom check only applies when new Ginkgo e2e tests are ad...
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR removes an e2e test (test/extended/etcd/leader_changes.go) and adds monitortests, not Ginkgo e2e tests. SNO check applies only to new e2e tests in test/extended/; none were added.
Topology-Aware Scheduling Compatibility ✅ Passed This PR contains only test framework and test code changes. The custom check applies only to deployment manifests, operator code, or controllers, none of which are present in this PR. The topology-...
Ote Binary Stdout Contract ✅ Passed No violations of OTE Binary Stdout Contract found. All modifications use only error formatting (fmt.Errorf) and logging patterns appropriate for their context, with no process-level stdout writes i...
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests added. PR removes a Ginkgo e2e test (leader_changes.go) and adds a MonitorTest infrastructure component, which is outside the scope of this check.
No-Weak-Crypto ✅ Passed No weak cryptography, custom crypto implementations, or non-constant-time secret comparisons detected. The PR contains only monitor test framework updates and test migrations with no cryptographic...
Container-Privileges ✅ Passed No Kubernetes manifests or container privilege configurations are introduced in this PR. All 11 modified files are Go source code for monitoring test framework functionality, containing no privileg...
No-Sensitive-Data-In-Logs ✅ Passed No logging of sensitive data (passwords, tokens, API keys, PII, session IDs, internal hostnames, customer data) detected. Error messages wrap underlying errors generically; JUnit outputs contain on...
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: spot-check monitest sensitivity reduction with etcd-scaling as the first example.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 25, 2026
@dgoodwin

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-gcp-ovn-etcd-scaling

@openshift-ci

openshift-ci Bot commented May 25, 2026

Copy link
Copy Markdown
Contributor

@dgoodwin: 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-gcp-ovn-etcd-scaling

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/87a97980-5843-11f1-8824-e7855c3d2249-0

@dgoodwin
dgoodwin force-pushed the no-fail-mon-tests branch from 9f8b39b to 7525d8a Compare May 25, 2026 14:17
@dgoodwin

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-etcd-scaling

@openshift-ci

openshift-ci Bot commented May 25, 2026

Copy link
Copy Markdown
Contributor

@dgoodwin: 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-etcd-scaling

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/81856720-5844-11f1-805b-5abfdac98a10-0

@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.

Actionable comments posted: 1

🤖 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.

Inline comments:
In `@pkg/monitortests/etcd/leaderchanges/monitortest.go`:
- Around line 83-85: The code currently only treats
configv1.ExternalTopologyMode as external by setting etcdNamespace =
"clusters-.*" in monitortest.go; update the conditional around
infra.Status.ControlPlaneTopology to also treat the DualReplica topology as
external (or explicitly map it) so etcdNamespace is set appropriately for
dual-replica clusters and avoid querying in-cluster metrics when etcd is
external; modify the branch that sets etcdNamespace (referencing
infra.Status.ControlPlaneTopology, configv1.ExternalTopologyMode, and the
etcdNamespace variable) to include configv1.DualReplicaTopologyMode (or the
correct DualReplica constant) as an additional case.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: b9a3a38a-08e7-4578-92da-2d3d995a9356

📥 Commits

Reviewing files that changed from the base of the PR and between 8c50bc4 and 9f8b39b.

📒 Files selected for processing (11)
  • pkg/defaultmonitortests/types.go
  • pkg/monitortestframework/types.go
  • pkg/monitortests/clusterversionoperator/clusterversionchecker/monitortest.go
  • pkg/monitortests/etcd/etcdloganalyzer/monitortest.go
  • pkg/monitortests/etcd/leaderchanges/monitortest.go
  • pkg/monitortests/node/watchnodes/monitortest.go
  • pkg/monitortests/testframework/legacytestframeworkmonitortests/alerts_monitortest.go
  • pkg/test/ginkgo/cmd_runsuite.go
  • pkg/test/ginkgo/test_suite.go
  • pkg/testsuites/standard_suites.go
  • test/extended/etcd/leader_changes.go
💤 Files with no reviewable changes (1)
  • test/extended/etcd/leader_changes.go

Comment thread pkg/monitortests/etcd/leaderchanges/monitortest.go Outdated

@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.

Actionable comments posted: 1

🤖 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.

Inline comments:
In `@pkg/monitortests/etcd/leaderchanges/monitortest.go`:
- Around line 119-123: The code truncates Prometheus leader-change counts by
converting leaderChanges (vec[0].Value, a model.SampleValue/float) to int before
comparing against allowedLeaderChanges; change the comparison to use
floating-point so no truncation occurs (e.g., compare leaderChanges as a float64
to float64(allowedLeaderChanges)), update any fmt.Sprintf/return messages to
format the original float value (leaderChanges) rather than the truncated int,
and keep the existing symbols (leaderChanges, allowedLeaderChanges,
numberOfRevisions, vec, failJunit) to locate and apply the change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: a97e84c4-7b22-4803-85fb-5ad06593327b

📥 Commits

Reviewing files that changed from the base of the PR and between 9f8b39b and 7525d8a.

📒 Files selected for processing (4)
  • pkg/defaultmonitortests/types.go
  • pkg/monitortests/etcd/leaderchanges/monitortest.go
  • pkg/testsuites/standard_suites.go
  • test/extended/etcd/leader_changes.go
💤 Files with no reviewable changes (1)
  • test/extended/etcd/leader_changes.go

Comment thread pkg/monitortests/etcd/leaderchanges/monitortest.go Outdated
@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

@openshift-trt

openshift-trt Bot commented May 25, 2026

Copy link
Copy Markdown

Risk analysis has seen new tests most likely introduced by this PR.
Please ensure that new tests meet guidelines for naming and stability.

New tests seen in this PR at sha: 7525d8a

  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes cleanup" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes collection" [Total: 10, Pass: 10, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes interval construction" [Total: 10, Pass: 10, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes preparation" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes setup" [Total: 10, Pass: 10, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes test evaluation" [Total: 10, Pass: 10, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes writing to storage" [Total: 12, Pass: 12, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][sig-etcd] etcd leader changes are not excessive" [Total: 10, Pass: 10, Fail: 0, Flake: 0]

@dgoodwin

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-gcp-ovn-etcd-scaling

@openshift-ci

openshift-ci Bot commented May 26, 2026

Copy link
Copy Markdown
Contributor

@dgoodwin: 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-gcp-ovn-etcd-scaling

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/58637900-58f2-11f1-9c98-f9959cc00a15-0

@dgoodwin dgoodwin changed the title no fail mon tests Add path to disable monitortest junit failures in spot check jobs, use etcd-scaling job as example May 27, 2026
@dgoodwin

Copy link
Copy Markdown
Contributor Author

/hold

Still exploring. Need confirmation from etcd team they like the change, and need to confirm that ported etcd test which will now run in serial jobs, is not going to cause problems.

@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 May 27, 2026
@dgoodwin

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-gcp-ovn-etcd-scaling
/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-etcd-scaling

@openshift-ci

openshift-ci Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

@dgoodwin: trigger 2 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-gcp-ovn-etcd-scaling
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-etcd-scaling

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/cf4a3d50-6672-11f1-8dc3-85130dfe8ae7-0

@dgoodwin

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-gcp-ovn-etcd-scaling
/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-etcd-scaling

@openshift-ci

openshift-ci Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

@dgoodwin: trigger 2 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-gcp-ovn-etcd-scaling
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-etcd-scaling

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/9a6a2ff0-68ac-11f1-9d7a-3f72da01643f-0

@dgoodwin
dgoodwin force-pushed the no-fail-mon-tests branch from 7525d8a to 37c6910 Compare June 16, 2026 13:59
@dgoodwin

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-gcp-ovn-etcd-scaling
/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-etcd-scaling

Earlier runs picked up an actual regression, that was since fixed. Now rebased for another try.

@openshift-ci

openshift-ci Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

@dgoodwin: trigger 2 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-gcp-ovn-etcd-scaling
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-etcd-scaling

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/b3fba4a0-698b-11f1-9cda-b477f0c42256-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

@openshift-trt

openshift-trt Bot commented Jun 16, 2026

Copy link
Copy Markdown

Risk analysis has seen new tests most likely introduced by this PR.
Please ensure that new tests meet guidelines for naming and stability.

New tests seen in this PR at sha: 37c6910

  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes cleanup" [Total: 11, Pass: 11, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes collection" [Total: 9, Pass: 9, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes interval construction" [Total: 9, Pass: 9, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes preparation" [Total: 11, Pass: 11, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes setup" [Total: 9, Pass: 9, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes test evaluation" [Total: 9, Pass: 9, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][Jira:"etcd"] monitor test etcd-leader-changes writing to storage" [Total: 11, Pass: 11, Fail: 0, Flake: 0]
  • "[Monitor:etcd-leader-changes][sig-etcd] etcd leader changes are not excessive" [Total: 9, Pass: 9, Fail: 0, Flake: 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

@mkowalski mkowalski left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🤖 AI-generated by Opus 4.8 — posted on behalf of @mkowalski.


Re-review at 2e9b3d28 — thanks for the quick turnaround, most of the previous round is resolved. I re-checked each item against the new revision:

  • termination-message-policy restored to the Stable set only (not Disruptive/SpotCheck). Matches your intent given the test's content.
  • SpotCheck doc/inline comments no longer reference a flaked cluster-version-checker; the prose now matches the registry (etcd-log-analyzer, alerts).
  • clusterversionchecker no-op edit dropped from the PR.
  • JUnitsToFlakes now returns a fresh slice, and the new TestJUnitsToFlakes_DoesNotExtendOriginalSlice covers exactly the backing-array aliasing case — nice.
  • etcd-scaling qualifier wrapped in parens, so the && !name.contains("leader changes") now binds to the whole OR. Reads unambiguously now.

One minor doc nit still open (left a note in the existing thread, non-blocking): the Disruptive doc comment still uses node-lifecycle as the "still hard-fails" example, but node-lifecycle isn't registered in the Disruptive set — so the example points at a monitor that isn't there.

For my part this all looks good; the remaining item is cosmetic. (Also confirmed the leader-changes Ginkgo test is intentionally just excluded here rather than migrated — the description/CodeRabbit walkthrough still describe the older migration approach, so you may want to refresh the PR body before merge.)


🤖 End AI-generated content.

@dgoodwin

Copy link
Copy Markdown
Contributor Author

Comment discrepancies now fixed.

@mkowalski

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 29, 2026
@mkowalski

Copy link
Copy Markdown
Contributor

/verified by @dgoodwin

@openshift-ci

openshift-ci Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dgoodwin, mkowalski

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-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Jun 29, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@mkowalski: This PR has been marked as verified by @dgoodwin.

Details

In response to this:

/verified by @dgoodwin

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.

@dgoodwin

Copy link
Copy Markdown
Contributor Author

/hold cancel

@openshift-ci openshift-ci Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jul 28, 2026
@dgoodwin

Copy link
Copy Markdown
Contributor Author

/retest

2 similar comments
@dgoodwin

dgoodwin commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

/retest

@dgoodwin

Copy link
Copy Markdown
Contributor Author

/retest

@dgoodwin dgoodwin closed this Aug 13, 2026
@dgoodwin dgoodwin reopened this Aug 13, 2026
@openshift-ci-robot

openshift-ci-robot commented Aug 13, 2026

Copy link
Copy Markdown

@dgoodwin: This pull request references OCPQE-32064 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 "5.0.0" version, but no target version was set.

Details

In response to this:

This work progresses towards the concept of spot check jobs as defined by the next gen QE working group. These will be jobs run very rarely, roughly once a month. The jobs must have an owning component and capability/feature. If the job passes, all is good. If it fails, we will retry with backoff measured in days. After a couple failures, the component will be marked regressed. The job must pass once every 30 days.

These jobs must be much less sensitive, they are looking for verify obscure features or configurations and do not need the rigor our normal test jobs we run thousands of times a week do. As such, we need to calm down monitortests signficantly.

To do this I added a new clusterstability level for spot check jobs so they can control which monitortests are enabled.

A couple monitortests are left in for information gathering purposes, but their junit generation can now be set to flake only, so they will not fail jobs but we can track flake rates and see flakes in spyglass if needed.

I moved the etcd-scaling suite to use this new stability level and confirmed it corrects the monitortests that typically fail this never passing job, as they validate functionality that is inherently going to happen in jobs like this. etcd team has reviewed and approved the change. (though they want to keep their job running weekly, which still works fine with this plan as we don't have to create something to schedule retries)

One ginko etcd leader change e2e test is ported from an e2e to a monitortest to take advantage of this functionality, it was at it's core a monitortest, and is not applicable to a job where we intentionally are scaling etcd.

The disruptive stability level also now has an explicit list of monitortests, I removed the concept of universal tests as they were no longer universal and it was getting too confusing to view what stability level uses what tests. It's now an explicit list for each.

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

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 6e25f2a and 2 for PR HEAD 00e336e in total

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 2843387 and 1 for PR HEAD 00e336e in total

@dgoodwin

Copy link
Copy Markdown
Contributor Author

Unrelated and enough is enough.

/override ci/prow/e2e-gcp-csi

@openshift-ci

openshift-ci Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

@dgoodwin: Overrode contexts on behalf of dgoodwin: ci/prow/e2e-gcp-csi

Details

In response to this:

Unrelated and enough is enough.

/override ci/prow/e2e-gcp-csi

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

@openshift-ci

openshift-ci Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

@dgoodwin: 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 1d8f729 into openshift:main Aug 14, 2026
22 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. ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants