Skip to content

NO-JIRA: merge main back in#1046

Merged
openshift-merge-bot[bot] merged 173 commits into
openshift:main-alerts-management-apifrom
PeterYurkovich:merge-main-to-alerts-management
Jul 8, 2026
Merged

NO-JIRA: merge main back in#1046
openshift-merge-bot[bot] merged 173 commits into
openshift:main-alerts-management-apifrom
PeterYurkovich:merge-main-to-alerts-management

Conversation

@PeterYurkovich

Copy link
Copy Markdown
Contributor

Merge main into the alerts management branch to prevent desync

DavidRajnoha and others added 30 commits February 25, 2026 17:24
…d gating

Prompts now flow in logical order: Cluster Connection → Installation Mode →
Operators → Runtime. Irrelevant questions are hidden based on earlier answers
(e.g. skip-all hides all operator questions, skip-COO hides COO images,
catalog-install hides bundle image prompts). Kubeconfig defaults to
~/.kube/config so oc login is sufficient. Extracted pick_kubeconfig_interactive
to deduplicate ~120 lines of Downloads scanning logic.

configure-env.sh fixes:
- Fix `[[ ]] && assignment` patterns that crash under set -euo pipefail
  when the test is false (exit code 1 triggers set -e)
- Add zsh compatibility: when sourced from zsh, delegates interactive
  prompts to bash then auto-sources the generated export-env.sh
- Add prominent message in non-sourced mode about needing to source

Co-authored-by: Cursor <cursoragent@cursor.com>
…ional COO setup

Split the monolithic operator-commands.ts (932 lines) into focused modules:
- auth-commands.ts: expanded with operatorAuthUtils (RBAC, OAuth, session keys)
- coo-install-commands.ts: COO install/uninstall/namespace lifecycle
- image-patch-commands.ts: CSV image patching utilities
- dashboards-commands.ts: Perses dashboards, troubleshooting panel, UIPlugin CR

operator-commands.ts is now a slim orchestrator (~280 lines) that composes
the above modules into Cypress commands.

Added COOSetupOptions interface so callers can skip unnecessary setup steps:
- dashboards (Perses dashboards, perses pod, health-analyzer ServiceMonitor)
- troubleshootingPanel (korrel8r pod)
- healthAnalyzer (CHA image patch)

All incident tests now use { dashboards: false, troubleshootingPanel: false,
healthAnalyzer: false } to skip Perses/korrel8r/CHA setup they don't need.
The Monitoring UIPlugin CR creation is extracted into its own function and
always runs, since it's required by all COO features including incidents.

Co-authored-by: Cursor <cursoragent@cursor.com>
Setup verification improvements:
- Replace all `sleep N && oc wait` patterns with cy.waitUntil-based
  polling via shared wait-utils.ts helpers (waitForPodsReady,
  waitForPodsReadyOrAbsent, waitForResourceCondition)
- Make UI verification in waitForCOOReady conditional on COO_UI_INSTALL
  since CLI readiness check is sufficient for bundle installs
- Eliminates ~195s of unconditional sleeping in a full COO setup

Co-authored-by: Cursor <cursoragent@cursor.com>
After page reload, dynamic plugins (like Troubleshooting Panel) may
not be registered immediately in the OpenShift Console. Replace the
single click-and-assert with a waitUntil loop that closes and
re-opens the Application Launcher dropdown until the "Signal
Correlation" item appears, up to 60 seconds.

Made-with: Cursor
- Normalize SESSION env var to strict boolean (string 'false' was truthy)
- Preserve positional info in session keys (filter(Boolean) -> map)
- Make namespace creation idempotent with --dry-run=client | oc apply
- Make oc new-project perses-dev tolerant of existing namespace
- Remove unsupported timeout arg from .should() assertion
- Fix unreachable NotFound branch in namespace deletion polling
- Fix pod-deletion check false-passing on CLI failures

Made-with: Cursor
Signed-off-by: Gabriel Bernal <gbernal@redhat.com>
Signed-off-by: Gabriel Bernal <gbernal@redhat.com>
Signed-off-by: Gabriel Bernal <gbernal@redhat.com>
…etup-and-operator-commands

NO-JIRA: Refactor cypress setup and operator commands
…unk loading failures

The Incidents component is loaded as a dynamic plugin chunk. cy.reload() causes
a full page reload where the Console must re-resolve all plugins from scratch,
which silently fails non-deterministically in headless CI, leaving a blank
content pane (correct URL and tab, but no component mounted).

Replace all cy.reload() usage in the incidents test suite with SPA navigation
(goTo: Alerting tab -> Incidents tab), which reliably triggers component
unmount/remount via React's routing without requiring plugin re-resolution.

Key changes:
- goTo() now waits for daysSelectToggle to be visible (assertion-based)
- prepareIncidentsPageForSearch uses goTo() instead of cy.reload()
- mockIncidents/mockIncidentFixture use goTo() instead of cy.reload()
- Consolidate setupIncidentFixture/setupIncidentMock into mockIncidentFixture/
  mockIncidents (the setup-only variants were only needed to avoid reload)
