NO-JIRA: merge main back in#1046
Conversation
…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
Made-with: Cursor
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>
…-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>
…-main Fix for OCPBUGS-94056: CVE-2026-13676
NO-JIRA: fixing unit-test severity sort, variable template regex, and test corrections.
|
@PeterYurkovich: This pull request explicitly references no jira issue. DetailsIn response to this:
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. |
|
/label qe-approved |
|
@PeterYurkovich: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions 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. |
|
/lgtm |
|
[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 DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
826838d
into
openshift:main-alerts-management-api
Merge main into the alerts management branch to prevent desync