diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index 4d909a629..d8a3f5bb2 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -300,7 +300,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.electionTTL | string | `""` | Duration a leader election is valid before it's getting re-elected, e.g. `15s`, `10m` or `1h`. (Default: 30s) | | controller.enableAnnotationValidations | bool | `false` | | | controller.enableMimalloc | bool | `true` | Enable mimalloc as a drop-in replacement for malloc. # ref: https://github.com/microsoft/mimalloc # | -| controller.enableSerialReloads | bool | `false` | This configuration defines if NGINX workers should reload serially instead of concurrently when multiple changes that require reloads are queued | +| controller.enableWorkerSerialReloads | bool | `false` | This configuration defines if NGINX workers should reload serially instead of concurrently when multiple changes that require reloads are queued | | controller.enableTopologyAwareRouting | bool | `false` | This configuration enables Topology Aware Routing feature, used together with service annotation service.kubernetes.io/topology-mode="auto" Defaults to false | | controller.existingPsp | string | `""` | Use an existing PSP instead of creating one | | controller.extraArgs | object | `{}` | Additional command line arguments to pass to Ingress-Nginx Controller E.g. to specify the default SSL certificate you can use | diff --git a/charts/ingress-nginx/templates/controller-configmap.yaml b/charts/ingress-nginx/templates/controller-configmap.yaml index c97eb2fca..50ae824a8 100644 --- a/charts/ingress-nginx/templates/controller-configmap.yaml +++ b/charts/ingress-nginx/templates/controller-configmap.yaml @@ -14,7 +14,7 @@ metadata: namespace: {{ include "ingress-nginx.namespace" . }} data: allow-snippet-annotations: "{{ .Values.controller.allowSnippetAnnotations }}" - enable-serial-reloads: "{{ .Values.controller.enableSerialReloads }}" + enable-serial-reloads: "{{ .Values.controller.enableWorkerSerialReloads }}" {{- if .Values.controller.addHeaders }} add-headers: {{ include "ingress-nginx.namespace" . }}/{{ include "ingress-nginx.fullname" . }}-custom-add-headers {{- end }} diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 77af4d373..2a361614c 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -94,7 +94,7 @@ controller: # Global snippets in ConfigMap are still respected allowSnippetAnnotations: false # -- This configuration defines if NGINX workers should reload serially instead of concurrently when multiple changes that require reloads are queued - enableSerialReloads: false + enableWorkerSerialReloads: false # -- Required for use with CNI based kubernetes installations (such as ones set up by kubeadm), # since CNI and hostport don't mix yet. Can be deprecated once https://github.com/kubernetes/kubernetes/issues/23920 # is merged diff --git a/internal/ingress/controller/nginx.go b/internal/ingress/controller/nginx.go index a1d64dc2d..f74b3245e 100644 --- a/internal/ingress/controller/nginx.go +++ b/internal/ingress/controller/nginx.go @@ -677,14 +677,14 @@ Error: %v // //nolint:gocritic // the cfg shouldn't be changed, and shouldn't be mutated by other processes while being rendered. func (n *NGINXController) OnUpdate(ingressCfg ingress.Configuration) error { - workerSerialReloads := n.store.GetBackendConfiguration().WorkerSerialReloads + cfg := n.store.GetBackendConfiguration() + cfg.Resolver = n.resolver + + workerSerialReloads := cfg.WorkerSerialReloads if workerSerialReloads && n.workersReloading { return errors.New("worker reload already in progress, requeuing reload") } - cfg := n.store.GetBackendConfiguration() - cfg.Resolver = n.resolver - content, err := n.generateTemplate(cfg, ingressCfg) if err != nil { return err