Skip to content

fix(e2e): restore readiness gates for runtime, auth, and localization#5083

Open
schultzp2020 wants to merge 10 commits into
mainfrom
fix/e2e-readiness-and-localization-gates
Open

fix(e2e): restore readiness gates for runtime, auth, and localization#5083
schultzp2020 wants to merge 10 commits into
mainfrom
fix/e2e-readiness-and-localization-gates

Conversation

@schultzp2020

@schultzp2020 schultzp2020 commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes E2E nightlies broken after #5004 / #5022, then deepens the auth/runtime install path so operator defaults cannot recreate the same 503 class of failures.

  • Instance readinessglobalSetup classifies BASE_URL as unset | router-stub | instance-url; runtime jobs keep a predicted URL + RUNTIME_AUTO_DEPLOY=true; auth leaves BASE_URL empty so the harness self-deploys.
  • Localization — drop smoke-test deps that asserted English "Welcome back!".
  • Shared operator install profilesOperatorInstallProfile + DynamicPluginsProfile own apiVersion, flavours: [], includes: [], and BACKEND_SECRET for both runtime and auth adapters.
  • Auth deployAuthInstanceDeployer stages created → HTTP /healthcheck → catalog synced (HTTP can fail on 503 before burning Available timeouts); harness is thin glue.
  • Restore e2e-tests/.lintstagedrc.js and document /test ? / /test <job> for agents/contributors.
flowchart TB
  subgraph globalSetup["Playwright globalSetup"]
    A[classify BASE_URL] --> B{mode?}
    B -->|router-stub, no auto-deploy| C[no-op]
    B -->|RUNTIME_AUTO_DEPLOY| D[ensureRuntimeDeployed]
    D --> E[set instance BASE_URL]
    E --> F["GET /healthcheck"]
    B -->|instance-url| F
    B -->|unset, no auto-deploy| C
  end

  subgraph authDeploy["AuthInstanceDeployer"]
    P[OperatorInstallProfile + DynamicPluginsProfile] --> Q[apply CR / CMs]
    Q --> R[wait Deployment created]
    R --> S["HTTP /healthcheck ≤ 600s"]
    S --> T[wait catalog synced]
  end

  globalSetup -.->|auth BASE_URL empty| authDeploy
Loading

Why auth was still failing after the gate fix

Auth YAML omitted flavours / includes, so the operator reintroduced defaults (e.g. lightspeed) and readiness stayed on HTTP 503. Runtime already encoded those invariants in runtime-config.ts; auth did not. Profiles close that drift; staging surfaces 503s with a clear healthcheck error instead of a 600s Available timeout.

Test plan

  • cd e2e-tests && yarn test:unit (50 passed)
  • cd e2e-tests && yarn lint / yarn fmt:check
  • /test e2e-ocp-helm-nightly
  • /test e2e-ocp-operator-nightly
  • /test e2e-ocp-helm-localization-nightly
  • /test e2e-ocp-operator-auth-providers-nightly (re-triggered after profile + readiness harden)
  • Localization: no smoke "Welcome back!" failure
  • showcase-runtime progresses past globalSetup
  • auth-providers: no ENOTFOUND on https://apps.<cluster>; deploy reaches HTTP ready / synced

@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 54.77%. Comparing base (bb8f621) to head (d4e629f).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5083      +/-   ##
==========================================
- Coverage   55.39%   54.77%   -0.62%     
==========================================
  Files         122      110      -12     
  Lines        2365     2147     -218     
  Branches      567      538      -29     
==========================================
- Hits         1310     1176     -134     
+ Misses       1048      970      -78     
+ Partials        7        1       -6     
Flag Coverage Δ
rhdh 54.77% <ø> (-0.62%) ⬇️

Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update bb8f621...d4e629f. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

Copy link
Copy Markdown
Contributor

The container image build workflow finished with status: cancelled.

@github-actions

Copy link
Copy Markdown
Contributor

The container image build workflow finished with status: cancelled.

@schultzp2020

Copy link
Copy Markdown
Contributor Author

/test e2e-ocp-helm-nightly
/test e2e-ocp-operator-nightly
/test e2e-ocp-helm-localization-nightly
/test e2e-ocp-operator-auth-providers-nightly

