feat: add Knative Operator compatibility scraper - #4159
Conversation
Soffi AI SummaryThis PR extends the compatibility catalog by adding Knative Operator as a new tracked add-on. The motivation is to give Plural Console users accurate, automatically maintained Kubernetes compatibility data for all 83 stable Knative Operator Helm chart releases (across 13 application minors, from v1.11 onward). The compatibility policy is derived from Knative's official release schedule and versioning principles: the minimum supported Kubernetes version is anchored to the documented minimum at the time of each Knative minor's release cut, and the range is fixed across patch releases. Edge cases (e.g., Knative 1.18 excluding Kubernetes 1.33, which was released the day after the Knative cut) are explicitly encoded and documented. The implementation follows the repository's existing scraper pattern: a Python scraper fetches the official Knative Operator Helm index, derives per-release Kubernetes compatibility ranges using Knative's release schedule and Kubernetes GA release dates, and feeds results to the shared updater. All required fixture files, offline test coverage (49 tests covering release boundaries, source failures, metadata idempotence), and a policy documentation file are included. The static compatibility YAML and manifest entry are committed so that the data is immediately available to the server without requiring a live scrape. No new runtime dependencies are introduced. ChangesKnative Operator compatibility scraper
Updated: 2026-09-08 11:42 UTC |
Greptile SummaryAdds Knative Operator to the compatibility catalog and provides a deterministic scraper deriving Kubernetes compatibility from the Knative release schedule and Kubernetes GA dates.
Confidence Score: 5/5The PR appears safe to merge; no actionable correctness, security, integration, or repository-rule issue remains. The scraper follows the established runner and updater contracts, validates all external inputs before updating, and the committed compatibility data agrees with the shared reduction semantics.
|
| Filename | Overview |
|---|---|
| utils/compatibility/scrapers/knative-operator.py | Implements validated source retrieval, chart parsing, release-date compatibility derivation, and fail-safe updater integration. |
| static/compatibilities/knative-operator.yaml | Adds Knative Operator metadata and the reduced compatibility transition table generated through the shared updater. |
| utils/compatibility/tests/test_knative_operator.py | Covers schedule, chart, Kubernetes release, ordering, validation, and compatibility-boundary behavior. |
| utils/compatibility/tests/test_knative_recorded_sources.py | Verifies recorded upstream data, expected release coverage, metadata preservation, reduction, and updater idempotence. |
| utils/compatibility/tests/test_knative_scrape.py | Confirms complete validation precedes updates and source failures preserve the existing table. |
| utils/compatibility/knative-operator.md | Documents the compatibility policy, source provenance, scope, refresh procedure, and testing approach. |
Reviews (1): Last reviewed commit: "feat: add Knative Operator compatibility..." | Re-trigger Greptile
michaeljguarino
left a comment
There was a problem hiding this comment.
needs to fix merge conflicts, also some pretty bad ai slop in the code
Adds Knative Operator to the compatibility catalog with an automatic scraper, manifest entry, Helm repository/chart metadata, brand icon, and upstream repository/release links. The scraper processes all 83 stable chart releases currently in the official Operator Helm index; the table uses the shared updater's existing reduction of repeated compatibility ranges.
Compatibility is derived from the Knative release schedule and release principles: start at the documented Kubernetes minimum and include GA minors published by that Knative minor's cut date. Exact Kubernetes
.0release records supply the dates. The range stays fixed across Operator patches. For example, Knative 1.18 excludes Kubernetes 1.33, which was released the following day; Knative 1.23 excludes Kubernetes 1.37 despite its September patch. The policy and its scope for the default Knative stack are documented inutils/compatibility/knative-operator.md.Malformed, conflicting, missing, or unavailable compatibility sources prevent the updater from being called. Recorded fixtures include source provenance. No new runtime dependencies are required.
Test Plan
Local Python 3.14.6, using the compatibility module's existing dependencies:
git diff --checkpassed.Related to #4154.
Checklist
Plural Flow: console