Skip to content

[release-4.16] OCPBUGS-88554: Stabilize legacy OperatorHub Cypress waits#16608

Open
RadekManak wants to merge 1 commit into
openshift:release-4.16from
RadekManak:stabilize-operator-hub-e2e
Open

[release-4.16] OCPBUGS-88554: Stabilize legacy OperatorHub Cypress waits#16608
RadekManak wants to merge 1 commit into
openshift:release-4.16from
RadekManak:stabilize-operator-hub-e2e

Conversation

@RadekManak

@RadekManak RadekManak commented Jun 12, 2026

Copy link
Copy Markdown

CONSOLE Features and Fixes:

Solution description

This PR stabilizes the legacy OperatorHub Cypress flows on `release-4.16`.

Why we are fixing this:

  • e2e-gcp-console on release-4.16 is being destabilized by flaky OLM OperatorHub tests rather than by the product bug under test.
  • Dredge analysis of the recent failed e2e-gcp-console jobs showed that on release-4.16, operator-hub.cy.ts failed in 12/12 failed builds that were sampled.
  • The dominant signature was the legacy filter click timing out on catalogSourceDisplayName-red-hat (9x), with the remaining 3x coming from the related create-namespace.cy.ts path timing out around search-operatorhub.
  • On newer branches, the same OperatorHub spec was passing in failed builds, so this is not a general current-branch problem. It is specific to the older release-4.16 OperatorHub UI/test path.

Why this needs a release-4.16-specific fix:

  • release-4.16 still uses the legacy OperatorHub page and selectors like catalogSourceDisplayName-red-hat and search-operatorhub.
  • Newer branches moved to different catalog flows and selectors, so there is no clean newer-branch PR to cherry-pick for this exact flake.

How this PR fixes it:

  • Add a small operatorHub.waitForLoaded() helper for the legacy OperatorHub page.
  • Wait for the loading skeleton to disappear, the search input to be visible, the filter sidebar to be present, and catalog tiles to exist before interacting.
  • Use that wait only in the two flaky specs: operator-hub.cy.ts and create-namespace.cy.ts.
  • Add explicit timeout-backed visibility checks for the legacy Red Hat / Certified filter clicks.
  • Keep the scope narrow on this older branch and avoid broadening the change through shared install helpers.

Reviewers and assignees

TBD

Test cases:

- Main validation target is the `e2e-gcp-console` lane on `release-4.16`, especially: - `Interacting with OperatorHub` - `Create namespace from install operators` - Cross-branch investigation from dredge indicated this specific failure mode is isolated to the legacy `release-4.16` codepath; newer branches were not failing this spec in the sampled failed builds. - Local Cypress execution is blocked in this environment because `yarn` is not installed. - Attempted locally: - `./test-cypress.sh -p olm -s 'packages/operator-lifecycle-manager/integration-tests-cypress/tests/operator-hub.cy.ts' -h true` - `./test-cypress.sh -p olm -s 'packages/operator-lifecycle-manager/integration-tests-cypress/tests/create-namespace.cy.ts' -h true`

Additional info:

- This is a `release-4.16`-only stabilization for the legacy OperatorHub UI. - Diff against `release-4.16` is one commit touching three files. - The intent is to remove CI noise from a known flaky test path so `e2e-gcp-console` can validate actual regressions instead of repeatedly failing on page-load timing.

Screen shots / gifs / design review:

Not applicable; test-only change.

Summary by CodeRabbit

Tests

  • Improved OperatorHub integration test reliability with enhanced synchronization for catalog loading and filter operations.

@openshift-ci

openshift-ci Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jun 12, 2026
@openshift-ci-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. labels Jun 12, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

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

7 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.16.z) matches configured target version for branch (4.16.z)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, POST)
  • release note text is set and does not match the template
  • dependent bug Jira Issue OCPBUGS-51277 is in the state Closed (Done-Errata), which is one of the valid states (VERIFIED, RELEASE PENDING, CLOSED (ERRATA), CLOSED (CURRENT RELEASE), CLOSED (DONE), CLOSED (DONE-ERRATA))
  • dependent Jira Issue OCPBUGS-51277 targets the "4.17.z" version, which is one of the valid target versions: 4.17.0, 4.17.z
  • bug has dependents

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

Details

In response to this:

CONSOLE Features and Fixes:

Solution description

Stabilize the legacy OperatorHub Cypress flows on `release-4.16` by waiting for the search input, filter sidebar, and catalog tiles to be ready before interacting. The change stays scoped to the flaky `operator-hub` and `create-namespace` specs and avoids broadening behavior through shared OLM install helpers on this older branch.

