Skip to content

CNV-87992: Add hot-cluster CI infrastructure and Cypress E2E tests#443

Open
lkladnit wants to merge 1 commit into
openshift:mainfrom
lkladnit:qe-ui
Open

CNV-87992: Add hot-cluster CI infrastructure and Cypress E2E tests#443
lkladnit wants to merge 1 commit into
openshift:mainfrom
lkladnit:qe-ui

Conversation

@lkladnit

@lkladnit lkladnit commented Jul 13, 2026

Copy link
Copy Markdown

Summary

Adapts the hot-cluster CI approach from kubevirt-plugin (CNV-74265, PRs #4099 / #4100) for networking-console-plugin.

  • Port GitHub Actions composite actions (ci-env-request, ci-env-release) for test environment lifecycle
  • Add CI scripts: cluster health checks, test cleanup, console/plugin container startup, nginx configs
  • Add Helm charts (ci-test-stack, ci-env-controller) for in-cluster console + plugin deployment
  • Add .dockerignore for faster image builds
  • Add Cypress E2E test suite under ui-tests-cy/ with networking-specific tests (NADs, network policies, routes, services, ingresses, UDNs)
  • Add test support scripts (setup.sh, cleanup.sh, test-cypress.sh)

Jira ticket: CNV-87992

Architecture

Uses a persistent ("hot") OpenShift cluster with GitHub Actions Runner Controller (ARC) for self-hosted ephemeral runners. A ci-env-controller watches trigger ConfigMaps and provisions per-run test stacks via Helm. See ci-scripts/README.md for full setup documentation.

Test plan

  • Install ARC + ci-env-controller on target cluster (see ci-scripts/README.md)
  • Run Hot Cluster E2E workflow via manual dispatch
  • Verify Cypress tests execute and artifacts are uploaded
  • Verify test environment is cleaned up after run

Made with Cursor

Summary by CodeRabbit

  • New Features
    • Added automated Cypress coverage for networking pages and workflows, including NADs, UDNs, services, routes, ingresses, and network policies.
    • Added reusable local setup, cleanup, console, and plugin-container scripts for test environments.
    • Added automated CI test-environment provisioning, teardown, health checks, and test execution.
  • Documentation
    • Added migration and test-planning documentation.
  • Chores
    • Added environment examples and ignore rules for generated test artifacts and local configuration.

Port hot-cluster CI approach from kubevirt-plugin (CNV-74265) for
running E2E Cypress tests on a persistent OpenShift cluster via
GitHub Actions + ARC self-hosted runners.

Includes composite actions for test environment lifecycle,
ci-scripts for cluster health checks and test cleanup,
and Helm charts for in-cluster console + plugin deployment.

Co-authored-by: Cursor <cursoragent@cursor.com>
@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: LGTM mode

@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 13, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 13, 2026

Copy link
Copy Markdown

@lkladnit: This pull request references CNV-87992 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:

Summary

Adapts the hot-cluster CI approach from kubevirt-plugin (CNV-74265, PRs #4099 / #4100) for networking-console-plugin.

  • Port GitHub Actions composite actions (ci-env-request, ci-env-release) for test environment lifecycle
  • Add CI scripts: cluster health checks, test cleanup, console/plugin container startup, nginx configs
  • Add Helm charts (ci-test-stack, ci-env-controller) for in-cluster console + plugin deployment
  • Add .dockerignore for faster image builds
  • Add Cypress E2E test suite under ui-tests-cy/ with networking-specific tests (NADs, network policies, routes, services, ingresses, UDNs)
  • Add test support scripts (setup.sh, cleanup.sh, test-cypress.sh)

Jira ticket: CNV-87992

Architecture

Uses a persistent ("hot") OpenShift cluster with GitHub Actions Runner Controller (ARC) for self-hosted ephemeral runners. A ci-env-controller watches trigger ConfigMaps and provisions per-run test stacks via Helm. See ci-scripts/README.md for full setup documentation.

Test plan

  • Install ARC + ci-env-controller on target cluster (see ci-scripts/README.md)
  • Run Hot Cluster E2E workflow via manual dispatch
  • Verify Cypress tests execute and artifacts are uploaded
  • Verify test environment is cleaned up after run

Made with Cursor

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

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: lkladnit
Once this PR has been reviewed and has the lgtm label, please assign rszwajko 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

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.

Walkthrough

Adds a Kubernetes-based CI environment controller and Helm test stack, GitHub Actions provisioning and cleanup, local cluster scripts, and a Cypress UI test project covering networking workflows.

Changes

CI environment lifecycle

Layer / File(s) Summary
Controller reconciliation and RBAC
ci-scripts/helm/ci-env-controller/...
Adds ConfigMap-driven provisioning, teardown, stale-resource reaping, Helm deployment, service accounts, RBAC, and controller configuration.
Test stack deployment
ci-scripts/helm/ci-test-stack/...
Adds Helm resources for the console, plugin, services, routes, configuration, probes, and runner permissions.
CI and local orchestration
.github/..., ci-scripts/..., setup.sh, cleanup.sh, test-cypress.sh
Adds environment request/release actions, E2E workflow wiring, cluster checks, console/plugin startup, namespace setup, cleanup, and Cypress execution scripts.
Cypress runtime and support
ui-tests-cy/{cypress.config.js,plugins,support,...}
Adds Cypress configuration, preprocessing, reporting, environment forwarding, authentication, navigation, selectors, and custom commands.
Networking UI coverage
ui-tests-cy/tests/..., ui-tests-cy/views/..., ui-tests-cy/utils/...
Adds Cypress suites and helpers for NADs, UDNs, services, routes, ingresses, and network policies.
Project configuration and migration records
package.json, ui-tests-cy/PLAN.md, ui-tests-cy/MIGRATION.md, research-flakiness.sh
Updates test commands and dependencies and documents the Cypress migration and flakiness investigation workflow.

Estimated code review effort: 5 (Critical) | ~120 minutes

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

@openshift-ci

openshift-ci Bot commented Jul 13, 2026

Copy link
Copy Markdown

@lkladnit: 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/images c90c244 link true /test images
ci/prow/lint c90c244 link true /test lint
ci/prow/okd-scos-images c90c244 link true /test okd-scos-images

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

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.

2 participants