@github-actions

Copy link
Copy Markdown
Contributor

Image was built and published successfully. It is available at:

@schultzp2020

Copy link
Copy Markdown
Contributor Author

/test e2e-ocp-operator-nightly
/test e2e-ocp-operator-auth-providers-nightly

@github-actions

Copy link
Copy Markdown
Contributor

Image was built and published successfully. It is available at:

@schultzp2020

Copy link
Copy Markdown
Contributor Author

/test e2e-ocp-operator-auth-providers-nightly

@github-actions

Copy link
Copy Markdown
Contributor

The container image build workflow finished with status: cancelled.

@schultzp2020

Copy link
Copy Markdown
Contributor Author

/test e2e-ocp-operator-auth-providers-nightly

1 similar comment
@schultzp2020

Copy link
Copy Markdown
Contributor Author

/test e2e-ocp-operator-auth-providers-nightly

@github-actions

Copy link
Copy Markdown
Contributor

The container image build workflow finished with status: cancelled.

@github-actions

Copy link
Copy Markdown
Contributor

Image was built and published successfully. It is available at:

@schultzp2020

Copy link
Copy Markdown
Contributor Author

/test e2e-ocp-operator-auth-providers-nightly

schultzp2020 and others added 9 commits July 10, 2026 17:53
Introduce an instance-readiness module so globalSetup distinguishes live
instance URLs, auth router stubs, and runtime auto-deploy. Keep predicted
runtime BASE_URL for Playwright config freeze, deploy before healthcheck
when RUNTIME_AUTO_DEPLOY=true, drop localization smoke deps, restore
e2e-tests lint-staged, and document /test job verification for agents.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Auth fixtures looked for yamls under rhdh-deployment/ after the folder
split. Operator runtime was missing BACKEND_SECRET/auth.keys and the
homepage plugin, leaving readiness at HTTP 503.

Co-authored-by: Cursor <cursoragent@cursor.com>
prepareProvider updates ConfigMaps before createBackstageDeployment.
Capturing reconcile baseline must tolerate a missing deployment.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
waitForRolloutStart treated a missing Deployment as a hard error, so
auth prepareProvider failed immediately after applying the Backstage CR.

Co-authored-by: Cursor <cursoragent@cursor.com>
Extract OperatorInstallProfile and DynamicPluginsProfile so auth and
runtime stop drifting on flavours, includes, and BACKEND_SECRET. Stage
auth deploy readiness as Available → HTTP → synced behind AuthInstanceDeployer.

Co-authored-by: Cursor <cursoragent@cursor.com>
Stop dual BACKEND_SECRET injection, stage created→HTTP→synced so 503s
surface before Available timeouts, always publish instance BASE_URL after
runtime deploy, and align auth YAML fixtures with the install profile.

Co-authored-by: Cursor <cursoragent@cursor.com>
@schultzp2020 schultzp2020 force-pushed the fix/e2e-readiness-and-localization-gates branch from 62f7502 to 0953344 Compare July 10, 2026 22:54
@github-actions

Copy link
Copy Markdown
Contributor

The container image build workflow finished with status: cancelled.

@schultzp2020

Copy link
Copy Markdown
Contributor Author

/test e2e-ocp-operator-auth-providers-nightly

@github-actions

Copy link
Copy Markdown
Contributor

Image was built and published successfully. It is available at:

Auth CI leaves BASE_URL empty so globalSetup no-ops, but rhdhContext ignored
describe-level baseURL and login goto("/") failed with invalid URL.

Co-authored-by: Cursor <cursoragent@cursor.com>
@schultzp2020

schultzp2020 commented Jul 11, 2026

Copy link
Copy Markdown
Contributor Author

/test e2e-ocp-operator-auth-providers-nightly

@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown
Contributor

Image was built and published successfully. It is available at:

@openshift-ci

openshift-ci Bot commented Jul 11, 2026

Copy link
Copy Markdown

@schultzp2020: 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/e2e-ocp-operator-auth-providers-nightly d4e629f link false /test e2e-ocp-operator-auth-providers-nightly
ci/prow/e2e-ocp-helm d4e629f link true /test e2e-ocp-helm

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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant