You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CP/DP Split: Support configuring NodePorts (#3343)
Problem: Now that the control plane provisions the NGINX Service, users can't set specific NodePorts values.
Solution: Allow users to specify NodePorts in the helm chart (globally) and in the NginxProxy resource.
| `certGenerator.serverTLSSecretName` | The name of the Secret containing TLS CA, certificate, and key for the NGINX Gateway Fabric control plane to securely communicate with the NGINX Agent. Must exist in the same namespace that the NGINX Gateway Fabric control plane is running in (default namespace: nginx-gateway). | string | `"server-tls"` |
260
260
| `clusterDomain` | The DNS cluster domain of your Kubernetes cluster. | string | `"cluster.local"` |
261
-
| `nginx` | The nginx section contains the configuration for all NGINX data plane deployments installed by the NGINX Gateway Fabric control plane. | object | `{"config":{},"container":{},"debug":false,"image":{"pullPolicy":"Always","repository":"ghcr.io/nginx/nginx-gateway-fabric/nginx","tag":"edge"},"imagePullSecret":"","imagePullSecrets":[],"kind":"deployment","plus":false,"pod":{},"replicas":1,"service":{"externalTrafficPolicy":"Local","type":"LoadBalancer"},"usage":{"caSecretName":"","clientSSLSecretName":"","endpoint":"","resolver":"","secretName":"nplus-license","skipVerify":false}}` |
262
-
| `nginx.config` | The configuration for the data plane that is contained in the NginxProxy resource. | object | `{}` |
263
-
| `nginx.container` | The container configuration for the NGINX container. | object | `{}` |
261
+
| `nginx` | The nginx section contains the configuration for all NGINX data plane deployments installed by the NGINX Gateway Fabric control plane. | object | `{"config":{},"container":{},"debug":false,"image":{"pullPolicy":"Always","repository":"ghcr.io/nginx/nginx-gateway-fabric/nginx","tag":"edge"},"imagePullSecret":"","imagePullSecrets":[],"kind":"deployment","plus":false,"pod":{},"replicas":1,"service":{"annotations":{},"externalTrafficPolicy":"Local","loadBalancerClass":"","loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":[],"type":"LoadBalancer"},"usage":{"caSecretName":"","clientSSLSecretName":"","endpoint":"","resolver":"","secretName":"nplus-license","skipVerify":false}}` |
262
+
| `nginx.config` | The configuration for the data plane that is contained in the NginxProxy resource. This is applied globally to all Gateways managed by this instance of NGINX Gateway Fabric. | object | `{}` |
263
+
| `nginx.container` | The container configuration for the NGINX container. This is applied globally to all Gateways managed by this instance of NGINX Gateway Fabric. | object | `{}` |
264
264
| `nginx.debug` | Enable debugging for NGINX. Uses the nginx-debug binary. The NGINX error log level should be set to debug in the NginxProxy resource. | bool | `false` |
265
265
| `nginx.image.repository` | The NGINX image to use. | string | `"ghcr.io/nginx/nginx-gateway-fabric/nginx"` |
266
266
| `nginx.imagePullSecret` | The name of the secret containing docker registry credentials. Secret must exist in the same namespace as the helm release. The control plane will copy this secret into any namespace where NGINX is deployed. | string | `""` |
267
267
| `nginx.imagePullSecrets` | A list of secret names containing docker registry credentials. Secrets must exist in the same namespace as the helm release. The control plane will copy these secrets into any namespace where NGINX is deployed. | list | `[]` |
268
268
| `nginx.kind` | The kind of NGINX deployment. | string | `"deployment"` |
269
269
| `nginx.plus` | Is NGINX Plus image being used. | bool | `false` |
270
-
| `nginx.pod` | The pod configuration for the NGINX data plane pod. | object | `{}` |
270
+
| `nginx.pod` | The pod configuration for the NGINX data plane pod. This is applied globally to all Gateways managed by this instance of NGINX Gateway Fabric. | object | `{}` |
271
271
| `nginx.replicas` | The number of replicas of the NGINX Deployment. | int | `1` |
272
-
| `nginx.service` | The service configuration for the NGINX data plane. | object | `{"externalTrafficPolicy":"Local","type":"LoadBalancer"}` |
272
+
| `nginx.service` | The service configuration for the NGINX data plane. This is applied globally to all Gateways managed by this instance of NGINX Gateway Fabric. | object | `{"annotations":{},"externalTrafficPolicy":"Local","loadBalancerClass":"","loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":[],"type":"LoadBalancer"}` |
273
+
| `nginx.service.annotations` | The annotations of the NGINX data plane service. | object | `{}` |
273
274
| `nginx.service.externalTrafficPolicy` | The externalTrafficPolicy of the service. The value Local preserves the client source IP. | string | `"Local"` |
275
+
| `nginx.service.loadBalancerClass` | LoadBalancerClass is the class of the load balancer implementation this Service belongs to. Requires nginx.service.type set to LoadBalancer. | string | `""` |
276
+
| `nginx.service.loadBalancerIP` | The static IP address for the load balancer. Requires nginx.service.type set to LoadBalancer. | string | `""` |
277
+
| `nginx.service.loadBalancerSourceRanges` | The IP ranges (CIDR) that are allowed to access the load balancer. Requires nginx.service.type set to LoadBalancer. | list | `[]` |
278
+
| `nginx.service.nodePorts` | A list of NodePorts to expose on the NGINX data plane service. Each NodePort MUST map to a Gateway listener port, otherwise it will be ignored. The default NodePort range enforced by Kubernetes is 30000-32767. | list | `[]` |
274
279
| `nginx.service.type` | The type of service to create for the NGINX data plane. | string | `"LoadBalancer"` |
275
280
| `nginx.usage.caSecretName` | The name of the Secret containing the NGINX Instance Manager CA certificate. Must exist in the same namespace that the NGINX Gateway Fabric control plane is running in (default namespace: nginx-gateway). | string | `""` |
276
281
| `nginx.usage.clientSSLSecretName` | The name of the Secret containing the client certificate and key for authenticating with NGINX Instance Manager. Must exist in the same namespace that the NGINX Gateway Fabric control plane is running in (default namespace: nginx-gateway). | string | `""` |
Copy file name to clipboardExpand all lines: charts/nginx-gateway-fabric/values.schema.json
+57-4
Original file line number
Diff line number
Diff line change
@@ -53,7 +53,7 @@
53
53
"description": "The nginx section contains the configuration for all NGINX data plane deployments\ninstalled by the NGINX Gateway Fabric control plane.",
54
54
"properties": {
55
55
"config": {
56
-
"description": "The configuration for the data plane that is contained in the NginxProxy resource.",
56
+
"description": "The configuration for the data plane that is contained in the NginxProxy resource. This is applied globally to all Gateways\nmanaged by this instance of NGINX Gateway Fabric.",
57
57
"properties": {
58
58
"disableHTTP2": {
59
59
"description": "DisableHTTP2 defines if http2 should be disabled for all servers.",
@@ -266,7 +266,7 @@
266
266
"type": "object"
267
267
},
268
268
"container": {
269
-
"description": "The container configuration for the NGINX container.",
269
+
"description": "The container configuration for the NGINX container. This is applied globally to all Gateways managed by this\ninstance of NGINX Gateway Fabric.",
270
270
"required": [],
271
271
"title": "container",
272
272
"type": "object"
@@ -341,7 +341,7 @@
341
341
"type": "boolean"
342
342
},
343
343
"pod": {
344
-
"description": "The pod configuration for the NGINX data plane pod.",
344
+
"description": "The pod configuration for the NGINX data plane pod. This is applied globally to all Gateways managed by this\ninstance of NGINX Gateway Fabric.",
345
345
"required": [],
346
346
"title": "pod",
347
347
"type": "object"
@@ -354,8 +354,14 @@
354
354
"type": "integer"
355
355
},
356
356
"service": {
357
-
"description": "The service configuration for the NGINX data plane.",
357
+
"description": "The service configuration for the NGINX data plane. This is applied globally to all Gateways managed by this\ninstance of NGINX Gateway Fabric.",
358
358
"properties": {
359
+
"annotations": {
360
+
"description": "The annotations of the NGINX data plane service.",
361
+
"required": [],
362
+
"title": "annotations",
363
+
"type": "object"
364
+
},
359
365
"externalTrafficPolicy": {
360
366
"default": "Local",
361
367
"description": "The externalTrafficPolicy of the service. The value Local preserves the client source IP.",
@@ -366,6 +372,53 @@
366
372
"required": [],
367
373
"title": "externalTrafficPolicy"
368
374
},
375
+
"loadBalancerClass": {
376
+
"default": "",
377
+
"description": "LoadBalancerClass is the class of the load balancer implementation this Service belongs to.\nRequires nginx.service.type set to LoadBalancer.",
378
+
"required": [],
379
+
"title": "loadBalancerClass",
380
+
"type": "string"
381
+
},
382
+
"loadBalancerIP": {
383
+
"default": "",
384
+
"description": "The static IP address for the load balancer. Requires nginx.service.type set to LoadBalancer.",
385
+
"required": [],
386
+
"title": "loadBalancerIP",
387
+
"type": "string"
388
+
},
389
+
"loadBalancerSourceRanges": {
390
+
"description": "The IP ranges (CIDR) that are allowed to access the load balancer. Requires nginx.service.type set to LoadBalancer.",
391
+
"items": {
392
+
"required": []
393
+
},
394
+
"required": [],
395
+
"title": "loadBalancerSourceRanges",
396
+
"type": "array"
397
+
},
398
+
"nodePorts": {
399
+
"description": "A list of NodePorts to expose on the NGINX data plane service. Each NodePort MUST map to a Gateway listener port,\notherwise it will be ignored. The default NodePort range enforced by Kubernetes is 30000-32767.",
400
+
"items": {
401
+
"properties": {
402
+
"listenerPort": {
403
+
"maximum": 65535,
404
+
"minimum": 1,
405
+
"required": [],
406
+
"type": "integer"
407
+
},
408
+
"port": {
409
+
"maximum": 65535,
410
+
"minimum": 1,
411
+
"required": [],
412
+
"type": "integer"
413
+
}
414
+
},
415
+
"required": [],
416
+
"type": "object"
417
+
},
418
+
"required": [],
419
+
"title": "nodePorts",
420
+
"type": "array"
421
+
},
369
422
"type": {
370
423
"default": "LoadBalancer",
371
424
"description": "The type of service to create for the NGINX data plane.",
0 commit comments