Skip to content
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

Add per-Gateway support to NginxProxy #2990

Open
Tracked by #1508
kate-osborn opened this issue Jan 8, 2025 · 1 comment
Open
Tracked by #1508

Add per-Gateway support to NginxProxy #2990

kate-osborn opened this issue Jan 8, 2025 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@kate-osborn
Copy link
Contributor

kate-osborn commented Jan 8, 2025

The nginx deployment should be configurable via the helm chart and NginxProxy CRD.

  • The NginxProxy CRD needs to be enhanced to work at the Gateway level. The nginx Deployment/Service configuration can then live in the NginxProxy CRD and either be applied globally (GatewayClass) or per Gateway. Certain fields (like a Service's loadBalancerIP) would have to be applied per-Gateway, so a user needs to be aware of where to attach the NginxProxy resource for these types of cases.
  • The helm chart should allow for setting the global NginxProxy configuration, which we'll create in the control plane namespace at installation and link to the GatewayClass (as we do today).
  • For per-Gateway configuration, a user will need to manually create their NginxProxy resources in the proper namespaces and link to their Gateways.
  • A user can update the NginxProxy at runtime to change the Deployment/Service config, and we'll attempt to patch the Deployment and/or Service. If it fails, logs, events, and status are written.
  • If a user creates a Gateway resource that references an NginxProxy configuration that doesn't exist, then we should wait until that resource exists before deploying nginx. Status and logs should be written in this scenario.

A/C:

  • Allow cluster operator to specify NginxProxy in the parameters ref field of the Gateway
  • NginxProxy fields set on the Gateway override NginxProxy fields set on the GatewayClass
@kate-osborn kate-osborn added the enhancement New feature or request label Jan 8, 2025
@kate-osborn kate-osborn self-assigned this Jan 8, 2025
@kate-osborn kate-osborn moved this from 🆕 New to 🏗 In Progress in NGINX Gateway Fabric Jan 8, 2025
@kate-osborn
Copy link
Contributor Author

kate-osborn commented Jan 8, 2025

NginxProxy is currently a cluster-scoped resource since it's referenced from a GatewayClass which is also cluster-scoped. To reference a NginxProxy on a Gateway, it must be namespaced.

Changing NginxProxy from a cluster-scope resource to a namespaced resource will be a breaking change.

Update: CRD scope is immutable, so this change will require a nuke and pave upgrade. This is acceptable since upgrading to 2.0 will also require nuke and pave.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: 🏗 In Progress
Development

No branches or pull requests

1 participant