Skip to content

fix(compatibility): refresh Kyverno v1.19 support - #4140

Open
Talha24Akram wants to merge 2 commits into
pluralsh:masterfrom
Talha24Akram:bounty/kyverno-1.19-compat
Open

fix(compatibility): refresh Kyverno v1.19 support#4140
Talha24Akram wants to merge 2 commits into
pluralsh:masterfrom
Talha24Akram:bounty/kyverno-1.19-compat

Conversation

@Talha24Akram

Copy link
Copy Markdown

Summary

  • update the Kyverno compatibility scraper to the current Releases documentation page
  • add Kyverno v1.19.0 compatibility for Kubernetes v1.33-v1.35 with Helm chart 3.9.0
  • make chart image discovery ignore non-string image schema nodes instead of crashing on rendered CRDs

Sources:

This is a compatibility-table update under the contributor program described in the repository README.

AI assistance disclosure: this contribution was prepared with OpenAI ChatGPT/Codex under the GitHub account owner's authorization. Review follow-up will be handled through this account.

Test Plan

  • live-parsed Kyverno's Releases page and asserted v1.19.0 / Kubernetes 1.33-1.35 / chart 3.9.0
  • ran the actual Kyverno compatibility scraper successfully with KUBE_VERSION=1.36 and Helm
  • asserted the image extractor handles nested image schema objects and still returns real image strings
  • validated static/compatibilities/kyverno.yaml against static/compatibilities/schema.json
  • ran python3 -m py_compile and git diff --check

Copilot AI lite review requested due to automatic review settings September 8, 2026 08:43

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

The Kyverno releases-table detection is more fragile than the parser (colon-sensitive match), and one new error message is misleading, which can cause avoidable scraper failures and harder debugging.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Updates the Kyverno compatibility pipeline so the repo’s generated compatibility tables stay aligned with Kyverno’s current release documentation and Helm chart metadata, while hardening image discovery against non-string schema nodes.

Changes:

  • Updated the Kyverno scraper to parse the current “Releases” documentation page and derive Kubernetes support ranges from the supported-release table.
  • Added Kyverno v1.19.0 compatibility data (Kubernetes v1.33–v1.35, Helm chart v3.9.0) to the static compatibility YAML.
  • Hardened chart image discovery to ignore non-string image nodes and only collect strings that look like real image references.
File summaries
File Description
utils/compatibility/utils.py Prevents crashes during image extraction by only collecting string image values that match an image-like pattern.
utils/compatibility/scrapers/kyverno.py Switches scraping to Kyverno’s releases page and parses the supported-release table to update compatibility info and chart version mapping.
static/compatibilities/kyverno.yaml Adds Kyverno 1.19.0 entry with Kubernetes range, chart version, and discovered images.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread utils/compatibility/scrapers/kyverno.py
Comment thread utils/compatibility/scrapers/kyverno.py
@soffi-ai

soffi-ai Bot commented Sep 8, 2026

Copy link
Copy Markdown
Soffi AI Summary

This PR refreshes the Kyverno compatibility data and fixes a scraper crash, motivated by Kyverno's documentation restructuring and the release of v1.19.0.

Scraper rewrite: The Kyverno compatibility scraper was updated to target the new Releases documentation page instead of the old installation page. The previous scraper looked for a "Compatibility Matrix" heading with a multi-row table; the current page presents a single-release summary table (key/value rows for "Supported Release" and "Kubernetes Versions Supported"), so the parsing logic was rewritten accordingly with _find_release_table and _parse_release_table.

v1.19.0 compatibility entry: The updated scraper produced a new entry for Kyverno v1.19.0, documenting support for Kubernetes 1.33–1.35 with Helm chart 3.9.0 and the full set of container images from that release.

Crash fix in utils.py: The shared image-discovery utility (walk) previously crashed or produced garbage when a rendered CRD schema contained a nested object under the key "image" (e.g., a dict). The guard was tightened to skip non-string values and additionally filter through _looks_like_image before adding an entry to the image set.

Changes

Kyverno v1.19 compatibility update

  • Rewrote the Kyverno compatibility scraper to parse the restructured Releases documentation page (key/value table format instead of the old multi-row matrix), added the Kyverno v1.19.0 entry (Kubernetes 1.33–1.35, Helm chart 3.9.0), and fixed a crash in the shared image-discovery utility that occurred when an image schema key held a dict rather than a string. (632e6ef)

Updated: 2026-09-08 08:45 UTC

Deploy in Soffi

@greptile-apps

greptile-apps Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Updates Kyverno compatibility discovery for the current Releases documentation format.

  • Adds Kyverno 1.19.0 compatibility with Kubernetes 1.33–1.35 and Helm chart 3.9.0.
  • Replaces the former multi-row compatibility-matrix parser with current supported-release table parsing.
  • Safely filters string image references while continuing to traverse non-string image nodes.

Confidence Score: 5/5

The PR appears safe to merge with no actionable correctness, security, or repository-rule violations identified.

The new parser matches the documented release-table structure, compatibility updates preserve older entries, chart and image metadata follow existing contracts, and non-string image nodes remain recursively traversable.

Important Files Changed

Filename Overview
utils/compatibility/scrapers/kyverno.py Parses the current Kyverno supported-release table, resolves its Helm chart, and merges the resulting compatibility row.
utils/compatibility/utils.py Prevents non-string image schema nodes from being inserted while preserving recursive traversal of their contents.
static/compatibilities/kyverno.yaml Adds schema-compatible Kyverno 1.19.0 Kubernetes, chart, and image metadata.

Reviews (1): Last reviewed commit: "fix(compatibility): update Kyverno relea..." | Re-trigger Greptile

@Talha24Akram

Copy link
Copy Markdown
Author

Addressed both Copilot review comments in 1459bc8:

  • release-table detection no longer depends on trailing colons
  • missing-chart error now refers to the Kyverno version

Re-ran live Kyverno parsing, the no-colon fixture, Python compilation, and git diff --check; all pass.

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