feat: enable pluginDivisionMode schema tests for OCP Operator nightly jobs [release-1.10]#4884
Conversation
Signed-off-by: Fortune-Ndlovu <fortune.ndlovu2@gmail.com>
…ghtly Enable pluginDivisionMode: schema E2E tests for OCP Operator deployments. The tests previously skipped because schema-mode-setup.ts patched the operator-managed Deployment spec to inject POSTGRES_* env vars, which the operator reconciliation loop reverted — crashing the init container. Fix: for operator deployments, update the existing postgres-cred secret (already mounted via extraEnvs.secrets in the Backstage CR) instead of creating a new secret and patching the Deployment. Skip ensureDeploymentEnvVars() entirely for operator since env vars are injected by the operator from the secret automatically. CI pipeline changes: - Wire up real Crunchy PostgreSQL via configure_external_postgres_db - Configure SCHEMA_MODE_* env vars via configure_schema_mode_runtime_env - Export INSTALL_METHOD=operator for correct deployment naming - Fall back to placeholder secrets if Crunchy setup fails Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…or deployment The Backstage CR references dynamicPluginsConfigMapName: dynamic-plugins but the ConfigMap was never created in the showcase-runtime namespace, causing the operator reconciler to fail. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ator Use values-showcase-postgres.yaml (plugins: []) instead of the full values_showcase.yaml to avoid the install-dynamic-plugins init container hanging while downloading dozens of plugins. The runtime namespace only needs default bundled plugins for schema-mode testing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The ephemeral volume controller can be slow to create PVCs on CI clusters, causing the deployment restart to fail on the first attempt. Add retry logic (up to 3 attempts with 30s delay) and increase the beforeAll timeout to 15 minutes to accommodate retries. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ailure check checkPodFailureStates() was treating all PodScheduled:False conditions as immediate hard failures, bypassing the 10-minute timeout in waitForDeploymentReady(). When the ephemeral volume controller is still creating the PVC for dynamic-plugins-root, this is a transient state that resolves on its own. Now logs a warning and continues polling instead. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This change establishes the INSTALL_METHOD environment variable as 'operator' for the deployment process. Additionally, it updates the base64 encoding method for the runtime URL in the operator runtime config change tests, ensuring compatibility with the common encoding function.
Code Review by Qodo
Context used✅ Tickets:
RHIDP-13221 1. PVC failures treated transient
|
|
|
/test e2e-ocp-helm |
|
/test e2e-ocp-operator-nightly |
|
/test e2e-ocp-helm-nightly |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## release-1.10 #4884 +/- ##
=================================================
+ Coverage 41.03% 69.60% +28.57%
=================================================
Files 121 111 -10
Lines 2220 4702 +2482
Branches 539 512 -27
=================================================
+ Hits 911 3273 +2362
- Misses 1304 1429 +125
+ Partials 5 0 -5
Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
Review Summary by QodoEnable pluginDivisionMode schema tests for OCP Operator nightly
WalkthroughsDescription• Enable pluginDivisionMode schema E2E tests for OCP Operator deployments • Update secret handling to use operator-managed postgres-cred instead of patching Deployment • Add retry logic for deployment restart on slow ephemeral volume PVC creation • Wire up Crunchy PostgreSQL and schema-mode environment configuration in operator CI pipeline • Treat ephemeral volume PVC scheduling as transient in pod failure checks Diagramflowchart LR
A["OCP Operator Deployment"] -->|"Update postgres-cred secret"| B["Schema Mode Setup"]
B -->|"Skip Deployment patching"| C["Operator Reconciliation"]
B -->|"Retry with backoff"| D["Deployment Restart"]
E["Crunchy PostgreSQL"] -->|"Configure external DB"| F["Runtime Namespace"]
F -->|"Set schema-mode env vars"| G["E2E Tests Run"]
D -->|"Apply changes"| G
File Changes1. e2e-tests/playwright/e2e/plugin-division-mode-schema/schema-mode-setup.ts
|
|
@Fortune-Ndlovu: The following test 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. |
|
/test e2e-ocp-helm-nightly |
|
/lgtm |
63fb98c
into
redhat-developer:release-1.10



Summary
Backport of (RHIDP-13221) to
release-1.10.pluginDivisionMode: schemaE2E tests for OCP Operator deploymentsINSTALL_METHOD=operatorand cross-platform base64 encodingCommits cherry-picked
(Skipped commits already present on
release-1.10: stale ConfigMap ref removal, Crunchy PostgreSQL restore.)Test plan
/test e2e-ocp-operator-nightlyon release-1.10plugin-division-mode-schematests run inshowcase-runtimenamespaceMade with Cursor