Reviewers and assignees

TBD

Test cases:

- Expected validation is the `e2e-gcp-console` lane on `release-4.16`, especially the OLM OperatorHub specs. - Local Cypress execution is blocked in this environment because `yarn` is not installed. - Attempted locally: - `./test-cypress.sh -p olm -s 'packages/operator-lifecycle-manager/integration-tests-cypress/tests/operator-hub.cy.ts' -h true` - `./test-cypress.sh -p olm -s 'packages/operator-lifecycle-manager/integration-tests-cypress/tests/create-namespace.cy.ts' -h true`

Additional info:

This is a `release-4.16`-only stabilization for the legacy OperatorHub UI. Diff against `release-4.16` is one commit touching three files.

Screen shots / gifs / design review:

Not applicable; test-only change.

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.

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This PR introduces a reusable Cypress view helper for OperatorHub synchronization with a 60-second timeout, and updates two integration tests to use it. The helper waits for skeleton removal, verifies key UI elements are visible, and ensures catalog tiles are rendered before proceeding.

Changes

OperatorHub Test Synchronization Helper

Layer / File(s) Summary
OperatorHub view helper definition
frontend/packages/operator-lifecycle-manager/integration-tests-cypress/views/operator-hub.view.ts
New Cypress page object that exports OPERATOR_HUB_LOAD_TIMEOUT (60s) and an operatorHub object with waitForLoaded(). The helper waits for skeleton grid removal, verifies search control and catalog source elements are visible, and asserts at least one catalog tile is rendered.
Create-namespace test integration
frontend/packages/operator-lifecycle-manager/integration-tests-cypress/tests/create-namespace.cy.ts
Imports the operatorHub helper and calls waitForLoaded() before interacting with the OperatorHub UI, ensuring the catalog has fully loaded.
Operator-hub test integration
frontend/packages/operator-lifecycle-manager/integration-tests-cypress/tests/operator-hub.cy.ts
Imports OPERATOR_HUB_LOAD_TIMEOUT and adds synchronization waits throughout the test. Calls operatorHub.waitForLoaded() before tile assertions. When toggling Red Hat and Certified filters, waits for filter elements to become visible before clicking. Replaces immediate title inequality checks with timeout-based waits that verify tile count and title changes after filter switching.

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Test Structure And Quality ⚠️ Warning operator-hub.cy.ts has one it() asserting multiple unrelated behaviors (tile presence, Red Hat/Certified toggles, search/clear, category) and uses before/after instead of beforeEach/afterEach. Split operator-hub.cy.ts into smaller it blocks (single behavior each); use beforeEach/afterEach for per-test setup/cleanup as required; keep cluster-affecting setup/teardown clearly scoped.
✅ Passed checks (14 passed)
Check name Status Explanation
Description check ✅ Passed The PR description is well-structured and covers most required sections including solution description, test cases, and additional context, though it does not follow the exact template structure with all labeled sections.
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 Cypress test titles are static strings: describe('Create namespace from install operators'), it('creates namespace from operator install page'), and it('displays OperatorHub tile view with expected...
Microshift Test Compatibility ✅ Passed PR changes Cypress tests (describe/ cy.*), not Ginkgo e2e. Scanned updated OperatorHub Cypress files for any flagged MicroShift-incompatible APIs/groups/namespaces—none found.
Single Node Openshift (Sno) Test Compatibility ✅ Passed Inspected the PR’s 3 Cypress files; they use Mocha-style describe() and UI waits, contain no Ginkgo/go test code and no SNO/multi-node topology assumptions or exutil.IsSingleNode guards needed.
Topology-Aware Scheduling Compatibility ✅ Passed PR only changes OLM OperatorHub Cypress tests and a view helper; searched the modified TS files for scheduling/topology terms (affinity, topologySpreadConstraints, nodeSelectors, etc.) and found none.
Ote Binary Stdout Contract ✅ Passed PR only updates Cypress OperatorHub test TS files; this repo snapshot contains no OTE/openshift-tests Go binaries or process-level stdout (main/init/BeforeSuite) changes to flag.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR updates Cypress OperatorHub UI tests (not Ginkgo). Searched the changed files for IPv4 literals/IP parsing and external/public URLs/hosts—none found; no added internet connectivity.
No-Weak-Crypto ✅ Passed In the PR’s affected Cypress/viewport files, there are no uses/imports of MD5/SHA1/DES/RC4/3DES/Blowfish/ECB, nor any crypto or secret-token comparisons; changes are UI waits and assertions only.
Container-Privileges ✅ Passed PR #16608 changes only Cypress TS files under integration-tests-cypress; no Kubernetes/container manifests or privileged/host*/*SYS_ADMIN/allowPrivilegeEscalation fields are present.
No-Sensitive-Data-In-Logs ✅ Passed Reviewed the changed Cypress specs and operatorHub helper; added logs only report navigation, test strings, and OperatorHub tile titles—no passwords/tokens/PII/internal hostnames are logged.
Title check ✅ Passed The title clearly describes the main change: stabilizing legacy OperatorHub Cypress waits on release-4.16, which aligns with the PR objectives and the three modified test files.

✏️ 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 and usage tips.

@openshift-ci openshift-ci Bot added the component/olm Related to OLM label Jun 12, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@RadekManak: This pull request references Jira Issue OCPBUGS-88027, which is valid.

7 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.16.z) matches configured target version for branch (4.16.z)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
  • release note text is set and does not match the template
  • dependent bug Jira Issue OCPBUGS-51277 is in the state Closed (Done-Errata), which is one of the valid states (VERIFIED, RELEASE PENDING, CLOSED (ERRATA), CLOSED (CURRENT RELEASE), CLOSED (DONE), CLOSED (DONE-ERRATA))
  • dependent Jira Issue OCPBUGS-51277 targets the "4.17.z" version, which is one of the valid target versions: 4.17.0, 4.17.z
  • bug has dependents
