test(ci): exercise Helm PostgreSQL 15-16-18 upgrade path#5139
test(ci): exercise Helm PostgreSQL 15-16-18 upgrade path#5139zdrapela wants to merge 10 commits into
Conversation
Validate the sclorg-supported two-hop path (POSTGRESQL_UPGRADE=copy) for RHIDP-14594 evidence on e2e-ocp-helm.
|
Skipping CI for Draft Pull Request. |
|
/test e2e-ocp-helm |
Avoid racing Playwright against a recreating postgresql pod after removing POSTGRESQL_UPGRADE. Log server_version for upgrade evidence.
|
/test e2e-ocp-helm |
|
The container image build workflow finished with status: |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5139 +/- ##
==========================================
- Coverage 63.69% 59.96% -3.74%
==========================================
Files 123 111 -12
Lines 2424 2198 -226
Branches 573 545 -28
==========================================
- Hits 1544 1318 -226
Misses 878 878
Partials 2 2
Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
Start from fedora/postgresql-15 (not rhel9 default), require the expected image before Ready, raise upgrade timeouts, enlarge PVC for copy mode, and dump pod logs when a hop stalls.
|
/test e2e-ocp-helm |
Command substitution was swallowing oc describe/logs on hop failure, and psql warnings were being treated as database names during collation refresh.
|
/test e2e-ocp-helm |
fedora/postgresql-18 advertises PREV_VERSION=16 but only ships postgresql-17 binaries, so POSTGRESQL_UPGRADE=copy from 16 never becomes Ready.
|
Root cause of Hop B failure (from gather-extra logs):
/test e2e-ocp-helm |
|
The container image build workflow finished with status: |
|
✅ Evidence (job):
|
Exercise PG15 → tests → PG16 → tests → PG18 → tests, and always persist pod logs plus Playwright output under unique ARTIFACT_DIR subdirs per hop.
|
Updated flow: Playwright after each major (PG15 / PG16 / PG18), with unique /test e2e-ocp-helm |
Multi-phase PG upgrade CI left kubectl redis port-forwards bound on 16379 because stop() only signaled the shell parent. Spawn detached, kill the process group, use direct kubectl args, and fail fast when OVERALL_RESULT is already non-zero after a phase.
|
Fix for multi-phase Playwright: tear down redis port-forward process groups + fail fast when a phase already set /test e2e-ocp-helm |
|
/test e2e-ocp-helm |
|
/test e2e-ocp-helm |
Code Review by Qodo
Context used✅ Compliance rules (platform):
46 rules✅ Skills:
e2e-verify-fix, e2e-diagnose-and-fix✅ Cross-repo context Explored:
repo: redhat-developer/rhdh-chart (sha: e476f298) Not relevant to this PR:
redhat-developer/rhdh-plugins Not relevant to this PR:
redhat-developer/rhdh-operator Not relevant to this PR:
redhat-developer/rhdh-local 1. Hardcoded externalAccess token
|
PR Summary by QodoCI: verify Helm internal PostgreSQL 15→16→18 upgrades with Playwright per hop
AI Description
Diagram
High-Level Assessment
Files changed (10)
|
…grades Capture the Backstage pod UID before each major hop, restart if needed, and wait until the previous UID is gone before Playwright. Seed a unique catalog Component on PG15 and verify it via API + UI after each upgrade.
|
/test e2e-ocp-helm |
In-cluster http://*.svc targets return 201 for location create but never ingest entities under Backstage URL reader / SSRF restrictions. Use a GitHub blob URL at PULL_PULL_SHA instead.
|
/test e2e-ocp-helm |
The Catalog table renders metadata.title ("PG Upgrade Data Proof"), so
exact-match on metadata.name never appears after search.
|
/test e2e-ocp-helm |
|



Summary
rhel9/postgresql-*imagesARTIFACT_DIRsubdirs:showcase-pg15,showcase-pg16,showcase-pg18(Playwright + pod logs + postgres diagnostics; no overwrite)POSTGRESQL_UPGRADE=copy: 15→16→18Companion Fedora PR: #5141
Verified (prior run, single Playwright at end)
15.18→16.14→18.4Test plan
/test e2e-ocp-helmwith Playwright after each majorshowcase-pg15|pg16|pg18