Repository navigation
OCPNETUI-56: Hot-cluster CI infrastructure and test fixes - #522
Conversation
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
@lkladnit: This pull request references OCPNETUI-56 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.1.0" version, but no target version was set. 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. |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Comment |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: lkladnit 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 |
3cbb726 to
1868fec
Compare
cf8e206 to
5c94f43
Compare
|
/retest |
f4153c7 to
24db7dd
Compare
Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Co-authored-by: Cursor <cursoragent@cursor.com>
Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Co-authored-by: Cursor <cursoragent@cursor.com>
c9fa2a4 to
6aaadb0
Compare
22ac337 to
321751b
Compare
|
/test lint |
Skip Cypress E2E when CONSOLE_URL is unset so forks without the secret do not fail. Also include related hot-cluster CI hardening and docs updates carried on this branch. Fix invalid workflow: secrets cannot be used in jobs.<id>.if (GitHub Actions context restriction). Gate with a first step that sets an output instead of a job-level secrets comparison. Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Co-authored-by: Cursor <cursoragent@cursor.com>
Extract repeated and self-contained steps from the hot-cluster E2E run workflow into reusable GitHub Actions, as suggested on PR openshift#497. - setup-kubeconfig: write kubeconfig from in-pod ServiceAccount token - install-oc: download oc/kubectl when missing from PATH - log-runner-env: tool availability and client/server versions - build-plugin-image: skip-if-exists ttl.sh build and push - setup-test-namespaces: create TEST_NS and UDN-labeled namespace - collect-ci-diagnostics: pod logs, cluster dump, artifact upload Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522), lkladnit/custom-arc-runner-image (openshift#580). Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Co-authored-by: Cursor <cursoragent@cursor.com>
|
@lkladnit: 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. |
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Co-authored-by: Cursor <cursoragent@cursor.com>
Extract repeated and self-contained steps from the hot-cluster E2E run workflow into reusable GitHub Actions, as suggested on PR openshift#497. - setup-kubeconfig: write kubeconfig from in-pod ServiceAccount token - install-oc: download oc/kubectl when missing from PATH - log-runner-env: tool availability and client/server versions - build-plugin-image: skip-if-exists ttl.sh build and push - setup-test-namespaces: create TEST_NS and UDN-labeled namespace - collect-ci-diagnostics: pod logs, cluster dump, artifact upload Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522), lkladnit/custom-arc-runner-image (openshift#580). Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Co-authored-by: Cursor <cursoragent@cursor.com>
Extract repeated and self-contained steps from the hot-cluster E2E run workflow into reusable GitHub Actions, as suggested on PR openshift#497. - setup-kubeconfig: write kubeconfig from in-pod ServiceAccount token - install-oc: download oc/kubectl when missing from PATH - log-runner-env: tool availability and client/server versions - build-plugin-image: skip-if-exists ttl.sh build and push - setup-test-namespaces: create TEST_NS and UDN-labeled namespace - collect-ci-diagnostics: pod logs, cluster dump, artifact upload Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522), lkladnit/custom-arc-runner-image (openshift#580). Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Fix ci-env-controller Helm install - Bind the controller ServiceAccount to cluster-admin so it can grant cluster-admin to the per-test console ServiceAccount - Point the test-stack runner RoleBinding at ClusterRole ci-env-controller-test-runner and the runner ServiceAccount namespace arc-runners, instead of a ClusterRole named after the per-run release - Add Dockerfile.ci-env-controller with oc, helm, and the test-stack chart Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Fix ci-env-controller Helm install - Bind the controller ServiceAccount to cluster-admin so it can grant cluster-admin to the per-test console ServiceAccount - Point the test-stack runner RoleBinding at ClusterRole ci-env-controller-test-runner and the runner ServiceAccount namespace arc-runners, instead of a ClusterRole named after the per-run release - Add Dockerfile.ci-env-controller with oc, helm, and the test-stack chart Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Fix ci-env-controller Helm install - Bind the controller ServiceAccount to cluster-admin so it can grant cluster-admin to the per-test console ServiceAccount - Point the test-stack runner RoleBinding at ClusterRole ci-env-controller-test-runner and the runner ServiceAccount namespace arc-runners, instead of a ClusterRole named after the per-run release - Add Dockerfile.ci-env-controller with oc, helm, and the test-stack chart Install the Cypress binary in the E2E job - Unset CYPRESS_INSTALL_BINARY before npx cypress install. The runner image sets it to 0, which skipped the browser binary download. Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Fix ci-env-controller Helm install - Bind the controller ServiceAccount to cluster-admin so it can grant cluster-admin to the per-test console ServiceAccount - Point the test-stack runner RoleBinding at ClusterRole ci-env-controller-test-runner and the runner ServiceAccount namespace arc-runners, instead of a ClusterRole named after the per-run release - Add Dockerfile.ci-env-controller with oc, helm, and the test-stack chart Install the Cypress binary in the E2E job - Unset CYPRESS_INSTALL_BINARY before npx cypress install. The runner image sets it to 0, which skipped the browser binary download. Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc) v4.14+ - Helm v3.14+ - Node.js v18.x - npm (latest) - Cypress (latest) - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Image can be pushed to: - ttl.sh (temporary, 1-24 hours) - Docker Hub (permanent, requires account) - Quay.io (enterprise, Red Hat) Workflow supports manual trigger via workflow_dispatch with custom registry/image/tag parameters. Image is automatically rebuilt on changes to Dockerfile or documentation. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Fix ci-env-controller Helm install - Bind the controller ServiceAccount to cluster-admin so it can grant cluster-admin to the per-test console ServiceAccount - Point the test-stack runner RoleBinding at ClusterRole ci-env-controller-test-runner and the runner ServiceAccount namespace arc-runners, instead of a ClusterRole named after the per-run release - Add Dockerfile.ci-env-controller with oc, helm, and the test-stack chart Install the Cypress binary in the E2E job - Unset CYPRESS_INSTALL_BINARY before npx cypress install. The runner image sets it to 0, which skipped the browser binary download. Format the screenshot rename hook - Prettier-format ui-tests-cy/plugins/index.ts so ci/prow/lint passes. Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc), Helm, Node.js, npm, and Cypress - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Publish the runner image to the team Quay org (quay.io/openshift/networking-console-plugin-arc-runner:v1), not ttl.sh and not a personal account. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Fix ci-env-controller Helm install - Bind the controller ServiceAccount to cluster-admin so it can grant cluster-admin to the per-test console ServiceAccount - Point the test-stack runner RoleBinding at ClusterRole ci-env-controller-test-runner and the runner ServiceAccount namespace arc-runners, instead of a ClusterRole named after the per-run release Install the Cypress binary in the E2E job - Unset CYPRESS_INSTALL_BINARY before npx cypress install. The runner image sets it to 0, which skipped the browser binary download. Format the screenshot rename hook - Prettier-format ui-tests-cy/plugins/index.ts so ci/prow/lint passes. Address review on PR 580 - Drop unused yarn.lock and coverage ignores from eslint.config.mjs - Pin the runner base image, oc 4.22.18, Helm 3.16.4, Node.js 22.21.0, and Cypress 15.21.1, and check oc, Helm, and Node downloads by sha256 - Remove Dockerfile.ci-env-controller from this PR Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc), Helm, Node.js, npm, and Cypress - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Publish the runner image to the team Quay org (quay.io/openshift/networking-console-plugin-arc-runner:v1), not ttl.sh and not a personal account. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Fix ci-env-controller Helm install - Bind the controller ServiceAccount to cluster-admin so it can grant cluster-admin to the per-test console ServiceAccount - Point the test-stack runner RoleBinding at ClusterRole ci-env-controller-test-runner and the runner ServiceAccount namespace arc-runners, instead of a ClusterRole named after the per-run release Install the Cypress binary in the E2E job - Unset CYPRESS_INSTALL_BINARY before npx cypress install. The runner image sets it to 0, which skipped the browser binary download. Format the screenshot rename hook - Prettier-format ui-tests-cy/plugins/index.ts so ci/prow/lint passes. Address review on PR 580 - Drop unused yarn.lock and coverage ignores from eslint.config.mjs - Pin the runner base image, oc 4.22.18, Helm 3.16.4, Node.js 22.21.0, and Cypress 15.21.1, and check oc, Helm, and Node downloads by sha256 - Remove Dockerfile.ci-env-controller from this PR Co-authored-by: Cursor <cursoragent@cursor.com>
Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Fix ci/prow/lint timeout - Remove accidentally committed ui-tests-cy/ci-hot-cluster-e2e/ CI artifacts (screenshots, app.js, HTML reports) that caused eslint to hang for 2h - Ignore ui-tests-cy/ci-hot-cluster-e2e/ and gui-test-screenshots in .gitignore and .eslintignore Custom Docker image for Actions Runner Controller (ARC) with: - OpenShift CLI (oc), Helm, Node.js, npm, and Cypress - System dependencies (Xvfb, fonts, browsers, jq, curl, git) Benefits: - 2-3x faster job startup (no tool installation during CI) - Improved reproducibility (all jobs use identical versions) - Reduced network traffic (~200MB → ~5MB per job) - Better security (curated, tested base image) Files added: - ci-scripts/Dockerfile.arc-runner: Multi-stage build for custom image - ci-scripts/ARC-RUNNER-IMAGE.md: Comprehensive guide for building, pushing, and using the image - ci-scripts/runnerscaleset-custom-image.yaml: Example RunnerScaleSet configuration - .github/workflows/build-arc-runner-image.yml: Automated CI/CD for image builds Publish the runner image to the team Quay org (quay.io/openshift/networking-console-plugin-arc-runner:v1), not ttl.sh and not a personal account. Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522). Fix ci-env-controller Helm install - Bind the controller ServiceAccount to cluster-admin so it can grant cluster-admin to the per-test console ServiceAccount - Point the test-stack runner RoleBinding at ClusterRole ci-env-controller-test-runner and the runner ServiceAccount namespace arc-runners, instead of a ClusterRole named after the per-run release Install the Cypress binary in the E2E job - Unset CYPRESS_INSTALL_BINARY before npx cypress install. The runner image sets it to 0, which skipped the browser binary download. Format the screenshot rename hook - Prettier-format ui-tests-cy/plugins/index.ts so ci/prow/lint passes. Address review on PR 580 - Drop unused yarn.lock and coverage ignores from eslint.config.mjs - Pin the runner base image, oc 4.22.18, Helm 3.16.4, Node.js 22.21.0, and Cypress 15.21.1, and check oc, Helm, and Node downloads by sha256 - Remove Dockerfile.ci-env-controller from this PR Build the plugin image on UBI Node.js 22 - nodejs-18 cannot load webpack.config.ts (ERR_UNKNOWN_FILE_EXTENSION). - Register ts-node for the webpack-cli process that reads the config. Co-authored-by: Cursor <cursoragent@cursor.com>
Extract repeated and self-contained steps from the hot-cluster E2E run workflow into reusable GitHub Actions, as suggested on PR openshift#497. - setup-kubeconfig: write kubeconfig from in-pod ServiceAccount token - install-oc: download oc/kubectl when missing from PATH - log-runner-env: tool availability and client/server versions - build-plugin-image: skip-if-exists ttl.sh build and push - setup-test-namespaces: create TEST_NS and UDN-labeled namespace - collect-ci-diagnostics: pod logs, cluster dump, artifact upload Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522), lkladnit/custom-arc-runner-image (openshift#580). Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Co-authored-by: Cursor <cursoragent@cursor.com>
Extract repeated and self-contained steps from the hot-cluster E2E run workflow into reusable GitHub Actions, as suggested on PR openshift#497. - setup-kubeconfig: write kubeconfig from in-pod ServiceAccount token - install-oc: download oc/kubectl when missing from PATH - log-runner-env: tool availability and client/server versions - build-plugin-image: skip-if-exists ttl.sh build and push - setup-test-namespaces: create TEST_NS and UDN-labeled namespace - collect-ci-diagnostics: pod logs, cluster dump, artifact upload Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522), lkladnit/custom-arc-runner-image (openshift#580). Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Pass job-status from the workflow into collect-ci-diagnostics so cluster-info runs after an E2E failure. Reapply the composite-action calls on current main; cypress-io/github-action stays at v6. log-runner-env follows the check-runner on main and does not gate on oc client/server versions. Co-authored-by: Cursor <cursoragent@cursor.com>
Extract repeated and self-contained steps from the hot-cluster E2E run workflow into reusable GitHub Actions, as suggested on PR openshift#497. - setup-kubeconfig: write kubeconfig from in-pod ServiceAccount token - install-oc: download oc/kubectl when missing from PATH - log-runner-env: tool availability and client/server versions - build-plugin-image: skip-if-exists ttl.sh build and push - setup-test-namespaces: create TEST_NS and UDN-labeled namespace - collect-ci-diagnostics: pod logs, cluster dump, artifact upload Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522), lkladnit/custom-arc-runner-image (openshift#580). Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Pass job-status from the workflow into collect-ci-diagnostics so cluster-info runs after an E2E failure. Reapply the composite-action calls on current main; cypress-io/github-action stays at v6. log-runner-env follows the check-runner on main and does not gate on oc client/server versions. Co-authored-by: Cursor <cursoragent@cursor.com>
Extract repeated and self-contained steps from the hot-cluster E2E run workflow into reusable GitHub Actions, as suggested on PR openshift#497. - setup-kubeconfig: write kubeconfig from in-pod ServiceAccount token - install-oc: download oc/kubectl when missing from PATH - log-runner-env: tool availability and client/server versions - build-plugin-image: skip-if-exists ttl.sh build and push - setup-test-namespaces: create TEST_NS and UDN-labeled namespace - collect-ci-diagnostics: pod logs, cluster dump, artifact upload Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522), lkladnit/custom-arc-runner-image (openshift#580). Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Pass job-status from the workflow into collect-ci-diagnostics so cluster-info runs after an E2E failure. Reapply the composite-action calls on current main; cypress-io/github-action stays at v6. log-runner-env follows the check-runner on main and does not gate on oc client/server versions. Co-authored-by: Cursor <cursoragent@cursor.com>
Extract repeated and self-contained steps from the hot-cluster E2E run workflow into reusable GitHub Actions, as suggested on PR openshift#497. - setup-kubeconfig: write kubeconfig from in-pod ServiceAccount token - install-oc: download oc/kubectl when missing from PATH - log-runner-env: tool availability and client/server versions - build-plugin-image: skip-if-exists ttl.sh build and push - setup-test-namespaces: create TEST_NS and UDN-labeled namespace - collect-ci-diagnostics: pod logs, cluster dump, artifact upload Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522), lkladnit/custom-arc-runner-image (openshift#580). Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Pass job-status from the workflow into collect-ci-diagnostics so cluster-info runs after an E2E failure. Reapply the composite-action calls on current main; cypress-io/github-action stays at v6. log-runner-env follows the check-runner on main and does not gate on oc client/server versions. Co-authored-by: Cursor <cursoragent@cursor.com>
Extract repeated and self-contained steps from the hot-cluster E2E run workflow into reusable GitHub Actions, as suggested on PR openshift#497. - setup-kubeconfig: write kubeconfig from in-pod ServiceAccount token - install-oc: download oc/kubectl when missing from PATH - log-runner-env: tool availability and client/server versions - build-plugin-image: skip-if-exists ttl.sh build and push - setup-test-namespaces: create TEST_NS and UDN-labeled namespace - collect-ci-diagnostics: pod logs, cluster dump, artifact upload Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522), lkladnit/custom-arc-runner-image (openshift#580). Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Pass job-status from the workflow into collect-ci-diagnostics so cluster-info runs after an E2E failure. Reapply the composite-action calls on current main; cypress-io/github-action stays at v6. log-runner-env follows the check-runner on main and does not gate on oc client/server versions. Co-authored-by: Cursor <cursoragent@cursor.com>
Extract repeated and self-contained steps from the hot-cluster E2E run workflow into reusable GitHub Actions, as suggested on PR openshift#497. - setup-kubeconfig: write kubeconfig from in-pod ServiceAccount token - install-oc: download oc/kubectl when missing from PATH - log-runner-env: tool availability and client/server versions - build-plugin-image: skip-if-exists ttl.sh build and push - setup-test-namespaces: create TEST_NS and UDN-labeled namespace - collect-ci-diagnostics: pod logs, cluster dump, artifact upload Depends on ci-scripts (openshift#489), ci-test-stack (openshift#490), ci-env-controller (openshift#491), lkladnit/hot-cluster-workflows (openshift#497), ocpnetui-56 (openshift#522), lkladnit/custom-arc-runner-image (openshift#580). Jira: https://redhat.atlassian.net/browse/OCPNETUI-56 Pass job-status from the workflow into collect-ci-diagnostics so cluster-info runs after an E2E failure. Reapply the composite-action calls on current main; cypress-io/github-action stays at v6. log-runner-env follows the check-runner on main and does not gate on oc client/server versions. fix(ci): push hot-cluster plugin image to existing Quay repo tags Per-run Quay repository names fail with unauthorized on push; use networking-console-plugin:ci-<run_id>-<attempt> instead. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
Adds hot-cluster CI infrastructure for running Cypress E2E tests on a persistent OpenShift cluster via GitHub Actions + ARC self-hosted runners. Also fixes login flow for no-auth mode and updates test suite for OCP 5.0.
What is included
hot-cluster-e2e.yml(entry + health check) andhot-cluster-e2e-run.yml(build, provision, test, cleanup)ci-env-request/ci-env-releaseDockerfile.ciwith public UBI9 base imagesFIPS cluster support
OPENSSL_FORCE_FIPS_MODE=0for runner,GOLANG_FIPS=0for oc CLICluster setup docs
See
ui-tests-cy/CLUSTER.mdfor step-by-step RHOS cluster preparation.Depends on #489, #490, #491, #497.
Jira: OCPNETUI-56
Made with Cursor