Skip to content

Conversation

@haywoodsh
Copy link
Contributor

@haywoodsh haywoodsh commented Dec 9, 2025

Proposed changes

Add support for the new nginx.org/ssl-redirect annotation to deprecate existing ingress.kubernetes.io/ssl-redirect annotation. closes #5526

The new annotation provides the same SSL redirect functionality with precedence over the legacy annotation when both are present.

  • Add nginx.org/ssl-redirect annotation constant and validation
  • Implement precedence logic favouring new annotation
  • Implement AddedOrUpdatedWithWarning event emission when the deprecated annotation is used

Documentation will be added after #7128 as the directive description will be updated

Checklist

Before creating a PR, run through this checklist and mark each as complete.

  • I have read the CONTRIBUTING doc
  • I have added tests that prove my fix is effective or that my feature works
  • I have checked that all unit tests pass after adding my changes
  • I have updated necessary documentation
  • I have rebased my branch onto main
  • I will ensure my PR is targeting the main branch and pulling from my branch from my own fork

@github-actions github-actions bot added enhancement Pull requests for new features/feature enhancements go Pull requests that update Go code labels Dec 9, 2025
@haywoodsh haywoodsh changed the title feat: Add nginx.org/ssl-redirect annotation support Add nginx.org/ssl-redirect annotation support Dec 9, 2025
@codecov
Copy link

codecov bot commented Dec 9, 2025

Codecov Report

❌ Patch coverage is 62.50000% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 53.78%. Comparing base (915d5e9) to head (910e2d0).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
internal/configs/annotations.go 50.00% 1 Missing and 2 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8656      +/-   ##
==========================================
- Coverage   53.80%   53.78%   -0.03%     
==========================================
  Files          91       91              
  Lines       18557    18564       +7     
==========================================
  Hits         9984     9984              
- Misses       8048     8051       +3     
- Partials      525      529       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 9, 2025

Package Report

gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-976fe3fb555788b2121043c82b767bbd, nginx, 1.29.3-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, nginx-agent, 3.6.0~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-976fe3fb555788b2121043c82b767bbd, nginx, 1.29.3-1~trixie, arm64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, nginx-agent, 3.6.0~trixie, arm64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd, nginx-plus, 36-1~bookworm, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, nginx-agent, 3.6.0~bookworm, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd, nginx-plus, 36-1~bookworm, arm64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, nginx-agent, 3.6.0~bookworm, arm64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd, nginx-plus, 36-1~bookworm, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, app-protect-attack-signatures, 2025.12.07-1~bookworm, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, nginx-agent, 2.44.0~bookworm, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd, nginx-plus, 36-1~bookworm, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, nginx-agent, 2.44.0~bookworm, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd, nginx-plus, 36-1~bookworm, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, nginx-plus, 36-1~bookworm, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, app-protect-attack-signatures, 2025.12.07-1~bookworm, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, 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-976fe3fb555788b2121043c82b767bbd, nginx-agent, 2.44.0~bookworm, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-976fe3fb555788b2121043c82b767bbd-alpine, nginx, 1.29.3-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-alpine, nginx-agent, 3.6.0, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-976fe3fb555788b2121043c82b767bbd-alpine, nginx, 1.29.3-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-alpine, nginx-agent, 3.6.0, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-alpine, nginx-plus, 36-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-alpine, nginx-agent, 3.6.0, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-alpine, nginx-plus, 36-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-alpine, nginx-agent, 3.6.0, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-alpine-fips, nginx-plus, 36-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-alpine-fips, nginx-agent, 3.6.0, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-alpine-fips, nginx-plus, 36-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-alpine-fips, nginx-agent, 3.6.0, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-alpine-fips, nginx-plus, 36-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-alpine-fips, nginx-agent, 2.44.0, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-alpine-fips, app-protect-attack-signatures, 2025.12.07-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-alpine-fips, nginx-agent, 2.44.0, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi, nginx, 1.29.3-1.el9.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi, nginx-agent, 3.6.0-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-976fe3fb555788b2121043c82b767bbd-ubi, nginx, 1.29.3-1.el9.ngx, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi, nginx-agent, 3.6.0-1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-ubi, nginx-plus, 36-1.el9.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi, nginx-agent, 3.6.0-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-ubi, nginx-plus, 36-1.el9.ngx, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi, nginx-agent, 3.6.0-1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi, nginx-agent, 2.44.0-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi, app-protect-attack-signatures, 2025.12.07-1.el9.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi, nginx-agent, 2.44.0-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi8, nginx-agent, 2.44.0-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi8, app-protect-attack-signatures, 2025.12.07-1.el8.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi8, nginx-agent, 2.44.0-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi, nginx-agent, 2.44.0-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi, app-protect-attack-signatures, 2025.12.07-1.el9.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-976fe3fb555788b2121043c82b767bbd-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-976fe3fb555788b2121043c82b767bbd-ubi, app-protect-dos, 36+4.8.3-1.el9.ngx, x86_64

@haywoodsh haywoodsh marked this pull request as ready for review December 10, 2025 17:17
@haywoodsh haywoodsh requested a review from a team as a code owner December 10, 2025 17:17
Copilot AI review requested due to automatic review settings December 10, 2025 17:17
Copy link
Contributor

Copilot AI left a 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 new nginx.org/ssl-redirect annotation to replace the deprecated ingress.kubernetes.io/ssl-redirect annotation. The new annotation provides the same SSL redirect functionality with precedence over the legacy annotation when both are present, and emits warnings when the deprecated annotation is used.

  • Add nginx.org/ssl-redirect annotation constant and validation logic
  • Implement precedence logic where the new annotation takes priority over the deprecated one
  • Add warning emission when deprecated annotation is detected
  • Update tests and documentation to reflect the new annotation support

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
internal/configs/annotations.go Implements the new annotation constant and precedence logic in parseAnnotations, with the new annotation checked first before falling back to the deprecated one
internal/configs/ingress.go Adds warning generation when the deprecated annotation is present
internal/k8s/validation.go Updates validation constants and adds validation rules for both new and deprecated annotations
internal/configs/annotations_test.go Adds comprehensive test cases verifying annotation precedence behavior and default values
internal/configs/ingress_test.go Tests warning generation for deprecated annotation usage
internal/k8s/validation_test.go Validates correct handling of valid and invalid annotation values
internal/configs/configurator_test.go Updates test data to include the new annotation
internal/telemetry/collector_test.go Updates test data to include the new annotation
examples/ingress-resources/mergeable-ingress-types/README.md Documents both annotations with deprecation notice

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

pdabelf5
pdabelf5 previously approved these changes Dec 11, 2025
Copy link
Collaborator

@pdabelf5 pdabelf5 left a comment

Choose a reason for hiding this comment

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

Approved pending copilot change

Co-authored-by: Copilot <[email protected]>
Signed-off-by: Haywood Shannon <[email protected]>
@haywoodsh haywoodsh enabled auto-merge (squash) December 11, 2025 15:58
@haywoodsh haywoodsh merged commit 26e208b into main Dec 11, 2025
241 of 246 checks passed
@haywoodsh haywoodsh deleted the feat/add-nginx-ssl-redirect-annotation branch December 11, 2025 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Pull requests for new features/feature enhancements go Pull requests that update Go code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Deprecate SSL Redirect Annotation, ingress.kubernetes.io/ssl-redirect, replacing it with nginx.org/ssl-redirect

4 participants