Skip to content

Document Opaque secret support in NGINX Ingress Controller - #2305

Closed
promptless[bot] wants to merge 1 commit into
mainfrom
promptless/nic-opaque-secrets
Closed

promptless[bot] wants to merge 1 commit into
mainfrom
promptless/nic-opaque-secrets

Conversation

@promptless

@promptless promptless Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Proposed changes

Documents F5 NGINX Ingress Controller's new type-agnostic secret validation, from source PR nginx/kubernetes-ingress#10935 ("Update examples to use opaque secrets") and its feature PR nginx/kubernetes-ingress#10816 ("Add opaque secret support"). This behavior is unreleased: both source PRs are open against a feature branch (~v5.7.0). Please hold or retarget this PR until the feature ships, and replace the <VERSION> placeholder with the confirmed release.

From that release, NGINX Ingress Controller validates a referenced Kubernetes Secret by its data keys and role rather than by the Secret type field. A standard Opaque secret carrying the required keys is accepted anywhere a secret is referenced, and existing nginx.org/*, nginx.com/*, and kubernetes.io/tls typed secrets keep working unchanged and are not deprecated. This lets users reuse secrets that cert-manager, External Secrets Operator, a GitOps pipeline, or Vault already produce, without converting them to NGINX-specific types (originating request: nginx/kubernetes-ingress#10639).

What changed:

  • Policy reference: reframed the APIKey, BasicAuth, JWT (and its JWKS CA), IngressMTLS, EgressMTLS, ExternalAuth, OIDC, OIDCNative, and WAF secret fields to accept a standard Opaque secret (shown as primary) or the existing typed secret, keyed on the required data key(s). Replaced the "must be of type ... otherwise rejected" wording with data-key-based validation, and added one shared note explaining the reject-and-fix behavior. The APIKey, IngressMTLS, and CRL YAML examples now lead with type: Opaque.
  • WAF bundle sources, NGINX Plus license secret, management ConfigMap, and Helm and install guides: the same Opaque-primary, key-based framing; the kubectl create secret commands drop the --type flag.
  • Architecture design page: a minor accuracy touch that describes secrets by the data keys they carry.
  • Standard kubernetes.io/tls secrets were intentionally kept on their standard type.

Notes for review:

  • The docs use a literal <VERSION> placeholder for the introducing release. Please confirm and replace it.
  • The source change looks release-note worthy. The changelog and release-notes pages were left untouched.

Checklist

Before sharing this pull request, I completed the following checklist:

Footnotes

  1. Potentially sensitive information includes personally identify information (PII), authentication credentials, and live URLs. Refer to the style guide for guidance about placeholder content.

Document that NGINX Ingress Controller now validates referenced
Kubernetes Secrets by their data keys and role instead of by the
Secret type field, so a standard Opaque secret with the required
keys is accepted for API-key, basic-auth, JWT/JWK, OIDC, CA/mTLS,
WAF-bundle, and NGINX Plus license use cases. Existing nginx.org/*,
nginx.com/*, and kubernetes.io/tls typed secrets keep working and
are not deprecated.

Reframe each policy secret field in the Policy reference to accept
an Opaque or typed secret keyed on its required data key(s), add a
shared explanatory note, and apply the same key-based framing to the
WAF bundle sources, license secret, management ConfigMap, and Helm
and install guides. Keep standard kubernetes.io/tls secrets on their
standard type. Minor accuracy touch to the architecture design page.

Documents source PRs nginx/kubernetes-ingress#10935 and #10816.
Unreleased: version left as a <VERSION> placeholder pending
confirmation.
@promptless
promptless Bot requested a review from a team as a code owner September 22, 2026 17:08
@github-actions github-actions Bot added documentation Improvements or additions to documentation product/nic Issues related to NGINX Ingress Controller labels Sep 22, 2026
Comment thread content/nic/configuration/policy-resource/policy-reference.md
Comment thread content/nic/configuration/policy-resource/policy-reference.md
Comment thread content/nic/configuration/policy-resource/policy-reference.md
Comment thread content/nic/configuration/policy-resource/policy-reference.md
Comment thread content/nic/configuration/policy-resource/policy-reference.md
Comment thread content/nic/configuration/policy-resource/policy-reference.md
Comment thread content/nic/configuration/policy-resource/policy-reference.md
Comment thread content/nic/configuration/policy-resource/policy-reference.md
Comment thread content/nic/configuration/policy-resource/policy-reference.md
Comment thread content/nic/integrations/app-protect-waf-v5/bundle-sources.md
Comment thread content/nic/integrations/app-protect-waf-v5/bundle-sources.md
Comment thread content/nic/integrations/app-protect-waf-v5/bundle-sources.md
Comment thread content/nic/install/license-secret.md
Comment thread content/nic/install/license-secret.md
Comment thread content/nic/overview/design.md
Comment thread content/nic/overview/design.md
Comment thread content/nic/install/helm/parameters.md
Comment thread content/nic/install/helm/parameters.md
Comment thread content/nic/install/helm/plus.md
@github-actions

Copy link
Copy Markdown

Deploy Preview will be available once build job completes!

Name Link
😎 Deploy Preview https://frontdoor-test-docs.nginx.com/previews/docs/2305/

@vepatel

vepatel commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

target nic-release-5.7, not main

Comment thread content/nic/install/plm-installation.md
Comment thread content/nic/install/waf-helm.md
Comment thread content/nic/integrations/app-protect-waf-v5/bundle-sources.md
Comment thread content/nic/integrations/app-protect-waf-v5/bundle-sources.md
Comment thread content/nic/configuration/policy-resource/policy-reference.md
@promptless

promptless Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor Author

In reply to this discussion

Thanks for flagging the base branch — you're right that this documents unreleased ~v5.7 behavior, so it should target nic-release-5.7 rather than main. I'm retargeting the PR now and will confirm here once it's updated.

@promptless

promptless Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor Author

In reply to this discussion

Blocked — one thing needed from you

nic-release-5.7 exists, so retargeting is the right call. But this PR's branch was cut from main, which currently sits 26 commits ahead of nic-release-5.7. Flipping the base alone would pull about 18 unrelated files from those commits into the diff. The clean fix is to rebase the single opaque-secrets commit onto nic-release-5.7 (I verified it applies cleanly and yields exactly the intended 9-file diff), but that needs a non-fast-forward push to the promptless/nic-opaque-secrets branch, which the repository's pre-receive hook currently declines.

Need: Tell me which you'd prefer: allow a force-push on the promptless/* suggestion branch so I can rebase and retarget in place, or open a fresh PR from a new branch off nic-release-5.7 (same change) and close #2305.
Next: Reply here with your choice and I'll apply it and confirm. Until then the PR stays on main, unchanged.

@vepatel

vepatel commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

close this PR and create a new one from nic-release-5.7 as base
and create one comment with all aggregate citations

@promptless

promptless Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor Author

In reply to this discussion

Got it — I'll close this PR and open a new one for the same Opaque secret changes with nic-release-5.7 as the base branch. I'll reply here with the new PR link once it's up.

@promptless

promptless Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor Author

Closing per review feedback ("close this PR and create a new one from nic-release-5.7 as base").

Replaced by #2307, which is based on nic-release-5.7 and carries the same NGINX Ingress Controller Opaque-secret documentation change (the commit was rebased onto nic-release-5.7, so the new PR diff is limited to the nine intended files).

@promptless promptless Bot closed this Sep 23, 2026
@promptless

promptless Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor Author

In reply to this discussion

Done — I closed this PR and opened #2307 in its place, based on nic-release-5.7 with the same nine-file Opaque-secret documentation change. The commit was rebased onto the release branch, so #2307's diff is limited to those intended files.

One heads-up: the description still notes the behavior as unreleased (asking reviewers to hold or retarget until it ships) and carries a <VERSION> placeholder. Now that it targets nic-release-5.7, you may want that note and the placeholder resolved — let me know and I'll follow up.

Docs PR: #2307

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation product/nic Issues related to NGINX Ingress Controller

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant