Skip to content

Add support for native OIDC module Policy for VirtualServer - #10589

Open
AlexFenlon wants to merge 4 commits into
mainfrom
feat/oidc-native-implementation
Open

Add support for native OIDC module Policy for VirtualServer#10589
AlexFenlon wants to merge 4 commits into
mainfrom
feat/oidc-native-implementation

Conversation

@AlexFenlon

@AlexFenlon AlexFenlon commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Proposed changes

This PR adds support for NGINX Plus native OIDC module Policy on VirtualServer.

  • Adds oidcNative spec configuration to Policy CRD types and schema validation
  • Updates NGINX Plus VirtualServer templates to generate native OIDC directives, session stores, and internal proxy locations
  • Adds unit tests
  • Updates CRD documentation for oidcNative

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 targeing the main branch and pulling from my branch from my own fork

Stack created with GitHub Stacks CLIGive Feedback 💬

@github-actions github-actions Bot added enhancement Pull requests for new features/feature enhancements go Pull requests that update Go code labels Aug 7, 2026
@AlexFenlon
AlexFenlon force-pushed the feat/oidc-native-implementation branch from edc383a to b8d92d6 Compare August 7, 2026 13:54
@codecov

codecov Bot commented Aug 7, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 76.21359% with 98 lines in your changes missing coverage. Please review.
✅ Project coverage is 57.81%. Comparing base (a7e0259) to head (77fd977).

Files with missing lines Patch % Lines
internal/k8s/controller.go 14.28% 30 Missing and 6 partials ⚠️
internal/configs/policy.go 86.03% 24 Missing and 7 partials ⚠️
internal/configs/virtualserver.go 57.40% 15 Missing and 8 partials ⚠️
pkg/apis/configuration/validation/policy.go 91.30% 3 Missing and 3 partials ⚠️
internal/configs/parsing_helpers.go 92.00% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #10589      +/-   ##
==========================================
+ Coverage   57.50%   57.81%   +0.31%     
==========================================
  Files         103      103              
  Lines       22857    23236     +379     
==========================================
+ Hits        13143    13433     +290     
- Misses       8915     8984      +69     
- Partials      799      819      +20     

☔ View full report in Codecov by Harness.
📢 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

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Package Report

Details gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx, 1.31.3-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-module-njs, 1.31.3+1.0.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-module-otel, 1.31.3+0.1.2-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-agent, 3.11.3~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx, 1.31.3-1~trixie, arm64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-module-njs, 1.31.3+1.0.0-1~trixie, arm64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-module-otel, 1.31.3+0.1.2-1~trixie, arm64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-agent, 3.11.3~trixie, arm64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus, 37.0.4-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-njs, 37.0+1.0.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-otel, 37.0+0.1.2-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-fips-check, 37.0+0.1-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-agent, 3.11.3~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus, 37.0.4-1~trixie, arm64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-njs, 37.0+1.0.0-1~trixie, arm64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-otel, 37.0+0.1.2-1~trixie, arm64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-fips-check, 37.0+0.1-1~trixie, arm64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-agent, 3.11.3~trixie, arm64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus, 37.0.4-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-njs, 37.0+1.0.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-otel, 37.0+0.1.2-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-fips-check, 37.0+0.1-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-appprotect, 37.0+5.690.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, app-protect, 37.0+5.690.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, app-protect-attack-signatures, 2026.08.07-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, app-protect-threat-campaigns, 2026.08.12-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, app-protect-ip-intelligence, 1.59.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-agent, 2.46.7~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus, 37.0.4-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-njs, 37.0+1.0.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-otel, 37.0+0.1.2-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-fips-check, 37.0+0.1-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-appprotect, 37.0+5.690.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, app-protect-module-plus, 37.0+5.690.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, app-protect-plugin, 6.30.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-agent, 2.46.7~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus, 37.0.4-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-njs, 37.0+1.0.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-otel, 37.0+0.1.2-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-fips-check, 37.0+0.1-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-appprotectdos, 37+4.9.6-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, app-protect-dos, 37+4.9.6-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-agent, 2.46.7~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus, 37.0.4-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-njs, 37.0+1.0.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-otel, 37.0+0.1.2-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-fips-check, 37.0+0.1-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-appprotect, 37.0+5.690.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, app-protect, 37.0+5.690.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, app-protect-ip-intelligence, 1.59.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, app-protect-attack-signatures, 2026.08.07-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, app-protect-threat-campaigns, 2026.08.12-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-plus-module-appprotectdos, 37+4.9.6-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, app-protect-dos, 37+4.9.6-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08, nginx-agent, 2.46.7~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx, 1.31.3-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-module-njs, 1.31.3.1.0.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-module-otel, 1.31.3.0.1.2-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-agent, 3.11.3, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx, 1.31.3-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-module-njs, 1.31.3.1.0.0-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-module-otel, 1.31.3.0.1.2-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-agent, 3.11.3, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-plus, 37.0.4-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-plus-module-njs, 37.0.1.0.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-plus-module-otel, 37.0.0.1.2-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-plus-module-fips-check, 37.0.0.1-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-agent, 3.11.3, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-plus, 37.0.4-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-plus-module-njs, 37.0.1.0.0-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-plus-module-otel, 37.0.0.1.2-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-plus-module-fips-check, 37.0.0.1-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine, nginx-agent, 3.11.3, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus, 37.0.4-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-njs, 37.0.1.0.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-otel, 37.0.0.1.2-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-fips-check, 37.0.0.1-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-agent, 3.11.3, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus, 37.0.4-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-njs, 37.0.1.0.0-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-otel, 37.0.0.1.2-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-fips-check, 37.0.0.1-r1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-agent, 3.11.3, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus, 37.0.4-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-njs, 37.0.1.0.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-otel, 37.0.0.1.2-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-fips-check, 37.0.0.1-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-agent, 2.46.7, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, app-protect-ip-intelligence, 1.59.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-appprotect, 37.0.5.690.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, app-protect, 37.0.5.690.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, app-protect-attack-signatures, 2026.08.07-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, app-protect-threat-campaigns, 2026.08.12-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus, 37.0.4-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-njs, 37.0.1.0.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-otel, 37.0.0.1.2-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-fips-check, 37.0.0.1-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-agent, 2.46.7, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, nginx-plus-module-appprotect, 37.0.5.690.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, app-protect-module-plus, 37.0.5.690.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips, app-protect-plugin, 6.30.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx, 1.31.3-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-module-njs, 1.31.3+1.0.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-module-otel, 1.31.3+0.1.2-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-agent, 3.11.3-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx, 1.31.3-1.el10.ngx, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-module-njs, 1.31.3+1.0.0-1.el10.ngx, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-module-otel, 1.31.3+0.1.2-1.el10.ngx, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-agent, 3.11.3-1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus, 37.0.4-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-njs, 37.0+1.0.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-otel, 37.0+0.1.2-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-fips-check, 37.0+0.1-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-agent, 3.11.3-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus, 37.0.4-1.el10.ngx, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-njs, 37.0+1.0.0-1.el10.ngx, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-otel, 37.0+0.1.2-1.el10.ngx, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-fips-check, 37.0+0.1-1.el10.ngx, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-agent, 3.11.3-1, aarch64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus, 37.0.4-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-njs, 37.0+1.0.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-otel, 37.0+0.1.2-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-fips-check, 37.0+0.1-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-agent, 2.46.7-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-appprotect, 37.0+5.690.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, app-protect, 37.0+5.690.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, app-protect-ip-intelligence, 1.59.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, app-protect-attack-signatures, 2026.08.07-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, app-protect-threat-campaigns, 2026.08.12-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus, 37.0.4-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-njs, 37.0+1.0.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-otel, 37.0+0.1.2-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-fips-check, 37.0+0.1-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-agent, 2.46.7-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-appprotect, 37.0+5.690.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, app-protect-module-plus, 37.0+5.690.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, app-protect-plugin, 6.30.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus, 37.0.4-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-njs, 37.0+1.0.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-otel, 37.0+0.1.2-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-fips-check, 37.0+0.1-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-appprotectdos, 37+4.9.6-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, app-protect-dos, 37+4.9.6-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-agent, 2.46.7-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus, 37.0.4-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-njs, 37.0+1.0.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-otel, 37.0+0.1.2-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-fips-check, 37.0+0.1-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-appprotect, 37.0+5.690.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-plus-module-appprotectdos, 37+4.9.6-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, nginx-agent, 2.46.7-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, app-protect, 37.0+5.690.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, app-protect-ip-intelligence, 1.59.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, app-protect-attack-signatures, 2026.08.07-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, app-protect-threat-campaigns, 2026.08.12-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi, app-protect-dos, 37+4.9.6-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus, 37.0.4-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus-module-njs, 37.0+1.0.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus-module-otel, 37.0+0.1.2-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus-module-fips-check, 37.0+0.1-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus-module-appprotect, 37.0+5.690.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, app-protect, 37.0+5.690.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, app-protect-attack-signatures, 2026.08.07-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, app-protect-threat-campaigns, 2026.08.12-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, app-protect-ip-intelligence, 1.59.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-agent, 3.11.3~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus, 37.0.4-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus-module-njs, 37.0+1.0.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus-module-otel, 37.0+0.1.2-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus-module-fips-check, 37.0+0.1-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus-module-appprotect, 37.0+5.690.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, app-protect, 37.0+5.690.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, app-protect-attack-signatures, 2026.08.07-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, app-protect-threat-campaigns, 2026.08.12-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, app-protect-ip-intelligence, 1.59.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-agent, 3.11.3-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, nginx-plus, 37.0.4-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, nginx-plus-module-njs, 37.0.1.0.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, nginx-plus-module-otel, 37.0.0.1.2-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, nginx-plus-module-fips-check, 37.0.0.1-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, nginx-plus-module-appprotect, 37.0.5.690.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, app-protect, 37.0.5.690.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, app-protect-attack-signatures, 2026.08.07-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, app-protect-threat-campaigns, 2026.08.12-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, app-protect-ip-intelligence, 1.59.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, nginx-agent, 3.11.3, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus, 37.0.4-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus-module-njs, 37.0+1.0.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus-module-otel, 37.0+0.1.2-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus-module-fips-check, 37.0+0.1-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus-module-appprotect, 37.0+5.690.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, app-protect-module-plus, 37.0+5.690.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, app-protect-plugin, 6.30.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-agent, 3.11.3~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus, 37.0.4-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus-module-njs, 37.0+1.0.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus-module-otel, 37.0+0.1.2-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus-module-fips-check, 37.0+0.1-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus-module-appprotect, 37.0+5.690.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, app-protect-module-plus, 37.0+5.690.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, app-protect-plugin, 6.30.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-agent, 3.11.3-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, nginx-plus, 37.0.4-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, nginx-plus-module-njs, 37.0.1.0.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, nginx-plus-module-otel, 37.0.0.1.2-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, nginx-plus-module-fips-check, 37.0.0.1-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, nginx-plus-module-appprotect, 37.0.5.690.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, app-protect-module-plus, 37.0.5.690.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, app-protect-plugin, 6.30.0-r1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-nap-v5/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-alpine-fips-agent, nginx-agent, 3.11.3, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus, 37.0.4-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus-module-njs, 37.0+1.0.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus-module-otel, 37.0+0.1.2-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus-module-fips-check, 37.0+0.1-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus-module-appprotect, 37.0+5.690.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-plus-module-appprotectdos, 37+4.9.6-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, nginx-agent, 3.11.3~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, app-protect, 37.0+5.690.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, app-protect-ip-intelligence, 1.59.0-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, app-protect-attack-signatures, 2026.08.07-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, app-protect-threat-campaigns, 2026.08.12-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-agent, app-protect-dos, 37+4.9.6-1~trixie, amd64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus, 37.0.4-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus-module-njs, 37.0+1.0.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus-module-otel, 37.0+0.1.2-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus-module-fips-check, 37.0+0.1-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus-module-appprotect, 37.0+5.690.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-plus-module-appprotectdos, 37+4.9.6-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, nginx-agent, 3.11.3-1, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, app-protect, 37.0+5.690.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, app-protect-ip-intelligence, 1.59.0-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, app-protect-attack-signatures, 2026.08.07-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, app-protect-threat-campaigns, 2026.08.12-1.el10.ngx, x86_64
gcr.io/f5-gcs-7899-ptg-ingrss-ctlr/dev/nginx-ic-dos-nap/nginx-plus-ingress:t-b1defea2e38679276ca42edb81ebcf08-ubi-agent, app-protect-dos, 37+4.9.6-1.el10.ngx, x86_64

