fix(e2e): restore readiness gates for runtime, auth, and localization#5083
fix(e2e): restore readiness gates for runtime, auth, and localization#5083schultzp2020 wants to merge 10 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 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
Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
|
The container image build workflow finished with status: |
|
The container image build workflow finished with status: |
|
/test e2e-ocp-helm-nightly |
|
/test e2e-ocp-operator-nightly |
|
/test e2e-ocp-operator-auth-providers-nightly |
|
The container image build workflow finished with status: |
|
/test e2e-ocp-operator-auth-providers-nightly |
1 similar comment
|
/test e2e-ocp-operator-auth-providers-nightly |
|
The container image build workflow finished with status: |
|
/test e2e-ocp-operator-auth-providers-nightly |
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>
62f7502 to
0953344
Compare
|
The container image build workflow finished with status: |
|
/test e2e-ocp-operator-auth-providers-nightly |
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>
|
/test e2e-ocp-operator-auth-providers-nightly |
|
|
@schultzp2020: The following tests failed, say
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. |



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.
globalSetupclassifiesBASE_URLasunset|router-stub|instance-url; runtime jobs keep a predicted URL +RUNTIME_AUTO_DEPLOY=true; auth leavesBASE_URLempty so the harness self-deploys."Welcome back!".OperatorInstallProfile+DynamicPluginsProfileownapiVersion,flavours: [],includes: [], andBACKEND_SECRETfor both runtime and auth adapters.AuthInstanceDeployerstages created → HTTP/healthcheck→ catalog synced (HTTP can fail on 503 before burning Available timeouts); harness is thin glue.e2e-tests/.lintstagedrc.jsand 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| authDeployWhy 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 inruntime-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)"Welcome back!"failurehttps://apps.<cluster>; deploy reaches HTTP ready / synced