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
Copy file name to clipboardExpand all lines: charts/nginx-gateway-fabric/README.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -207,7 +207,7 @@ The following table lists the configurable parameters of the NGINX Gateway Fabri
207
207
|`certGenerator.ttlSecondsAfterFinished`| How long to wait after the cert generator job has finished before it is removed by the job controller. | int |`30`|
208
208
|`clusterDomain`| The DNS cluster domain of your Kubernetes cluster. | string |`"cluster.local"`|
209
209
|`gateways`| A list of Gateway objects. View https://gateway-api.sigs.k8s.io/reference/spec/#gateway for full Gateway reference. | list |`[]`|
210
-
|`nginx`| The nginx section contains the configuration for all NGINX data plane deployments installed by the NGINX Gateway Fabric control plane. | object |`{"autoscaling":{"enable":false},"config":{},"container":{"hostPorts":[],"lifecycle":{},"readinessProbe":{},"resources":{},"volumeMounts":[]},"debug":false,"image":{"pullPolicy":"Always","repository":"ghcr.io/nginx/nginx-gateway-fabric/nginx","tag":"edge"},"imagePullSecret":"","imagePullSecrets":[],"kind":"deployment","nginxOneConsole":{"dataplaneKeySecretName":"","endpointHost":"agent.connect.nginx.com","endpointPort":443,"skipVerify":false},"patches":[],"plus":false,"pod":{},"replicas":1,"service":{"externalTrafficPolicy":"Local","loadBalancerClass":"","loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":[],"patches":[],"type":"LoadBalancer"},"usage":{"caSecretName":"","clientSSLSecretName":"","endpoint":"","enforceInitialReport":true,"resolver":"","secretName":"nplus-license","skipVerify":false}}`|
210
+
|`nginx`| The nginx section contains the configuration for all NGINX data plane deployments installed by the NGINX Gateway Fabric control plane. | object |`{"autoscaling":{"enable":false},"config":{},"container":{"hostPorts":[],"lifecycle":{},"readinessProbe":{},"resources":{},"volumeMounts":[]},"debug":false,"image":{"pullPolicy":"Always","repository":"ghcr.io/nginx/nginx-gateway-fabric/nginx","tag":"edge"},"imagePullSecret":"","imagePullSecrets":[],"kind":"deployment","nginxOneConsole":{"dataplaneKeySecretName":"","endpointHost":"agent.connect.nginx.com","endpointPort":443,"skipVerify":false},"patches":[],"plus":false,"pod":{},"replicas":1,"service":{"externalTrafficPolicy":"Local","loadBalancerClass":"","loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":[],"patches":[],"preserveAnnotations":[],"type":"LoadBalancer"},"usage":{"caSecretName":"","clientSSLSecretName":"","endpoint":"","enforceInitialReport":true,"resolver":"","secretName":"nplus-license","skipVerify":false}}`|
211
211
|`nginx.autoscaling`| Autoscaling configuration for the NGINX data plane. | object |`{"enable":false}`|
212
212
|`nginx.autoscaling.enable`| Enable or disable Horizontal Pod Autoscaler for the NGINX data plane. | bool |`false`|
213
213
|`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 |`{}`|
@@ -230,13 +230,14 @@ The following table lists the configurable parameters of the NGINX Gateway Fabri
230
230
|`nginx.plus`| Is NGINX Plus image being used. | bool |`false`|
231
231
|`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 |`{}`|
232
232
|`nginx.replicas`| The number of replicas of the NGINX Deployment. This value is ignored if autoscaling.enable is true. | int |`1`|
233
-
|`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 |`{"externalTrafficPolicy":"Local","loadBalancerClass":"","loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":[],"patches":[],"type":"LoadBalancer"}`|
233
+
|`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 |`{"externalTrafficPolicy":"Local","loadBalancerClass":"","loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":[],"patches":[],"preserveAnnotations":[],"type":"LoadBalancer"}`|
234
234
|`nginx.service.externalTrafficPolicy`| The externalTrafficPolicy of the service. The value Local preserves the client source IP. | string |`"Local"`|
235
235
|`nginx.service.loadBalancerClass`| LoadBalancerClass is the class of the load balancer implementation this Service belongs to. Requires nginx.service.type set to LoadBalancer. | string |`""`|
236
236
|`nginx.service.loadBalancerIP`| The static IP address for the load balancer. Requires nginx.service.type set to LoadBalancer. | string |`""`|
237
237
|`nginx.service.loadBalancerSourceRanges`| The IP ranges (CIDR) that are allowed to access the load balancer. Requires nginx.service.type set to LoadBalancer. | list |`[]`|
238
238
|`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 |`[]`|
239
239
|`nginx.service.patches`| Custom patches to apply to the NGINX Service. | list |`[]`|
240
+
|`nginx.service.preserveAnnotations`| Patterns of annotations that should be preserved during service reconciliation. This allows external controllers (e.g., MetalLB, external-dns, cloud provider load balancer controllers) to add operational annotations that NGF will not remove. Supports both exact annotation keys (e.g., "metallb.universe.tf/loadBalancerIPs") and glob patterns (e.g., "*.amazonaws.com/*", "external-dns.alpha.kubernetes.io/*"). NGF-managed annotations always take precedence and cannot be preserved by external controllers. | list |`[]`|
240
241
|`nginx.service.type`| The type of service to create for the NGINX data plane. | string |`"LoadBalancer"`|
241
242
|`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 |`""`|
242
243
|`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
+13Lines changed: 13 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -652,6 +652,19 @@
652
652
"title": "patches",
653
653
"type": "array"
654
654
},
655
+
"preserveAnnotations": {
656
+
"description": "Patterns of annotations that should be preserved during service reconciliation.\nThis allows external controllers (e.g., MetalLB, external-dns, cloud provider load balancer controllers)\nto add operational annotations that NGF will not remove. Supports both exact annotation keys\n(e.g., \"metallb.universe.tf/loadBalancerIPs\") and glob patterns\n(e.g., \"*.amazonaws.com/*\", \"external-dns.alpha.kubernetes.io/*\").\nNGF-managed annotations always take precedence and cannot be preserved by external controllers.",
657
+
"items": {
658
+
"maxLength": 253,
659
+
"minLength": 1,
660
+
"required": [],
661
+
"type": "string"
662
+
},
663
+
"maxItems": 32,
664
+
"required": [],
665
+
"title": "preserveAnnotations",
666
+
"type": "array"
667
+
},
655
668
"type": {
656
669
"default": "LoadBalancer",
657
670
"description": "The type of service to create for the NGINX data plane.",
0 commit comments