Add Kueue compatibility scraper and chart image regression coverage - #4138
Add Kueue compatibility scraper and chart image regression coverage#4138williamgritti wants to merge 1 commit into
Conversation
Soffi AI SummaryThis PR adds Kueue to the platform's compatibility tracking system, which maps Kubernetes add-ons to their tested Kubernetes versions. Kueue had no prior entry in the compatibility database, so this contribution closes that gap by adding the full pipeline: scraper logic, fixture data, a generated compatibility table (12 representative rows from v0.9.5 through v0.19.3), and a manifest registration entry. The scraper discovers stable chart versions from the official OCI registry ( A pre-existing latent bug in the shared chart image extraction utility was discovered during live Helm templating: CRD schema properties named The PR also introduces a scoped GitHub Actions workflow that runs the 14 offline unit/integration tests (covering both old and new README layouts, tag sorting, source failures, YAML writing/reduction, the CRD image-field crash, and repeatable output) using Python 3.13 and the existing scraper requirements file. ChangesKueue compatibility scraper and coverage
Updated: 2026-09-08 08:26 UTC |
Greptile SummaryThis PR adds Kueue to the compatibility catalog and implements an OCI/tagged-README scraper for its explicitly tested Kubernetes versions. It also hardens Helm image extraction against non-string CRD schema fields and adds focused offline CI coverage.
Confidence Score: 4/5The functional changes appear safe to merge, with two non-blocking CI supply-chain hardening opportunities. The Kueue scraper, generated compatibility data, and image-extraction fix have focused regression coverage and no established correctness failure; remaining comments concern reproducibility and hardening of the new test workflow. Files Needing Attention: .github/workflows/compatibility-scraper-tests.yaml
|
| Filename | Overview |
|---|---|
| utils/compatibility/scrapers/kueue.py | Adds stable chart-tag discovery, tagged README parsing, fail-closed source validation, and compatibility generation for Kueue. |
| utils/compatibility/utils.py | Restricts collected image references to string-valued image fields while continuing traversal through structured values. |
| utils/compatibility/tests/test_kueue.py | Covers tag filtering, both documented README layouts, source failures, repeatable YAML output, and rendered image extraction. |
| utils/compatibility/tests/test_chart_images.py | Adds regression coverage for CRD schema properties and other non-string image fields. |
| static/compatibilities/kueue.yaml | Adds generated Kueue metadata and representative compatibility rows from chart versions 0.9.5 through 0.19.3. |
| .github/workflows/compatibility-scraper-tests.yaml | Adds scoped offline scraper tests with least-privilege permissions, but resolves actions and two installed dependencies mutably. |
Reviews (1): Last reviewed commit: "Add Kueue compatibility scraper and char..." | Re-trigger Greptile
| - uses: actions/checkout@v6 | ||
| - uses: actions/setup-python@v6 |
There was a problem hiding this comment.
The new workflow resolves actions/checkout and actions/setup-python through mutable major-version tags. If either v6 tag is moved after review, pull-request and master jobs will execute different action code than was reviewed. Pin both actions to full commit SHAs so the CI code is immutable.
How this was verified: Both setup steps use mutable @v6 references and execute before the tests under a token limited to read-only repository contents.
| cache: pip | ||
| cache-dependency-path: utils/compatibility/requirements.txt | ||
| - name: Install scraper dependencies | ||
| run: python -m pip install -r utils/compatibility/requirements.txt |
There was a problem hiding this comment.
This new pull-request workflow installs the shared requirements file even though exa-py and openai have no version constraints. Every matching CI run can therefore download and execute dependency versions published after the PR was reviewed. Add exact constraints or install from a lock file to make these test runs reproducible and reduce the dependency supply-chain surface.
How this was verified: The changed install step consumes utils/compatibility/requirements.txt, where exa-py and openai are unconstrained.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
Kueue currently has no compatibility entry. This adds its metadata, manifest registration, a scraper, and a generated table covering published stable Helm charts from 0.9.5 through 0.19.3. The shared reducer retains 12 representative rows.
The scraper discovers stable tags from the official OCI registry, then reads each release's tagged README. Its
kubevalues are the explicitly documented E2E test versions. It does not expand an open-ended installation minimum into assumed compatibility. For example, v0.19.3 records 1.34, 1.35, and 1.36, although its installation minimum is 1.29. Signature, attestation, build-metadata, and prerelease tags are excluded; a missing or changed source fails before writing.Live Helm templating exposed an existing image-extraction crash on CRD schema properties named
image. A one-line type guard handles those objects while preserving actual image strings; regression tests cover this path.Sources:
Related discussion: #4137. Maintainer confirmation is requested for the tested-minor interpretation and coverage before merging.
Test Plan
Checklist
Plural Flow: console
Could maintainers confirm eligibility for the advertised $300 new-scraper contributor reward and whether it can be paid through PayPal? I understand that a reward depends on your review and acceptance. Payment details can be provided privately after confirmation.