@AlexFenlon
AlexFenlon marked this pull request as ready for review August 7, 2026 14:56
@AlexFenlon
AlexFenlon requested a review from a team as a code owner August 7, 2026 14:56
Copilot AI lite review requested due to automatic review settings August 7, 2026 14:56

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.

Pull request overview

Adds support for NGINX Plus native ngx_http_oidc_module via a new oidcNative Policy, wiring it through CRD types/validation, controller secret tracking, VirtualServer config generation, and NGINX Plus templates (with unit + snapshot coverage).

Changes:

  • Extend Policy API with spec.oidcNative and generated apply/deepcopy/codegen artifacts.
  • Implement validation, secret reference collection, and policy→template rendering for native OIDC providers (including generated callback/proxy/post-logout locations and keyval session stores).
  • Add/refresh unit tests and template snapshots; update CRD docs and CRD YAML outputs.

Reviewed changes

Copilot reviewed 18 out of 22 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
pkg/client/applyconfiguration/utils.go Registers the new OIDCNative kind for server-side apply configurations.
pkg/client/applyconfiguration/configuration/v1/policyspec.go Adds OIDCNative to PolicySpec apply-configuration with builder method.
pkg/client/applyconfiguration/configuration/v1/oidcnative.go Generated apply-configuration type for OIDCNative.
pkg/apis/configuration/validation/policy.go Adds oidcNative gate + validation helpers (including issuer URL validation and dangerous-char checks).
pkg/apis/configuration/validation/policy_test.go Adds positive/negative validation coverage and gate-check tests for oidcNative.
pkg/apis/configuration/v1/zz_generated.deepcopy.go Generated deepcopy support for new OIDCNative type.
pkg/apis/configuration/v1/types.go Defines OIDCNative API type and adds it to PolicySpec.
internal/k8s/controller.go Tracks oidcNative client secret + trusted CA secret references for VS/VSR secret resolution.
internal/k8s/controller_test.go Updates expected validation error strings to include oidcNative.
internal/configs/virtualserver.go Aggregates native OIDC providers, generates session keyval zones, and threads provider names into server/locations.
internal/configs/virtualserver_helpers_test.go Tests provider de-duplication logic (including post-logout location de-dupe).
internal/configs/version2/templates_test.go Adds snapshot tests for NGINX Plus VirtualServer native OIDC rendering and inheritance behavior.
internal/configs/version2/nginx-plus.virtualserver.tmpl Emits oidc_provider blocks, auth_oidc wiring, and OIDC-native helper locations; extends keyval_zone rendering.
internal/configs/version2/http.go Extends template data model with OIDCProviders, per-server/provider name plumbing, and keyval zone fields (sync/timeout).
internal/configs/version2/snapshots/templates_test.snap Updated snapshots covering the new native OIDC template output.
internal/configs/policy.go Implements policy→OIDCProvider generation, secret resolution, and cross-implementation location collision prevention.
internal/configs/policy_test.go Adds policy-generation tests for OIDCNative (success + failure + collision cases).
internal/configs/parsing_helpers.go Refactors custom HTTP error parsing into helpers (unrelated to OIDC).
docs/crd/k8s.nginx.org_policies.md Documents spec.oidcNative fields.
deploy/crds.yaml Generated CRD YAML including the new oidcNative schema.
config/crd/bases/k8s.nginx.org_policies.yaml Generated CRD base YAML including the new oidcNative schema.
.markdownlint-cli2.yaml Updates markdownlint ignore from venv to .venv.
Files not reviewed (4)
  • pkg/apis/configuration/v1/zz_generated.deepcopy.go: Generated file
  • pkg/client/applyconfiguration/configuration/v1/oidcnative.go: Generated file
  • pkg/client/applyconfiguration/configuration/v1/policyspec.go: Generated file
  • pkg/client/applyconfiguration/utils.go: Generated file

Comment thread pkg/apis/configuration/validation/policy.go
Comment thread pkg/apis/configuration/validation/policy.go
Comment thread pkg/apis/configuration/v1/types.go
Comment thread .markdownlint-cli2.yaml
@AlexFenlon
AlexFenlon force-pushed the feat/oidc-native-implementation branch 3 times, most recently from b48bada to d8ae336 Compare August 12, 2026 14:46
@spencerugbo
spencerugbo force-pushed the feat/oidc-native-implementation branch from d8ae336 to 77fd977 Compare August 13, 2026 11:55
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

Status: Todo ☑

Development

Successfully merging this pull request may close these issues.

Enable Native OIDC Authentication for NGINX Ingress Controller using the NGINX Plus module

2 participants