Add Crunchy Postgres and OpenEBS LocalPV compatibility scrapers - #4146
Add Crunchy Postgres and OpenEBS LocalPV compatibility scrapers#4146uyivzola wants to merge 2 commits into
Conversation
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Soffi AI SummaryThis PR extends the compatibility-matrix tooling to cover two new add-ons — Crunchy Postgres Operator and OpenEBS Dynamic LocalPV Provisioner — which previously had no entries in the Console's static compatibility data. Crunchy Postgres Operator scraper ( OpenEBS LocalPV Provisioner scraper ( Both scrapers follow the existing repository conventions (range direction, deduplication, update-only-on-success guards) and are accompanied by:
ChangesCrunchy Postgres and OpenEBS LocalPV compatibility scrapers
Updated: 2026-09-08 09:45 UTC |
Greptile SummaryThis PR adds compatibility metadata, generated data, source scrapers, fixtures, and offline tests for Crunchy Postgres Operator and OpenEBS LocalPV.
Confidence Score: 4/5The PR is not safe to merge until Crunchy entries provide usable chart versions, because release polling for the newly registered add-on currently always fails. OpenEBS generation is consistent with the repository pipeline, but all Crunchy rows are filtered out by the existing add-on poller due to their missing chart versions; the Crunchy parser also has a non-blocking first-match robustness gap. Files Needing Attention: utils/compatibility/scrapers/crunchy-postgres-operator.py, static/compatibilities/crunchy-postgres-operator.yaml
|
| Filename | Overview |
|---|---|
| utils/compatibility/scrapers/crunchy-postgres-operator.py | Adds bounded HTML-matrix parsing, but publishes no chart versions and stops at the first matching table even when empty. |
| utils/compatibility/scrapers/openebs-localpv-provisioner.py | Safely joins documented compatibility families to stable, nondeprecated Helm-index releases. |
| static/compatibilities/crunchy-postgres-operator.yaml | Adds the Crunchy compatibility matrix, with every row missing the chart version required by add-on polling. |
| static/compatibilities/openebs-localpv-provisioner.yaml | Adds reduced OpenEBS compatibility output with concrete application and chart versions. |
| utils/compatibility/tests/test_crunchy_postgres_operator.py | Provides broad parser and failure-preservation coverage but misses multiple matching tables with an empty first match. |
| utils/compatibility/tests/test_openebs_localpv_provisioner.py | Covers source selection, range parsing, stable release filtering, version distinction, and failed-update behavior. |
Reviews (1): Last reviewed commit: "Add Crunchy Postgres and OpenEBS compati..." | Re-trigger Greptile
| # The source describes entire minor series, not particular patches. | ||
| # Represent their lower bound as .0, following repository convention. | ||
| # Do not infer an OCI chart version from a wildcard release series. | ||
| version = f"{int(match[1])}.{int(match[2])}.0" |
There was a problem hiding this comment.
Missing Crunchy chart versions
Every generated Crunchy compatibility row omits chart_version. Add-on polling discards rows without that field before selecting a release, so any release observer configured for crunchy-postgres-operator receives an empty version list and returns could not process cncf addon crunchy-postgres-operator. Resolve the wildcard families to actual OCI chart versions before publishing this add-on.
There was a problem hiding this comment.
Addressed in 49c462d. The scraper now discovers the public OCI tags, then verifies the Helm manifest and config name/version/appVersion before attaching chart_version. Seven series have verified charts (5.3.0–5.8.0 and 6.0.0); the five older series absent from the public registry remain compatibility-only. All seven charts were rendered with Helm, and the updated offline suite passes 27 tests.
| return sorted( | ||
| versions.values(), | ||
| key=lambda entry: tuple(map(int, entry["version"].split("."))), | ||
| reverse=True, | ||
| ) |
There was a problem hiding this comment.
parse_page returns after the first table with matching headers, even when that table has no rows. If the upstream page places an empty matching matrix before the populated one, the scraper ignores the valid data and leaves the checked-in compatibility file stale. Continue searching when a matching table produces no versions, and cover this case with a test.
| return sorted( | |
| versions.values(), | |
| key=lambda entry: tuple(map(int, entry["version"].split("."))), | |
| reverse=True, | |
| ) | |
| if versions: | |
| return sorted( | |
| versions.values(), | |
| key=lambda entry: tuple(map(int, entry["version"].split("."))), | |
| reverse=True, | |
| ) |
There was a problem hiding this comment.
Addressed in 49c462d. parse_page now continues past an empty table with matching headers, and a regression test places that empty table before the populated matrix. The updated offline suite passes all 27 tests.
Plural currently has no compatibility entries for Crunchy Postgres Operator or
OpenEBS Dynamic LocalPV Provisioner. This adds both scrapers, source-derived
tables, chart and project metadata, manifest entries, and aggregate data.
Crunchy reads the vendor's explicit support matrix, including older supported
series. Wildcard minor series are represented by their
.0lower bound, matchingthe existing repository convention; this does not identify the latest patch.
Finite Kubernetes ranges are preserved. Its official OCI Helm repository is
included. The scraper reads its public OCI tags and verifies the Helm config's
name, version and appVersion before attaching each exact boundary chart version.
Seven published charts are verified (5.3.0 through 5.8.0 and 6.0.0). Five older
series have no public chart and retain compatibility-only rows. Registry discovery
or advertised-chart verification failures stop the update before writing.
OpenEBS reads its official release-family support matrix and joins it to stable
application versions in the standalone LocalPV Helm index. It excludes
HEAD,prereleases, deprecated charts, and undocumented release families. The documented
>=1.23range is expanded only through the repository'sKUBE_VERSION(1.36 atgeneration). These are upstream-declared compatibilities, not claims that every
Kubernetes version was deployed in this test environment.
Sources:
Test Plan
From
utils/compatibility:All 27 offline tests pass. Tests cover source table selection, unsupported and
malformed ranges, stable release selection, distinct chart/application versions,
OCI chart identity checks, safe pagination, and avoiding writes when source parsing
or registry verification fails. Live generation succeeded for both
scrapers. All seven verified Crunchy charts and both OpenEBS charts rendered
successfully using Helm 4.2.4. Per-app and aggregate
JSON schema validation passed; prior aggregate entries were compared and remain
unchanged.
git diff --checkpassed.Implementation was prepared with AI assistance and reviewed and tested. This
submission targets the published contributor-program tier for two new scrapers
($300 each), subject to maintainer review, merge, and reward confirmation. No
reward is assumed approved by submitting the code.
Checklist
Plural Flow: console