-
Notifications
You must be signed in to change notification settings - Fork 2k
Add nginx.org/app-root annotation support
#8720
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds support for the nginx.org/app-root annotation, which enables automatic redirection from the root path (/) to a user-defined path within an Ingress resource. When configured, requests to the root URL return a 302 redirect to the specified application path.
Key Changes:
- Implementation of annotation parsing, validation, and NGINX template rendering for
nginx.org/app-root - Comprehensive validation rules ensuring paths start with
/, don't end with/, aren't the root path itself, and contain only valid characters - Test coverage for validation, configuration generation, and telemetry collection
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| internal/configs/annotations.go | Parses the nginx.org/app-root annotation from Ingress resources |
| internal/configs/config_params.go | Adds AppRoot field to ConfigParams struct |
| internal/configs/ingress.go | Propagates AppRoot value to server configuration |
| internal/configs/version1/config.go | Adds AppRoot field to Server struct |
| internal/configs/version1/nginx.ingress.tmpl | Implements NGINX redirect logic for app-root |
| internal/configs/version1/nginx-plus.ingress.tmpl | Implements NGINX redirect logic for NGINX Plus |
| internal/configs/ingress_test.go | Tests configuration generation with app-root annotation |
| internal/k8s/validation.go | Implements validation logic for app-root annotation values |
| internal/k8s/validation_test.go | Validates various app-root annotation scenarios |
| internal/telemetry/collector_test.go | Ensures app-root annotation is collected in telemetry |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: AlexFenlon <a.fenlon@f5.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8720 +/- ##
==========================================
+ Coverage 53.81% 53.83% +0.01%
==========================================
Files 91 91
Lines 18564 18584 +20
==========================================
+ Hits 9990 10004 +14
- Misses 8047 8051 +4
- Partials 527 529 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Package ReportDetailsgcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx, 1.29.3-1~trixie, amd64gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-module-njs, 1.29.3+0.9.4-1~trixie, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-module-otel, 1.29.3+0.1.2-1~trixie, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-agent, 3.6.0~trixie, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx, 1.29.3-1~trixie, arm64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-module-njs, 1.29.3+0.9.4-1~trixie, arm64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-module-otel, 1.29.3+0.1.2-1~trixie, arm64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-agent, 3.6.0~trixie, arm64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus, 36-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-njs, 36+0.9.4-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-otel, 36+0.1.2-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-fips-check, 36+0.1-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-agent, 3.6.0~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus, 36-1~bookworm, arm64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-njs, 36+0.9.4-1~bookworm, arm64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-otel, 36+0.1.2-1~bookworm, arm64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-fips-check, 36+0.1-1~bookworm, arm64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-agent, 3.6.0~bookworm, arm64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus, 36-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-njs, 36+0.9.4-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-otel, 36+0.1.2-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-fips-check, 36+0.1-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-appprotect, 36+5.550.0-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, app-protect, 36+5.550.0-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, app-protect-attack-signatures, 2025.12.11-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, app-protect-threat-campaigns, 2025.12.09-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-agent, 2.45.0~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus, 36-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-njs, 36+0.9.4-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-otel, 36+0.1.2-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-fips-check, 36+0.1-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-appprotect, 36+5.550.0-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, app-protect-module-plus, 36+5.550.0-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, app-protect-plugin, 6.25.0-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-agent, 2.45.0~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus, 36-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-njs, 36+0.9.4-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-otel, 36+0.1.2-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-fips-check, 36+0.1-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-appprotectdos, 36+4.8.3-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, app-protect-dos, 36+4.8.3-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus, 36-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-njs, 36+0.9.4-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-otel, 36+0.1.2-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-fips-check, 36+0.1-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-appprotect, 36+5.550.0-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, app-protect, 36+5.550.0-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, app-protect-attack-signatures, 2025.12.11-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, app-protect-threat-campaigns, 2025.12.09-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-plus-module-appprotectdos, 36+4.8.3-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, app-protect-dos, 36+4.8.3-1~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43, nginx-agent, 2.45.0~bookworm, amd64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx, 1.29.3-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-module-njs, 1.29.3.0.9.4-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-module-otel, 1.29.3.0.1.2-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-agent, 3.6.0, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx, 1.29.3-r1, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-module-njs, 1.29.3.0.9.4-r1, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-module-otel, 1.29.3.0.1.2-r1, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-agent, 3.6.0, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-plus, 36-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-plus-module-njs, 36.0.9.4-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-plus-module-otel, 36.0.1.2-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-plus-module-fips-check, 36.0.1-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-agent, 3.6.0, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-plus, 36-r1, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-plus-module-njs, 36.0.9.4-r1, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-plus-module-otel, 36.0.1.2-r1, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-plus-module-fips-check, 36.0.1-r1, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine, nginx-agent, 3.6.0, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus, 36-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-njs, 36.0.9.4-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-otel, 36.0.1.2-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-fips-check, 36.0.1-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-agent, 3.6.0, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus, 36-r1, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-njs, 36.0.9.4-r1, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-otel, 36.0.1.2-r1, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-fips-check, 36.0.1-r1, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-agent, 3.6.0, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus, 36-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-njs, 36.0.9.4-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-otel, 36.0.1.2-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-fips-check, 36.0.1-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-agent, 2.45.0, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-appprotect, 36.5.550.0-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, app-protect, 36.5.550.0-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, app-protect-attack-signatures, 2025.12.11-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, app-protect-threat-campaigns, 2025.12.09-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus, 36-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-njs, 36.0.9.4-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-otel, 36.0.1.2-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-fips-check, 36.0.1-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-agent, 2.45.0, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, nginx-plus-module-appprotect, 36.5.550.0-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, app-protect-module-plus, 36.5.550.0-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-alpine-fips, app-protect-plugin, 6.25.0-r1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx, 1.29.3-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-module-njs, 1.29.3+0.9.4-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-module-otel, 1.29.3+0.1.2-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-agent, 3.6.0-1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx, 1.29.3-1.el9.ngx, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-module-njs, 1.29.3+0.9.4-1.el9.ngx, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-module-otel, 1.29.3+0.1.2-1.el9.ngx, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-agent, 3.6.0-1, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus, 36-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-njs, 36+0.9.4-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-otel, 36+0.1.2-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-fips-check, 36+0.1-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-agent, 3.6.0-1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus, 36-1.el9.ngx, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-njs, 36+0.9.4-1.el9.ngx, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-otel, 36+0.1.2-1.el9.ngx, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-fips-check, 36+0.1-1.el9.ngx, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-agent, 3.6.0-1, aarch64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus, 36-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-njs, 36+0.9.4-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-otel, 36+0.1.2-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-fips-check, 36+0.1-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-agent, 2.45.0-1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-appprotect, 36+5.550.0-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, app-protect, 36+5.550.0-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, app-protect-attack-signatures, 2025.12.11-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, app-protect-threat-campaigns, 2025.12.09-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus, 36-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-njs, 36+0.9.4-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-otel, 36+0.1.2-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-fips-check, 36+0.1-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-agent, 2.45.0-1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-appprotect, 36+5.550.0-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, app-protect-module-plus, 36+5.550.0-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, app-protect-plugin, 6.25.0-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, nginx-plus, 36-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, nginx-plus-module-njs, 36+0.9.4-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, nginx-plus-module-otel, 36+0.1.2-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, nginx-plus-module-fips-check, 36+0.1-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, nginx-agent, 2.45.0-1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, nginx-plus-module-appprotect, 36+5.550.0-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, app-protect, 36+5.550.0-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, app-protect-attack-signatures, 2025.12.11-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, app-protect-threat-campaigns, 2025.12.09-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, nginx-plus, 36-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, nginx-plus-module-njs, 36+0.9.4-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, nginx-plus-module-otel, 36+0.1.2-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, nginx-plus-module-fips-check, 36+0.1-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, nginx-agent, 2.45.0-1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, nginx-plus-module-appprotect, 36+5.550.0-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, app-protect-module-plus, 36+5.550.0-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi8, app-protect-plugin, 6.25.0-1.el8.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus, 36-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-njs, 36+0.9.4-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-otel, 36+0.1.2-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-fips-check, 36+0.1-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-appprotectdos, 36+4.8.3-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, app-protect-dos, 36+4.8.3-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus, 36-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-njs, 36+0.9.4-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-otel, 36+0.1.2-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-fips-check, 36+0.1-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-appprotect, 36+5.550.0-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-plus-module-appprotectdos, 36+4.8.3-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, nginx-agent, 2.45.0-1, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, app-protect, 36+5.550.0-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, app-protect-attack-signatures, 2025.12.11-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, app-protect-threat-campaigns, 2025.12.09-1.el9.ngx, x86_64 gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-09b55f8de0e5a663509d8fcba29d5f43-ubi, app-protect-dos, 36+4.8.3-1.el9.ngx, x86_64 |
Proposed changes
nginx.org/app-rootIngress annotationeg.
set annotation
curl root application eg. cafe.example.com/
going to the same path in a browser redirects you to the /coffee path
Untitled.mov
Checklist
Before creating a PR, run through this checklist and mark each as complete.