Skip to content

Add Kong Ingress Controller compatibility scraper - #4135

Merged
michaeljguarino merged 1 commit into
pluralsh:masterfrom
olety:codex/kong-compatibility-scraper
Sep 8, 2026
Merged

Add Kong Ingress Controller compatibility scraper#4135
michaeljguarino merged 1 commit into
pluralsh:masterfrom
olety:codex/kong-compatibility-scraper

Conversation

@olety

@olety olety commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Adds Kong Ingress Controller to the compatibility catalog, with a scraper, generated table, manifest registration and aggregate data. The table covers the seven controller minor families and Kubernetes versions explicitly listed in Kong's compatibility documentation.

The scraper reads the Kubernetes table from the documentation source. It maps controller versions to the recommended ingress Helm chart by reading the bundled controller image tag and applying parent-chart overrides. Chart appVersion describes Kong Gateway, so it cannot supply this mapping. Downloaded chart archives are checked against the official index digests.

Minor-wide compatibility is represented by .0 boundaries, following the existing CloudNativePG scraper and Plural's version lookup. Floating controller image tags establish a minor family, not an exact patch pin.

Automatic discovery of the standard Kong chart deployments needs separate detector support: their workload labels identify controller and gateway, and their version labels contain the Gateway version. This contribution supplies the catalog data and its updater.

Related to #4129. I'd like to claim the contributor program's new-scraper reward if this is accepted; the payout-method question is in that issue.

Test Plan

Local environment: Python 3.13 and Helm 4.2.4.

  • Eight unit tests pass: Kubernetes-table selection, explicit compatibility pairs, malformed input, chart overrides, stable chart ordering, archive digests, missing mappings and failure before writes.
  • Generated the table against live Kong documentation and chart archives, including Helm image inventories for all seven rows.
  • A second live run produces byte-identical output.
  • All 54 compatibility YAML files pass the repository's Draft-07 schema. Kong's manifest entry, per-app table and aggregate entry agree.
  • git diff --check passes.

Run the focused tests from the repository root:

python -B -m unittest discover -s utils/compatibility/tests -p 'test_kong_ingress_controller.py' -v

Checklist

  • I have added a meaningful title and summary to convey the impact of this PR to a user.
  • I have included upstream documentation confirming the compatibility information.
  • I have added tests to cover my changes.
  • Agent deployment verification: not applicable to this compatibility-data and scraper change.

Plural Flow: console

@soffi-ai

soffi-ai Bot commented Sep 8, 2026

Copy link
Copy Markdown
Soffi AI Summary

This PR adds Kong Ingress Controller to the Plural Console compatibility catalog, enabling the platform to surface version compatibility information between Kong Ingress Controller releases and Kubernetes versions.

The contribution includes:

  • A Python scraper (utils/compatibility/scrapers/kong-ingress-controller.py) that reads Kong's official version-compatibility documentation from GitHub, parses the embedded Kubernetes compatibility tables, resolves controller versions to their corresponding ingress Helm chart versions (with digest verification against the official chart index), and writes structured YAML output.
  • Generated compatibility data (static/compatibilities/kong-ingress-controller.yaml, static/compatibilities.yaml) covering seven Kong Ingress Controller minor families and the Kubernetes versions each supports, following the .0 minor-boundary convention used by other scrapers (e.g., CloudNativePG).
  • Manifest registration (static/compatibilities/manifest.yaml) so the new entry is discovered by the platform's compatibility lookup.
  • Eight unit tests (utils/compatibility/tests/test_kong_ingress_controller.py) covering Kubernetes table parsing, invalid/malformed input rejection, chart archive digest verification, controller tag extraction with parent-chart overrides, stable semantic ordering, and a guard that prevents partial writes on source failures.

The scraper is idempotent (two live runs produce byte-identical output) and consistent with the existing scraper framework.

Changes

Kong Ingress Controller compatibility scraper

  • Adds a Python scraper that reads Kong's official version-compatibility documentation, resolves controller minor versions to ingress Helm chart versions (with SHA-256 digest verification), and writes structured YAML to the compatibility catalog. Includes the generated compatibility table for seven controller minor families, manifest registration, and eight unit tests covering parsing, validation, digest checks, and safe-write guarantees. (184b61d)

Updated: 2026-09-08 06:36 UTC

Deploy in Soffi

@greptile-apps

greptile-apps Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds Kong Ingress Controller to the compatibility catalog and introduces an updater that parses Kong’s Kubernetes compatibility matrix, maps controller families to verified Helm charts, and generates image metadata.

  • Registers the new catalog entry in the compatibility manifest and aggregate data.
  • Represents seven controller minor families using .0 interval boundaries.
  • Verifies downloaded chart archives against the official index digests.
  • Adds focused tests for parsing, chart selection, overrides, digest validation, and failure handling.

Confidence Score: 5/5

The PR appears safe to merge; no actionable correctness, security, or repository-rule issues were identified.

The scraper follows the repository’s import-and-update workflow, validates external chart archives, preserves explicit upstream compatibility relationships, and is supported by focused tests covering its principal failure modes.

Important Files Changed

Filename Overview
utils/compatibility/scrapers/kong-ingress-controller.py Adds the compatibility-matrix parser, digest-verified Helm chart mapping, and catalog update integration.
utils/compatibility/tests/test_kong_ingress_controller.py Covers source-table selection, validation failures, image overrides, semantic chart ordering, digest checks, and write atomicity.
static/compatibilities/kong-ingress-controller.yaml Adds generated compatibility, chart, and image data for seven Kong controller minor families.
static/compatibilities/manifest.yaml Registers the Kong Ingress Controller scraper with the compatibility update workflow.
static/compatibilities.yaml Adds the generated Kong Ingress Controller entry to the aggregate compatibility catalog.

Reviews (1): Last reviewed commit: "Add Kong Ingress Controller compatibilit..." | Re-trigger Greptile

@michaeljguarino
michaeljguarino merged commit 175339a into pluralsh:master Sep 8, 2026
5 checks passed
@olety

olety commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for reviewing and merging this. Could you confirm the $300 new-scraper reward and preferred payout method for this PR? I'll follow the Discord verification step and link my handle here.

@olety

olety commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

My Discord username is arotobo. I posted the reward claim in the Plural contributor-program channel: https://discord.com/channels/880830238723047424/1081350805254316113/1546998682673741844

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