- switchTab() restored to use .should('be.visible') before click
- toggleFilter() improved to avoid re-selecting filter type when already visible
- New selectFilterValue/deselectFilterValue helpers for reliable filter toggling

Made-with: Cursor
…unk loading failures

The Incidents component is loaded as a dynamic plugin chunk. cy.reload() causes
a full page reload where the Console must re-resolve all plugins from scratch,
which silently fails non-deterministically in headless CI, leaving a blank
content pane (correct URL and tab, but no component mounted).

Replace all cy.reload() usage in the incidents test suite with SPA navigation
(goTo: Alerting tab -> Incidents tab), which reliably triggers component
unmount/remount via React's routing without requiring plugin re-resolution.

Key changes:
- goTo() now waits for daysSelectToggle to be visible (assertion-based)
- prepareIncidentsPageForSearch uses goTo() instead of cy.reload()
- mockIncidents/mockIncidentFixture use goTo() instead of cy.reload()
- switchTab() uses force:true to avoid detached-element flakes
- toggleFilter() skips re-selecting filter type when already visible,
  preventing PatternFly Select stale-state issues
- New toggleFilterValueFromDropdown/selectFilterValue/deselectFilterValue
  helpers for reliable filter toggling with retry logic
- pageLoadTimeout raised to 60s for slow CI environments
- 01.incidents BVT reworked to use mocked data (no live-alert dependency)

Made-with: Cursor
…d permission denied handling

New test files:
- 02.reg_ui_tooltip_boundary_times.cy.ts: Mixed severity interval boundary
  times (OU-1205) and xfail test for start time offset bug (OU-1221)
- 05.reg_stress_testing_ui.cy.ts: Stress testing with 100/200/500 alert
  fixtures to verify chart rendering performance and gap limits

Additions to existing files:
- 03.reg_api_calls.cy.ts: Permission denied handling test - verifies
  Incidents page shows access denied state on 403 responses (OU-1213)
- prometheus-mocks.ts: mockPermissionDenied command for 403 mocking
- incidents-page.ts: getIncidentBarVisibleSegments and
  hoverOverIncidentBarSegment helpers for multi-severity segment inspection

Made-with: Cursor
NO-JIRA: switch to core platform page before test case run
…ction-stability

NO-JIRA: Incident Detection Tests Stabilization
OCPBUGS-77113: feat: re enable dev console views
…1.4.0-features

OBSINTA-993: Tests for incident detection coo 1.4.0 changes
NO-JIRA: podImage fix automation testing to remove extra click
Add test cases for OU-632, OU-1039, OU-1123, OU-1205, OU-1213, and
OU-1221. Include simulation scenario CSVs and RBAC resources referenced
by the test documentation. Add CSV file references to prerequisites
sections across all test docs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…cases

OBSINTA-1002: consolidate COO 1.4.0 test case documentation
…from-ci

NO-JIRA: exclude @xfail tests from CI incident commands
NO-JIRA: automation testing fix on podImage
OU-1184: lint enabled against cypress files and changes post coo
Signed-off-by: Gabriel Bernal <gbernal@redhat.com>
openshift-merge-bot Bot and others added 17 commits June 25, 2026 03:43
…-regex-context

OCPBUGS-85473: fix: escape regex variable values in regex matcher contexts
OU-1396: fix: use replace to set variables to avoid navigation trap
Signed-off-by: Gabriel Bernal <gbernal@redhat.com>
Signed-off-by: Gabriel Bernal <gbernal@redhat.com>
…pendencies-26-06-2026

NO-JIRA: fix: update vulnerable dependencies
NO-JIRA: perses and monitoring automation testing - stabilization
…-action-to-alerts

OU-1409: feat: fetch lazily ai proposal for each row in the alert list
Signed-off-by: Gabriel Bernal <gbernal@redhat.com>
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
…or-main-alerts-management-api-branch

NO-JIRA: enable coderabbit on main-alerts-management-api
…ile-loading

NO-JIRA: feat: keep current data while loading new data in perses dashboards
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
NO-JIRA: fixing unit-test severity sort, variable template regex, and test corrections.
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 8, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@PeterYurkovich: This pull request explicitly references no jira issue.

Details

In response to this:

Merge main into the alerts management branch to prevent desync

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
openshift-ci Bot requested review from jgbernalp and zhuje July 8, 2026 16:27
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 8, 2026
@PeterYurkovich

Copy link
Copy Markdown
Contributor Author

/label qe-approved

@openshift-ci openshift-ci Bot added the qe-approved Signifies that QE has signed off on this PR label Jul 8, 2026
@openshift-ci

openshift-ci Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

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

@sradco

sradco commented Jul 8, 2026

Copy link
Copy Markdown

/lgtm

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

openshift-ci Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: PeterYurkovich, sradco

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-merge-bot
openshift-merge-bot Bot merged commit 826838d into openshift:main-alerts-management-api Jul 8, 2026
10 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. qe-approved Signifies that QE has signed off on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.