Details

In response to this:

CONSOLE Features and Fixes:

Solution description

This PR stabilizes the legacy OperatorHub Cypress flows on `release-4.16`.

Why we are fixing this:

  • e2e-gcp-console on release-4.16 is being destabilized by flaky OLM OperatorHub tests rather than by the product bug under test.
  • Dredge analysis of the recent failed e2e-gcp-console jobs showed that on release-4.16, operator-hub.cy.ts failed in 12/12 failed builds that were sampled.
  • The dominant signature was the legacy filter click timing out on catalogSourceDisplayName-red-hat (9x), with the remaining 3x coming from the related create-namespace.cy.ts path timing out around search-operatorhub.
  • On newer branches, the same OperatorHub spec was passing in failed builds, so this is not a general current-branch problem. It is specific to the older release-4.16 OperatorHub UI/test path.

Why this needs a release-4.16-specific fix:

  • release-4.16 still uses the legacy OperatorHub page and selectors like catalogSourceDisplayName-red-hat and search-operatorhub.
  • Newer branches moved to different catalog flows and selectors, so there is no clean newer-branch PR to cherry-pick for this exact flake.

How this PR fixes it:

  • Add a small operatorHub.waitForLoaded() helper for the legacy OperatorHub page.
  • Wait for the loading skeleton to disappear, the search input to be visible, the filter sidebar to be present, and catalog tiles to exist before interacting.
  • Use that wait only in the two flaky specs: operator-hub.cy.ts and create-namespace.cy.ts.
  • Add explicit timeout-backed visibility checks for the legacy Red Hat / Certified filter clicks.
  • Keep the scope narrow on this older branch and avoid broadening the change through shared install helpers.

Reviewers and assignees

TBD

Test cases:

- Main validation target is the `e2e-gcp-console` lane on `release-4.16`, especially: - `Interacting with OperatorHub` - `Create namespace from install operators` - Cross-branch investigation from dredge indicated this specific failure mode is isolated to the legacy `release-4.16` codepath; newer branches were not failing this spec in the sampled failed builds. - Local Cypress execution is blocked in this environment because `yarn` is not installed. - Attempted locally: - `./test-cypress.sh -p olm -s 'packages/operator-lifecycle-manager/integration-tests-cypress/tests/operator-hub.cy.ts' -h true` - `./test-cypress.sh -p olm -s 'packages/operator-lifecycle-manager/integration-tests-cypress/tests/create-namespace.cy.ts' -h true`

Additional info:

- This is a `release-4.16`-only stabilization for the legacy OperatorHub UI. - Diff against `release-4.16` is one commit touching three files. - The intent is to remove CI noise from a known flaky test path so `e2e-gcp-console` can validate actual regressions instead of repeatedly failing on page-load timing.

Screen shots / gifs / design review:

Not applicable; test-only change.

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.

@RadekManak RadekManak changed the title OCPBUGS-88027: Stabilize legacy OperatorHub Cypress waits NO-JIRA: Stabilize legacy OperatorHub Cypress waits Jun 12, 2026
@openshift-ci-robot openshift-ci-robot removed the jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. label Jun 12, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

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

Details

In response to this:

CONSOLE Features and Fixes:

Solution description

This PR stabilizes the legacy OperatorHub Cypress flows on `release-4.16`.

Why we are fixing this:

  • e2e-gcp-console on release-4.16 is being destabilized by flaky OLM OperatorHub tests rather than by the product bug under test.
  • Dredge analysis of the recent failed e2e-gcp-console jobs showed that on release-4.16, operator-hub.cy.ts failed in 12/12 failed builds that were sampled.
  • The dominant signature was the legacy filter click timing out on catalogSourceDisplayName-red-hat (9x), with the remaining 3x coming from the related create-namespace.cy.ts path timing out around search-operatorhub.
  • On newer branches, the same OperatorHub spec was passing in failed builds, so this is not a general current-branch problem. It is specific to the older release-4.16 OperatorHub UI/test path.

Why this needs a release-4.16-specific fix:

  • release-4.16 still uses the legacy OperatorHub page and selectors like catalogSourceDisplayName-red-hat and search-operatorhub.
  • Newer branches moved to different catalog flows and selectors, so there is no clean newer-branch PR to cherry-pick for this exact flake.

How this PR fixes it:

  • Add a small operatorHub.waitForLoaded() helper for the legacy OperatorHub page.
  • Wait for the loading skeleton to disappear, the search input to be visible, the filter sidebar to be present, and catalog tiles to exist before interacting.
  • Use that wait only in the two flaky specs: operator-hub.cy.ts and create-namespace.cy.ts.
  • Add explicit timeout-backed visibility checks for the legacy Red Hat / Certified filter clicks.
  • Keep the scope narrow on this older branch and avoid broadening the change through shared install helpers.

Reviewers and assignees

TBD

Test cases:

- Main validation target is the `e2e-gcp-console` lane on `release-4.16`, especially: - `Interacting with OperatorHub` - `Create namespace from install operators` - Cross-branch investigation from dredge indicated this specific failure mode is isolated to the legacy `release-4.16` codepath; newer branches were not failing this spec in the sampled failed builds. - Local Cypress execution is blocked in this environment because `yarn` is not installed. - Attempted locally: - `./test-cypress.sh -p olm -s 'packages/operator-lifecycle-manager/integration-tests-cypress/tests/operator-hub.cy.ts' -h true` - `./test-cypress.sh -p olm -s 'packages/operator-lifecycle-manager/integration-tests-cypress/tests/create-namespace.cy.ts' -h true`

Additional info:

- This is a `release-4.16`-only stabilization for the legacy OperatorHub UI. - Diff against `release-4.16` is one commit touching three files. - The intent is to remove CI noise from a known flaky test path so `e2e-gcp-console` can validate actual regressions instead of repeatedly failing on page-load timing.

Screen shots / gifs / design review:

Not applicable; test-only change.

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.

@RadekManak RadekManak marked this pull request as ready for review June 12, 2026 11:01
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jun 12, 2026
@openshift-ci openshift-ci Bot requested review from TheRealJon and spadgett June 12, 2026 11:01
@RadekManak

Copy link
Copy Markdown
Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Full review finished.

@RadekManak RadekManak changed the title NO-JIRA: Stabilize legacy OperatorHub Cypress waits [release-4.16] NO-JIRA: Stabilize legacy OperatorHub Cypress waits Jun 12, 2026

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

🧹 Nitpick comments (1)
frontend/packages/operator-lifecycle-manager/integration-tests-cypress/tests/operator-hub.cy.ts (1)

48-55: ⚡ Quick win

Consider adding explicit timeout for consistency with other waits.

The cy.get('.co-catalog-tile') on line 49 and the subsequent should() assertion will retry using Cypress's default timeout (typically 4 seconds). All other synchronization waits in this file use the explicit OPERATOR_HUB_LOAD_TIMEOUT (60 seconds). Given that this PR stabilizes flaky tests on slow CI environments, catalog tile updates after filter toggles may occasionally exceed the default timeout.

🔧 Suggested enhancement for consistency
        cy.log('wait for the Certified results to replace the Red Hat list');
-       cy.get('.co-catalog-tile')
+       cy.get('.co-catalog-tile', { timeout: OPERATOR_HUB_LOAD_TIMEOUT })
          .should(($tiles) => {
            expect($tiles.length).to.be.gt(0);
            expect($tiles.first().find('.catalog-tile-pf-title').text()).not.to.equal(
              origCatalogTitleTxt,
            );
          });
