Skip to content

feat: add Knative Operator compatibility scraper - #4159

Open
Mateus-Reis wants to merge 1 commit into
pluralsh:masterfrom
Mateus-Reis:codex/knative-operator-compatibility
Open

feat: add Knative Operator compatibility scraper#4159
Mateus-Reis wants to merge 1 commit into
pluralsh:masterfrom
Mateus-Reis:codex/knative-operator-compatibility

Conversation

@Mateus-Reis

Copy link
Copy Markdown

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 .0 release 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 in utils/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:

  • 49 offline tests passed, including release boundaries, source failures, and the actual shared updater's metadata preservation and idempotence with Helm and summaries isolated.
  • Live source retrieval produced the expected 83 stable releases across 13 application minors.
  • All 54 compatibility YAML files passed the repository's JSON schema, including the manifest and aggregate. git diff --check passed.

Related to #4154.

Checklist

  • I have added a meaningful title and summary to convey the impact of this PR to a user.
  • If required, I have updated the Plural documentation accordingly.
  • I have added tests to cover my changes.
  • I have deployed the agent to a test environment and verified that it works as expected (not applicable: this PR changes the compatibility scraper and data, not agent code).

Plural Flow: console

@soffi-ai

soffi-ai Bot commented Sep 8, 2026

Copy link
Copy Markdown
Soffi AI Summary

This 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.

Changes

Knative Operator compatibility scraper

  • Adds Knative Operator to the compatibility catalog. Includes a Python scraper that processes all 83 stable Helm chart releases from the official Knative Operator index, derives per-release Kubernetes compatibility ranges from the Knative release schedule and GA Kubernetes release dates, and feeds results to the shared updater. Ships with offline test fixtures, 49 unit tests covering release boundaries and source-failure paths, a policy documentation file, the pre-generated static compatibility YAML, and a manifest entry — with no new runtime dependencies. (e8d6ada)

Updated: 2026-09-08 11:42 UTC

Deploy in Soffi

@greptile-apps

greptile-apps Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Adds Knative Operator to the compatibility catalog and provides a deterministic scraper deriving Kubernetes compatibility from the Knative release schedule and Kubernetes GA dates.

  • Registers Knative Operator metadata, Helm chart information, upstream links, and catalog data.
  • Validates schedule, Helm index, and Kubernetes release inputs before invoking the shared updater.
  • Adds recorded source fixtures, provenance metadata, policy documentation, and offline tests covering parsing, release boundaries, failure handling, reduction, and idempotence.

Confidence Score: 5/5

The 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.

Important Files Changed

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 michaeljguarino left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

needs to fix merge conflicts, also some pretty bad ai slop in the code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants