Skip to content

Add NGINX Ingress Controller compatibility#3711

Open
hunterx-code wants to merge 3 commits into
pluralsh:masterfrom
hunterx-code:compat/nginx-ingress-controller
Open

Add NGINX Ingress Controller compatibility#3711
hunterx-code wants to merge 3 commits into
pluralsh:masterfrom
hunterx-code:compat/nginx-ingress-controller

Conversation

@hunterx-code

Copy link
Copy Markdown
Contributor

Summary

  • Add F5 NGINX Ingress Controller to the compatibility matrix.
  • Keep it separate from the existing community ingress-nginx entry.
  • Add a scraper for the official NGINX Ingress Controller Kubernetes and Helm compatibility table.

Sources:

Test Plan

Test environment: not deployed; compatibility data-only change.

  • Ran the scraper against the upstream compatibility table, latest release metadata, and Chart.yaml.
  • Ran python -m py_compile utils/compatibility/scrapers/nginx-ingress-controller.py.
  • Checked manifest, per-app YAML, and aggregate YAML consistency.
  • Ran git diff --check.

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 (required only when changing agent code).

@greptile-apps

greptile-apps Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR introduces F5 NGINX Ingress Controller (distinct from the community ingress-nginx) to the compatibility matrix with 11 versions spanning 3.4.3–5.5.0 and a supporting scraper that parses the upstream Markdown compatibility table.

  • New scraper (nginx-ingress-controller.py): correctly integrates with the shared update_versions_data / reduce_versions pipeline, preserving any existing summaries on re-runs, and resolves Hugo shortcodes ({{< nic-version >}}, {{< nic-helm-version >}}) before parsing rows.
  • Static data (nginx-ingress-controller.yaml, compatibilities.yaml): 11 versions added with correct Kubernetes compatibility ranges, chart versions, and OCI Helm registry URL; manifest.yaml registers the new entry in the right position.

Confidence Score: 5/5

Safe to merge; this is a data-and-scraper addition with no changes to shared infrastructure.

All changes are additive: a new per-app YAML, a single manifest entry, aggregate data, and a new scraper that correctly wires into the existing merge/reduce pipeline. The scraper was manually verified by the author and the static data is consistent across all three files.

No files require special attention.

Important Files Changed

Filename Overview
utils/compatibility/scrapers/nginx-ingress-controller.py New scraper for the F5 NGINX Ingress Controller; correctly wires into the shared update_versions_data / reduce_versions pipeline to preserve existing summaries, but _default_image makes two uncached HTTP requests per table row rather than using the @lru_cache-wrapped fetch_page.
static/compatibilities/nginx-ingress-controller.yaml New per-app compatibility file with 11 versions (3.4.3–5.5.0); icon URL is pinned to the v5.5.0 release tag (pre-existing thread note).
static/compatibilities/manifest.yaml Adds nginx-ingress-controller between ingress-nginx and istio; ordering and formatting are consistent with the rest of the file.
static/compatibilities.yaml Aggregate file updated to include the new nginx-ingress-controller block; data is consistent with the per-app YAML and correctly placed between ingress-nginx and istio.

Reviews (2): Last reviewed commit: "Preserve NGINX Ingress Controller scrape..." | Re-trigger Greptile

Comment thread utils/compatibility/scrapers/nginx-ingress-controller.py
@@ -0,0 +1,83 @@
icon: https://raw.githubusercontent.com/nginx/kubernetes-ingress/v5.5.0/charts/nginx-ingress/chart-icon.png

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.

P2 Icon URL pinned to a specific release tag

icon: https://raw.githubusercontent.com/nginx/kubernetes-ingress/v5.5.0/charts/nginx-ingress/chart-icon.png hard-codes v5.5.0. The scraper only updates versions and does not touch the icon field, so as new releases land the icon will remain pinned to this tag indefinitely. Consider using the main branch path, consistent with how some other per-app YAMLs reference icons.

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!

@hunterx-code

Copy link
Copy Markdown
Contributor Author

@greptileai review

@hunterx-code hunterx-code force-pushed the compat/nginx-ingress-controller branch from 2bf2b3f to efb9df9 Compare June 18, 2026 06:04
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.

1 participant