🤖 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
`@frontend/packages/operator-lifecycle-manager/integration-tests-cypress/tests/operator-hub.cy.ts`
around lines 48 - 55, The wait for catalog tiles uses cy.get('.co-catalog-tile')
without an explicit timeout; update the call to pass the shared
OPERATOR_HUB_LOAD_TIMEOUT (used elsewhere in this file) so the get+should retry
up to that timeout (e.g., cy.get('.co-catalog-tile', { timeout:
OPERATOR_HUB_LOAD_TIMEOUT }).should(...)); this ensures the tile replacement
assertion in the anonymous should callback has the same 60s timeout behavior as
other waits.
🤖 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
`@frontend/packages/operator-lifecycle-manager/integration-tests-cypress/tests/operator-hub.cy.ts`:
- Around line 48-55: The wait for catalog tiles uses cy.get('.co-catalog-tile')
without an explicit timeout; update the call to pass the shared
OPERATOR_HUB_LOAD_TIMEOUT (used elsewhere in this file) so the get+should retry
up to that timeout (e.g., cy.get('.co-catalog-tile', { timeout:
OPERATOR_HUB_LOAD_TIMEOUT }).should(...)); this ensures the tile replacement
assertion in the anonymous should callback has the same 60s timeout behavior as
other waits.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 2e9f26cf-7b64-403e-9bc7-fb6c008ac877

📥 Commits

Reviewing files that changed from the base of the PR and between 074380b and d9cace4.

📒 Files selected for processing (3)
  • frontend/packages/operator-lifecycle-manager/integration-tests-cypress/tests/create-namespace.cy.ts
  • frontend/packages/operator-lifecycle-manager/integration-tests-cypress/tests/operator-hub.cy.ts
  • frontend/packages/operator-lifecycle-manager/integration-tests-cypress/views/operator-hub.view.ts

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

/lgtm

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

openshift-ci Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: fsgreco, RadekManak
Once this PR has been reviewed and has the lgtm label, please assign therealjon for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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-cherrypick-robot

Copy link
Copy Markdown

@cardil: once the present PR merges, I will cherry-pick it on top of release-4.12, release-4.14 in new PRs and assign them to you.

Details

In response to this:

/cherrypick release-4.14
/cherrypick release-4.12

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.

@cardil

cardil commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Removed the cherry pick comment. This should cancel the cherry pick.

Wait for the legacy OperatorHub search, filters, and tiles before interacting so the 4.16 OLM specs stop racing the page load.
@RadekManak RadekManak force-pushed the stabilize-operator-hub-e2e branch from d9cace4 to c56ba70 Compare June 12, 2026 12:25
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Jun 12, 2026
@openshift-ci

openshift-ci Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

New changes are detected. LGTM label has been removed.

@openshift-ci

openshift-ci Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

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

@RadekManak RadekManak changed the title [release-4.16] NO-JIRA: Stabilize legacy OperatorHub Cypress waits [release-4.16] OCPBUGS-88554: Stabilize legacy OperatorHub Cypress waits Jun 15, 2026
@openshift-ci-robot openshift-ci-robot added the jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. label Jun 15, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@RadekManak: This pull request references Jira Issue OCPBUGS-88554, which is invalid:

  • release note text must be set and not match the template OR release note type must be set to "Release Note Not Required". For more information you can reference the OpenShift Bug Process.
  • expected Jira Issue OCPBUGS-88554 to depend on a bug targeting a version in 4.17.0, 4.17.z and in one of the following states: VERIFIED, RELEASE PENDING, CLOSED (ERRATA), CLOSED (CURRENT RELEASE), CLOSED (DONE), CLOSED (DONE-ERRATA), but no dependents were found

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:

CONSOLE Features and Fixes:

Solution description

This PR stabilizes the legacy OperatorHub Cypress flows on `release-4.16`.

Why we are fixing this:

  • e2e-gcp-console on release-4.16 is being destabilized by flaky OLM OperatorHub tests rather than by the product bug under test.
  • Dredge analysis of the recent failed e2e-gcp-console jobs showed that on release-4.16, operator-hub.cy.ts failed in 12/12 failed builds that were sampled.
  • The dominant signature was the legacy filter click timing out on catalogSourceDisplayName-red-hat (9x), with the remaining 3x coming from the related create-namespace.cy.ts path timing out around search-operatorhub.
  • On newer branches, the same OperatorHub spec was passing in failed builds, so this is not a general current-branch problem. It is specific to the older release-4.16 OperatorHub UI/test path.

