From 48aff014199f5682ca78d50698ea5fa98e8d8d38 Mon Sep 17 00:00:00 2001 From: Dean Coakley Date: Thu, 11 Jul 2019 12:20:46 +0100 Subject: [PATCH 1/2] Add max_conns support for nginx plus --- internal/configs/configurator.go | 1 + internal/configs/ingress_test.go | 4 ++++ internal/configs/version1/nginx-plus.ingress.tmpl | 2 +- internal/nginx/manager.go | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/configs/configurator.go b/internal/configs/configurator.go index d102afc954..2742dc0d90 100644 --- a/internal/configs/configurator.go +++ b/internal/configs/configurator.go @@ -458,6 +458,7 @@ func (cnf *Configurator) updatePlusEndpoints(ingEx *IngressEx) error { cfg := nginx.ServerConfig{ MaxFails: ingCfg.MaxFails, + MaxConns: ingCfg.MaxConns, FailTimeout: ingCfg.FailTimeout, SlowStart: ingCfg.SlowStart, } diff --git a/internal/configs/ingress_test.go b/internal/configs/ingress_test.go index ac957be713..35f9bb36d5 100644 --- a/internal/configs/ingress_test.go +++ b/internal/configs/ingress_test.go @@ -130,6 +130,7 @@ func createExpectedConfigForCafeIngressEx() version1.IngressNginxConfig { Address: "10.0.0.1", Port: "80", MaxFails: 1, + MaxConns: 0, FailTimeout: "10s", }, }, @@ -142,6 +143,7 @@ func createExpectedConfigForCafeIngressEx() version1.IngressNginxConfig { Address: "10.0.0.2", Port: "80", MaxFails: 1, + MaxConns: 0, FailTimeout: "10s", }, }, @@ -481,6 +483,7 @@ func createExpectedConfigForMergeableCafeIngress() version1.IngressNginxConfig { Address: "10.0.0.1", Port: "80", MaxFails: 1, + MaxConns: 0, FailTimeout: "10s", }, }, @@ -493,6 +496,7 @@ func createExpectedConfigForMergeableCafeIngress() version1.IngressNginxConfig { Address: "10.0.0.2", Port: "80", MaxFails: 1, + MaxConns: 0, FailTimeout: "10s", }, }, diff --git a/internal/configs/version1/nginx-plus.ingress.tmpl b/internal/configs/version1/nginx-plus.ingress.tmpl index d7c139e164..d8dffb7892 100644 --- a/internal/configs/version1/nginx-plus.ingress.tmpl +++ b/internal/configs/version1/nginx-plus.ingress.tmpl @@ -4,7 +4,7 @@ upstream {{$upstream.Name}} { zone {{$upstream.Name}} 256k; {{if $upstream.LBMethod }}{{$upstream.LBMethod}};{{end}} {{range $server := $upstream.UpstreamServers}} - server {{$server.Address}}:{{$server.Port}} max_fails={{$server.MaxFails}} fail_timeout={{$server.FailTimeout}} + server {{$server.Address}}:{{$server.Port}} max_fails={{$server.MaxFails}} fail_timeout={{$server.FailTimeout}} max_conns={{$server.MaxConns}} {{- if $server.SlowStart}} slow_start={{$server.SlowStart}}{{end}}{{if $server.Resolve}} resolve{{end}};{{end}} {{if $upstream.StickyCookie}} sticky cookie {{$upstream.StickyCookie}}; diff --git a/internal/nginx/manager.go b/internal/nginx/manager.go index 1bf3373d8c..bbfda37b9c 100644 --- a/internal/nginx/manager.go +++ b/internal/nginx/manager.go @@ -26,6 +26,7 @@ const jsonFileForOpenTracingTracer = "/etc/tracer-config.json" // ServerConfig holds the config data for an upstream server in NGINX Plus. type ServerConfig struct { MaxFails int + MaxConns int FailTimeout string SlowStart string } @@ -265,6 +266,7 @@ func (lm *LocalManager) UpdateServersInPlus(upstream string, servers []string, c upsServers = append(upsServers, client.UpstreamServer{ Server: s, MaxFails: config.MaxFails, + MaxConns: config.MaxConns, FailTimeout: config.FailTimeout, SlowStart: config.SlowStart, }) From caa35fa787f35d02e98c46cfb63d266d8ce77478 Mon Sep 17 00:00:00 2001 From: Dean Coakley Date: Tue, 23 Jul 2019 19:32:00 +0100 Subject: [PATCH 2/2] Fix ExternalNameService test --- tests/suite/test_externalname_service.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suite/test_externalname_service.py b/tests/suite/test_externalname_service.py index 8187c4ed33..e9027aba18 100644 --- a/tests/suite/test_externalname_service.py +++ b/tests/suite/test_externalname_service.py @@ -101,4 +101,4 @@ def test_ic_template_config_upstream_server(self, kube_apis, ingress_controller_ external_name_setup.ingress_name, external_name_setup.ingress_pod_name, ingress_controller_prerequisites.namespace) - assert f"server {external_name_setup.external_host}:80 max_fails=1 fail_timeout=10s resolve;" in result_conf + assert f"server {external_name_setup.external_host}:80 max_fails=1 fail_timeout=10s max_conns=0 resolve;" in result_conf