Why this needs a release-4.16-specific fix:

  • release-4.16 still uses the legacy OperatorHub page and selectors like catalogSourceDisplayName-red-hat and search-operatorhub.
  • Newer branches moved to different catalog flows and selectors, so there is no clean newer-branch PR to cherry-pick for this exact flake.

How this PR fixes it:

  • Add a small operatorHub.waitForLoaded() helper for the legacy OperatorHub page.
  • Wait for the loading skeleton to disappear, the search input to be visible, the filter sidebar to be present, and catalog tiles to exist before interacting.
  • Use that wait only in the two flaky specs: operator-hub.cy.ts and create-namespace.cy.ts.
  • Add explicit timeout-backed visibility checks for the legacy Red Hat / Certified filter clicks.
  • Keep the scope narrow on this older branch and avoid broadening the change through shared install helpers.

Reviewers and assignees

TBD

Test cases:

- Main validation target is the `e2e-gcp-console` lane on `release-4.16`, especially: - `Interacting with OperatorHub` - `Create namespace from install operators` - Cross-branch investigation from dredge indicated this specific failure mode is isolated to the legacy `release-4.16` codepath; newer branches were not failing this spec in the sampled failed builds. - Local Cypress execution is blocked in this environment because `yarn` is not installed. - Attempted locally: - `./test-cypress.sh -p olm -s 'packages/operator-lifecycle-manager/integration-tests-cypress/tests/operator-hub.cy.ts' -h true` - `./test-cypress.sh -p olm -s 'packages/operator-lifecycle-manager/integration-tests-cypress/tests/create-namespace.cy.ts' -h true`

Additional info:

- This is a `release-4.16`-only stabilization for the legacy OperatorHub UI. - Diff against `release-4.16` is one commit touching three files. - The intent is to remove CI noise from a known flaky test path so `e2e-gcp-console` can validate actual regressions instead of repeatedly failing on page-load timing.

Screen shots / gifs / design review:

Not applicable; test-only change.

Summary by CodeRabbit

Tests

  • Improved OperatorHub integration test reliability with enhanced synchronization for catalog loading and filter operations.

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.

@RadekManak

Copy link
Copy Markdown
Author

/assign @TheRealJon
/jira refresh
/label backport-risk-assessed

@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@RadekManak: This pull request references Jira Issue OCPBUGS-88554, which is invalid:

  • expected Jira Issue OCPBUGS-88554 to depend on a bug targeting a version in 4.17.0, 4.17.z and in one of the following states: VERIFIED, RELEASE PENDING, CLOSED (ERRATA), CLOSED (CURRENT RELEASE), CLOSED (DONE), CLOSED (DONE-ERRATA), but no dependents were found

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.

Details

In response to this:

/assign @TheRealJon
/jira refresh
/label backport-risk-assessed

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 commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

@RadekManak: The label(s) backport-risk-assessed cannot be applied or removed, because you are not in one of the allowed teams and are not an allowed user. Must be a member of one of these teams: openshift-patch-managers, openshift-release-oversight, openshift-staff-engineers, openshift-sustaining-engineers

Details

In response to this:

/assign @TheRealJon
/jira refresh
/label backport-risk-assessed

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.

@RadekManak

Copy link
Copy Markdown
Author

/jira refresh

@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@RadekManak: This pull request references Jira Issue OCPBUGS-88554, which is invalid:

  • expected dependent Jira Issue OCPBUGS-88555 to be in one of the following states: VERIFIED, RELEASE PENDING, CLOSED (ERRATA), CLOSED (CURRENT RELEASE), CLOSED (DONE), CLOSED (DONE-ERRATA), but it is Closed (Not a Bug) instead

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.

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.

@RadekManak

Copy link
Copy Markdown
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 Jun 15, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

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

7 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.16.z) matches configured target version for branch (4.16.z)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, POST)
  • release note type set to "Release Note Not Required"
  • dependent bug Jira Issue OCPBUGS-88555 is in the state Closed (Done), which is one of the valid states (VERIFIED, RELEASE PENDING, CLOSED (ERRATA), CLOSED (CURRENT RELEASE), CLOSED (DONE), CLOSED (DONE-ERRATA))
  • dependent Jira Issue OCPBUGS-88555 targets the "4.17.z" version, which is one of the valid target versions: 4.17.0, 4.17.z
  • bug has dependents
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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component/olm Related to OLM 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants