From 31cf91ca37dd4a330cf1facdbce6614daf216676 Mon Sep 17 00:00:00 2001 From: bjee19 <139261241+bjee19@users.noreply.github.com> Date: Tue, 12 Aug 2025 15:46:44 -0700 Subject: [PATCH 01/22] (Cherry-pick) Fix NFR tests (#3722) (#3723) Cherry-pick #3722 --- tests/framework/ngf.go | 2 +- tests/framework/timeout.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/framework/ngf.go b/tests/framework/ngf.go index 87252bc325..8bff1a4194 100644 --- a/tests/framework/ngf.go +++ b/tests/framework/ngf.go @@ -134,7 +134,7 @@ func UpgradeNGF(cfg InstallationConfig, extraArgs ...string) ([]byte, error) { crdPath := filepath.Join(cfg.ChartPath, "crds") + "/" cmd := exec.CommandContext( context.Background(), - "kubectl", "apply", "--server-side", "-f", crdPath, + "kubectl", "apply", "--server-side", "--force-conflicts", "-f", crdPath, ) output, err := cmd.CombinedOutput() if err != nil { diff --git a/tests/framework/timeout.go b/tests/framework/timeout.go index 87abe87189..394f9e351d 100644 --- a/tests/framework/timeout.go +++ b/tests/framework/timeout.go @@ -46,7 +46,7 @@ func DefaultTimeoutConfig() TimeoutConfig { CreateTimeout: 60 * time.Second, UpdateTimeout: 60 * time.Second, DeleteTimeout: 10 * time.Second, - DeleteNamespaceTimeout: 90 * time.Second, + DeleteNamespaceTimeout: 150 * time.Second, GetTimeout: 10 * time.Second, ManifestFetchTimeout: 10 * time.Second, RequestTimeout: 10 * time.Second, From b6f8fcff5cdded45ac312d04ff07f323020a09b2 Mon Sep 17 00:00:00 2001 From: Saloni Choudhary <146118978+salonichf5@users.noreply.github.com> Date: Thu, 14 Aug 2025 02:38:37 +0530 Subject: [PATCH 02/22] Cherry-pick: Update NGINX Plus version to R35 (#3729) Cherry-pick: update NGINX Plus version to R35 --- README.md | 2 +- build/Dockerfile.nginxplus | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 72f853cac1..31ba187260 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ The following table lists the software versions NGINX Gateway Fabric supports. | NGINX Gateway Fabric | Gateway API | Kubernetes | NGINX OSS | NGINX Plus | NGINX Agent | |----------------------|-------------|------------|-----------|------------|-------------| -| Edge | 1.3.0 | 1.25+ | 1.29.0 | R34 | v3.2.0 | +| Edge | 1.3.0 | 1.25+ | 1.29.0 | R35 | v3.2.0 | | 2.0.2 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.1 | | 2.0.1 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.1 | | 2.0.0 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.0 | diff --git a/build/Dockerfile.nginxplus b/build/Dockerfile.nginxplus index 70effd1624..14642ad801 100644 --- a/build/Dockerfile.nginxplus +++ b/build/Dockerfile.nginxplus @@ -4,9 +4,9 @@ FROM scratch AS nginx-files # the following links can be replaced with local files if needed, i.e. ADD --chown=101:1001 ADD --link --chown=101:1001 https://cs.nginx.com/static/keys/nginx_signing.rsa.pub nginx_signing.rsa.pub -FROM alpine:3.21 +FROM alpine:3.22 -ARG NGINX_PLUS_VERSION=R34 +ARG NGINX_PLUS_VERSION=R35 # renovate: datasource=github-tags depName=nginx/agent ARG NGINX_AGENT_VERSION=v3.2.0 ARG NJS_DIR From f8bbfdd957a90f1dcd751fe6972a851ee9887445 Mon Sep 17 00:00:00 2001 From: Saloni Choudhary <146118978+salonichf5@users.noreply.github.com> Date: Thu, 14 Aug 2025 05:23:32 +0530 Subject: [PATCH 03/22] Cherry pick: Add nginx one console telemetry field (#3731) Add nginx one console connection telemetry field (#3717) Problem: We want to know how many clusters are connected to NGINX One console. Solution: Reports product telemetry to report if cluster is connected to NGINX One console --- internal/controller/manager.go | 5 +++-- internal/controller/telemetry/collector.go | 9 +++++++-- internal/controller/telemetry/collector_test.go | 17 ++++++++++------- internal/controller/telemetry/data.avdl | 3 +++ .../telemetry/data_attributes_generated.go | 1 + internal/controller/telemetry/data_test.go | 3 +++ tests/suite/telemetry_test.go | 1 + 7 files changed, 28 insertions(+), 11 deletions(-) diff --git a/internal/controller/manager.go b/internal/controller/manager.go index 999f22d9ca..a4e9fd9cf0 100644 --- a/internal/controller/manager.go +++ b/internal/controller/manager.go @@ -289,8 +289,9 @@ func StartManager(cfg config.Config) error { Namespace: cfg.GatewayPodConfig.Namespace, Name: cfg.GatewayPodConfig.Name, }, - ImageSource: cfg.ImageSource, - Flags: cfg.Flags, + ImageSource: cfg.ImageSource, + Flags: cfg.Flags, + NginxOneConsoleConnection: cfg.NginxOneConsoleTelemetryConfig.DataplaneKeySecretName != "", }) job, err := createTelemetryJob(cfg, dataCollector, healthChecker.getReadyCh()) diff --git a/internal/controller/telemetry/collector.go b/internal/controller/telemetry/collector.go index 2ea076f792..e06da3f0b8 100644 --- a/internal/controller/telemetry/collector.go +++ b/internal/controller/telemetry/collector.go @@ -64,6 +64,8 @@ type Data struct { NginxPodCount int64 // ControlPlanePodCount is the total number of NGF control plane Pods. ControlPlanePodCount int64 + // NginxOneConnectionEnabled is a boolean that indicates whether the connection to the Nginx One Console is enabled. + NginxOneConnectionEnabled bool } // NGFResourceCounts stores the counts of all relevant resources that NGF processes and generates configuration from. @@ -113,14 +115,16 @@ type DataCollectorConfig struct { GraphGetter GraphGetter // ConfigurationGetter allows us to get the Configuration. ConfigurationGetter ConfigurationGetter - // Version is the NGF version. - Version string // PodNSName is the NamespacedName of the NGF Pod. PodNSName types.NamespacedName + // Version is the NGF version. + Version string // ImageSource is the source of the NGF image. ImageSource string // Flags contains the command-line NGF flag keys and values. Flags config.Flags + // NginxOneConsoleConnection is a boolean that indicates whether the connection to the Nginx One Console is enabled. + NginxOneConsoleConnection bool } // DataCollectorImpl is am implementation of DataCollector. @@ -189,6 +193,7 @@ func (c DataCollectorImpl) Collect(ctx context.Context) (Data, error) { SnippetsFiltersDirectivesCount: snippetsFiltersDirectivesCount, NginxPodCount: nginxPodCount, ControlPlanePodCount: int64(replicaCount), + NginxOneConnectionEnabled: c.cfg.NginxOneConsoleConnection, } return data, nil diff --git a/internal/controller/telemetry/collector_test.go b/internal/controller/telemetry/collector_test.go index ea90045032..8c749fdfbe 100644 --- a/internal/controller/telemetry/collector_test.go +++ b/internal/controller/telemetry/collector_test.go @@ -176,6 +176,7 @@ var _ = Describe("Collector", Ordered, func() { FlagValues: flags.Values, SnippetsFiltersDirectives: []string{}, SnippetsFiltersDirectivesCount: []int64{}, + NginxOneConnectionEnabled: true, } k8sClientReader = &kubernetesfakes.FakeReader{} @@ -186,13 +187,14 @@ var _ = Describe("Collector", Ordered, func() { fakeConfigurationGetter.GetLatestConfigurationReturns(nil) dataCollector = telemetry.NewDataCollectorImpl(telemetry.DataCollectorConfig{ - K8sClientReader: k8sClientReader, - GraphGetter: fakeGraphGetter, - ConfigurationGetter: fakeConfigurationGetter, - Version: version, - PodNSName: podNSName, - ImageSource: "local", - Flags: flags, + K8sClientReader: k8sClientReader, + GraphGetter: fakeGraphGetter, + ConfigurationGetter: fakeConfigurationGetter, + Version: version, + PodNSName: podNSName, + ImageSource: "local", + Flags: flags, + NginxOneConsoleConnection: true, }) baseGetCalls = createGetCallsFunc(ngfPod, ngfReplicaSet, kubeNamespace) @@ -516,6 +518,7 @@ var _ = Describe("Collector", Ordered, func() { // empty + one gateway using daemonset expData.NginxPodCount = int64(8) expData.ControlPlanePodCount = int64(2) + expData.NginxOneConnectionEnabled = true data, err := dataCollector.Collect(ctx) Expect(err).ToNot(HaveOccurred()) diff --git a/internal/controller/telemetry/data.avdl b/internal/controller/telemetry/data.avdl index 95d99f316b..c19881315a 100644 --- a/internal/controller/telemetry/data.avdl +++ b/internal/controller/telemetry/data.avdl @@ -111,5 +111,8 @@ attached at the Gateway level. */ /** ControlPlanePodCount is the total number of NGF control plane Pods. */ long? ControlPlanePodCount = null; + /** NginxOneConnectionEnabled is a boolean that indicates whether the connection to the Nginx One Console is enabled. */ + boolean? NginxOneConnectionEnabled = null; + } } diff --git a/internal/controller/telemetry/data_attributes_generated.go b/internal/controller/telemetry/data_attributes_generated.go index afbd8dfb1f..3b8b3dcf3f 100644 --- a/internal/controller/telemetry/data_attributes_generated.go +++ b/internal/controller/telemetry/data_attributes_generated.go @@ -22,6 +22,7 @@ func (d *Data) Attributes() []attribute.KeyValue { attrs = append(attrs, d.NGFResourceCounts.Attributes()...) attrs = append(attrs, attribute.Int64("NginxPodCount", d.NginxPodCount)) attrs = append(attrs, attribute.Int64("ControlPlanePodCount", d.ControlPlanePodCount)) + attrs = append(attrs, attribute.Bool("NginxOneConnectionEnabled", d.NginxOneConnectionEnabled)) return attrs } diff --git a/internal/controller/telemetry/data_test.go b/internal/controller/telemetry/data_test.go index 867424e145..49c8e3543c 100644 --- a/internal/controller/telemetry/data_test.go +++ b/internal/controller/telemetry/data_test.go @@ -46,6 +46,7 @@ func TestDataAttributes(t *testing.T) { SnippetsFiltersDirectivesCount: []int64{3, 2, 1}, NginxPodCount: 3, ControlPlanePodCount: 3, + NginxOneConnectionEnabled: true, } expected := []attribute.KeyValue{ @@ -84,6 +85,7 @@ func TestDataAttributes(t *testing.T) { attribute.Int64("GatewayAttachedNpCount", 15), attribute.Int64("NginxPodCount", 3), attribute.Int64("ControlPlanePodCount", 3), + attribute.Bool("NginxOneConnectionEnabled", true), } result := data.Attributes() @@ -129,6 +131,7 @@ func TestDataAttributesWithEmptyData(t *testing.T) { attribute.Int64("GatewayAttachedNpCount", 0), attribute.Int64("NginxPodCount", 0), attribute.Int64("ControlPlanePodCount", 0), + attribute.Bool("NginxOneConnectionEnabled", false), } result := data.Attributes() diff --git a/tests/suite/telemetry_test.go b/tests/suite/telemetry_test.go index a4d5f502ca..2ad0c0b3a0 100644 --- a/tests/suite/telemetry_test.go +++ b/tests/suite/telemetry_test.go @@ -95,6 +95,7 @@ var _ = Describe("Telemetry test with OTel collector", Label("telemetry"), func( "GatewayAttachedNpCount: Int(0)", "NginxPodCount: Int(0)", "ControlPlanePodCount: Int(1)", + "NginxOneConnectionEnabled: Bool(false)", }, ) }) From 33d442bed7457982b600d874a63cf700c84dcb01 Mon Sep 17 00:00:00 2001 From: Sarthak Agrawal <68310924+sarthyparty@users.noreply.github.com> Date: Wed, 13 Aug 2025 18:17:32 -0700 Subject: [PATCH 04/22] Fix events block crash (#3730) (#3733) --- .../controller/nginx/conf/nginx-plus.conf | 4 ++ internal/controller/nginx/conf/nginx.conf | 4 ++ internal/controller/nginx/config/generator.go | 7 +++ .../controller/nginx/config/generator_test.go | 55 ++++++++++--------- .../controller/nginx/config/main_config.go | 16 +++++- .../nginx/config/main_config_template.go | 7 ++- .../nginx/config/main_config_test.go | 38 ++++++++++++- internal/controller/provisioner/objects.go | 13 ++++- .../controller/provisioner/objects_test.go | 6 +- internal/controller/provisioner/templates.go | 14 ++--- 10 files changed, 122 insertions(+), 42 deletions(-) diff --git a/internal/controller/nginx/conf/nginx-plus.conf b/internal/controller/nginx/conf/nginx-plus.conf index 84be2a6691..f2b0ec0dc8 100644 --- a/internal/controller/nginx/conf/nginx-plus.conf +++ b/internal/controller/nginx/conf/nginx-plus.conf @@ -5,6 +5,10 @@ worker_processes auto; pid /var/run/nginx/nginx.pid; +events { + include /etc/nginx/events-includes/*.conf; +} + http { include /etc/nginx/conf.d/*.conf; include /etc/nginx/mime.types; diff --git a/internal/controller/nginx/conf/nginx.conf b/internal/controller/nginx/conf/nginx.conf index f98d7eaa6e..791994fdf8 100644 --- a/internal/controller/nginx/conf/nginx.conf +++ b/internal/controller/nginx/conf/nginx.conf @@ -5,6 +5,10 @@ worker_processes auto; pid /var/run/nginx/nginx.pid; +events { + include /etc/nginx/events-includes/*.conf; +} + http { include /etc/nginx/conf.d/*.conf; include /etc/nginx/mime.types; diff --git a/internal/controller/nginx/config/generator.go b/internal/controller/nginx/config/generator.go index 290185c315..6fa7602c04 100644 --- a/internal/controller/nginx/config/generator.go +++ b/internal/controller/nginx/config/generator.go @@ -38,6 +38,9 @@ const ( // For example, these files include load_module directives and snippets that target the main context. mainIncludesFolder = configFolder + "/main-includes" + // eventsIncludesFolder is the folder where NGINX events context configuration files are stored. + eventsIncludesFolder = configFolder + "/events-includes" + // secretsFolder is the folder where secrets (like TLS certs/keys) are stored. secretsFolder = configFolder + "/secrets" @@ -56,6 +59,9 @@ const ( // mainIncludesConfigFile is the path to the file containing NGINX configuration in the main context. mainIncludesConfigFile = mainIncludesFolder + "/main.conf" + // eventsIncludesConfigFile is the path to the file containing NGINX events configuration. + eventsIncludesConfigFile = eventsIncludesFolder + "/events.conf" + // mgmtIncludesFile is the path to the file containing the NGINX Plus mgmt config. mgmtIncludesFile = mainIncludesFolder + "/mgmt.conf" @@ -196,6 +202,7 @@ func (g GeneratorImpl) getExecuteFuncs( ) []executeFunc { return []executeFunc{ executeMainConfig, + executeEventsConfig, executeBaseHTTPConfig, g.newExecuteServersFunc(generator, keepAliveCheck), newExecuteUpstreamsFunc(upstreams), diff --git a/internal/controller/nginx/config/generator_test.go b/internal/controller/nginx/config/generator_test.go index 1340834d03..c77b22cb99 100644 --- a/internal/controller/nginx/config/generator_test.go +++ b/internal/controller/nginx/config/generator_test.go @@ -147,7 +147,7 @@ func TestGenerate(t *testing.T) { files := generator.Generate(conf) - g.Expect(files).To(HaveLen(17)) + g.Expect(files).To(HaveLen(18)) arrange := func(i, j int) bool { return files[i].Meta.Name < files[j].Meta.Name } @@ -158,6 +158,7 @@ func TestGenerate(t *testing.T) { /etc/nginx/conf.d/http.conf /etc/nginx/conf.d/matches.json /etc/nginx/conf.d/plus-api.conf + /etc/nginx/events-includes/events.conf /etc/nginx/includes/http_snippet1.conf /etc/nginx/includes/http_snippet2.conf /etc/nginx/includes/main_snippet1.conf @@ -211,28 +212,32 @@ func TestGenerate(t *testing.T) { g.Expect(httpCfg).To(ContainSubstring("deny all;")) g.Expect(httpCfg).To(ContainSubstring("location = /dashboard.html {}")) + // events config file + g.Expect(files[3].Meta.Name).To(Equal("/etc/nginx/events-includes/events.conf")) + g.Expect(string(files[3].Contents)).To(ContainSubstring("worker_connections")) + // snippet include files // content is not checked in this test. - g.Expect(files[3].Meta.Name).To(Equal("/etc/nginx/includes/http_snippet1.conf")) - g.Expect(files[4].Meta.Name).To(Equal("/etc/nginx/includes/http_snippet2.conf")) - g.Expect(files[5].Meta.Name).To(Equal("/etc/nginx/includes/main_snippet1.conf")) - g.Expect(files[6].Meta.Name).To(Equal("/etc/nginx/includes/main_snippet2.conf")) + g.Expect(files[4].Meta.Name).To(Equal("/etc/nginx/includes/http_snippet1.conf")) + g.Expect(files[5].Meta.Name).To(Equal("/etc/nginx/includes/http_snippet2.conf")) + g.Expect(files[6].Meta.Name).To(Equal("/etc/nginx/includes/main_snippet1.conf")) + g.Expect(files[7].Meta.Name).To(Equal("/etc/nginx/includes/main_snippet2.conf")) - g.Expect(files[7].Meta.Name).To(Equal("/etc/nginx/main-includes/deployment_ctx.json")) - deploymentCtx := string(files[7].Contents) + g.Expect(files[8].Meta.Name).To(Equal("/etc/nginx/main-includes/deployment_ctx.json")) + deploymentCtx := string(files[8].Contents) g.Expect(deploymentCtx).To(ContainSubstring("\"integration\":\"ngf\"")) g.Expect(deploymentCtx).To(ContainSubstring("\"cluster_id\":\"test-uid\"")) g.Expect(deploymentCtx).To(ContainSubstring("\"installation_id\":\"test-uid-replicaSet\"")) g.Expect(deploymentCtx).To(ContainSubstring("\"cluster_node_count\":1")) - g.Expect(files[8].Meta.Name).To(Equal("/etc/nginx/main-includes/main.conf")) - mainConfStr := string(files[8].Contents) + g.Expect(files[9].Meta.Name).To(Equal("/etc/nginx/main-includes/main.conf")) + mainConfStr := string(files[9].Contents) g.Expect(mainConfStr).To(ContainSubstring("load_module modules/ngx_otel_module.so;")) g.Expect(mainConfStr).To(ContainSubstring("include /etc/nginx/includes/main_snippet1.conf;")) g.Expect(mainConfStr).To(ContainSubstring("include /etc/nginx/includes/main_snippet2.conf;")) - g.Expect(files[9].Meta.Name).To(Equal("/etc/nginx/main-includes/mgmt.conf")) - mgmtConf := string(files[9].Contents) + g.Expect(files[10].Meta.Name).To(Equal("/etc/nginx/main-includes/mgmt.conf")) + mgmtConf := string(files[10].Contents) g.Expect(mgmtConf).To(ContainSubstring("usage_report endpoint=test-endpoint")) g.Expect(mgmtConf).To(ContainSubstring("license_token /etc/nginx/secrets/license.jwt")) g.Expect(mgmtConf).To(ContainSubstring("deployment_context /etc/nginx/main-includes/deployment_ctx.json")) @@ -240,23 +245,23 @@ func TestGenerate(t *testing.T) { g.Expect(mgmtConf).To(ContainSubstring("ssl_certificate /etc/nginx/secrets/mgmt-tls.crt")) g.Expect(mgmtConf).To(ContainSubstring("ssl_certificate_key /etc/nginx/secrets/mgmt-tls.key")) - g.Expect(files[10].Meta.Name).To(Equal("/etc/nginx/secrets/license.jwt")) - g.Expect(string(files[10].Contents)).To(Equal("license")) + g.Expect(files[11].Meta.Name).To(Equal("/etc/nginx/secrets/license.jwt")) + g.Expect(string(files[11].Contents)).To(Equal("license")) - g.Expect(files[11].Meta.Name).To(Equal("/etc/nginx/secrets/mgmt-ca.crt")) - g.Expect(string(files[11].Contents)).To(Equal("ca")) + g.Expect(files[12].Meta.Name).To(Equal("/etc/nginx/secrets/mgmt-ca.crt")) + g.Expect(string(files[12].Contents)).To(Equal("ca")) - g.Expect(files[12].Meta.Name).To(Equal("/etc/nginx/secrets/mgmt-tls.crt")) - g.Expect(string(files[12].Contents)).To(Equal("cert")) + g.Expect(files[13].Meta.Name).To(Equal("/etc/nginx/secrets/mgmt-tls.crt")) + g.Expect(string(files[13].Contents)).To(Equal("cert")) - g.Expect(files[13].Meta.Name).To(Equal("/etc/nginx/secrets/mgmt-tls.key")) - g.Expect(string(files[13].Contents)).To(Equal("key")) + g.Expect(files[14].Meta.Name).To(Equal("/etc/nginx/secrets/mgmt-tls.key")) + g.Expect(string(files[14].Contents)).To(Equal("key")) - g.Expect(files[14].Meta.Name).To(Equal("/etc/nginx/secrets/test-certbundle.crt")) - certBundle := string(files[14].Contents) + g.Expect(files[15].Meta.Name).To(Equal("/etc/nginx/secrets/test-certbundle.crt")) + certBundle := string(files[15].Contents) g.Expect(certBundle).To(Equal("test-cert")) - g.Expect(files[15]).To(Equal(agent.File{ + g.Expect(files[16]).To(Equal(agent.File{ Meta: &pb.FileMeta{ Name: "/etc/nginx/secrets/test-keypair.pem", Hash: filesHelper.GenerateHash([]byte("test-cert\ntest-key")), @@ -266,9 +271,9 @@ func TestGenerate(t *testing.T) { Contents: []byte("test-cert\ntest-key"), })) - g.Expect(files[16].Meta.Name).To(Equal("/etc/nginx/stream-conf.d/stream.conf")) - g.Expect(files[16].Meta.Permissions).To(Equal(file.RegularFileMode)) - streamCfg := string(files[16].Contents) + g.Expect(files[17].Meta.Name).To(Equal("/etc/nginx/stream-conf.d/stream.conf")) + g.Expect(files[17].Meta.Permissions).To(Equal(file.RegularFileMode)) + streamCfg := string(files[17].Contents) g.Expect(streamCfg).To(ContainSubstring("listen unix:/var/run/nginx/app.example.com-443.sock")) g.Expect(streamCfg).To(ContainSubstring("listen 443")) g.Expect(streamCfg).To(ContainSubstring("app.example.com unix:/var/run/nginx/app.example.com-443.sock")) diff --git a/internal/controller/nginx/config/main_config.go b/internal/controller/nginx/config/main_config.go index fa10606f22..1fb7991225 100644 --- a/internal/controller/nginx/config/main_config.go +++ b/internal/controller/nginx/config/main_config.go @@ -15,8 +15,9 @@ import ( ) var ( - mainConfigTemplate = gotemplate.Must(gotemplate.New("main").Parse(mainConfigTemplateText)) - mgmtConfigTemplate = gotemplate.Must(gotemplate.New("mgmt").Parse(mgmtConfigTemplateText)) + mainConfigTemplate = gotemplate.Must(gotemplate.New("main").Parse(mainConfigTemplateText)) + mgmtConfigTemplate = gotemplate.Must(gotemplate.New("mgmt").Parse(mgmtConfigTemplateText)) + eventsConfigTemplate = gotemplate.Must(gotemplate.New("events").Parse(eventsConfigTemplateText)) ) type mainConfig struct { @@ -42,6 +43,17 @@ func executeMainConfig(conf dataplane.Configuration) []executeResult { return results } +func executeEventsConfig(conf dataplane.Configuration) []executeResult { + eventsData := helpers.MustExecuteTemplate(eventsConfigTemplate, conf) + + return []executeResult{ + { + dest: eventsIncludesConfigFile, + data: eventsData, + }, + } +} + type mgmtConf struct { Endpoint string Resolver string diff --git a/internal/controller/nginx/config/main_config_template.go b/internal/controller/nginx/config/main_config_template.go index 103aa3fc14..ae668431a8 100644 --- a/internal/controller/nginx/config/main_config_template.go +++ b/internal/controller/nginx/config/main_config_template.go @@ -7,15 +7,16 @@ load_module modules/ngx_otel_module.so; error_log stderr {{ .Conf.Logging.ErrorLevel }}; -events { - worker_connections {{ .Conf.WorkerConnections }}; -} {{ range $i := .Includes -}} include {{ $i.Name }}; {{ end -}} ` +const eventsConfigTemplateText = ` +worker_connections {{ .WorkerConnections }}; +` + const mgmtConfigTemplateText = ` mgmt { {{- if .Endpoint }} diff --git a/internal/controller/nginx/config/main_config_test.go b/internal/controller/nginx/config/main_config_test.go index dc8861da15..132084afa7 100644 --- a/internal/controller/nginx/config/main_config_test.go +++ b/internal/controller/nginx/config/main_config_test.go @@ -173,8 +173,44 @@ func TestExecuteMainConfig_WorkerConnections(t *testing.T) { res := executeMainConfig(test.conf) g.Expect(res).To(HaveLen(1)) g.Expect(res[0].dest).To(Equal(mainIncludesConfigFile)) + g.Expect(string(res[0].data)).To(ContainSubstring("error_log stderr")) + }) + } +} + +func TestExecuteEventsConfig_WorkerConnections(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + expWorkerConnections string + conf dataplane.Configuration + }{ + { + name: "custom worker connections", + conf: dataplane.Configuration{ + WorkerConnections: 2048, + }, + expWorkerConnections: "worker_connections 2048;", + }, + { + name: "default worker connections", + conf: dataplane.Configuration{ + WorkerConnections: dataplane.DefaultWorkerConnections, + }, + expWorkerConnections: "worker_connections 1024;", + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + t.Parallel() + g := NewWithT(t) + + res := executeEventsConfig(test.conf) + g.Expect(res).To(HaveLen(1)) + g.Expect(res[0].dest).To(Equal(eventsIncludesConfigFile)) g.Expect(string(res[0].data)).To(ContainSubstring(test.expWorkerConnections)) - g.Expect(string(res[0].data)).To(ContainSubstring("events {")) }) } } diff --git a/internal/controller/provisioner/objects.go b/internal/controller/provisioner/objects.go index 86908a7dc1..6abe6f230c 100644 --- a/internal/controller/provisioner/objects.go +++ b/internal/controller/provisioner/objects.go @@ -396,6 +396,11 @@ func (p *NginxProvisioner) buildNginxConfigMaps( "WorkerConnections": workerConnections, } + // Create events ConfigMap data using template + eventsFields := map[string]interface{}{ + "WorkerConnections": workerConnections, + } + bootstrapCM := &corev1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: ngxIncludesConfigMapName, @@ -404,7 +409,8 @@ func (p *NginxProvisioner) buildNginxConfigMaps( Annotations: objectMeta.Annotations, }, Data: map[string]string{ - "main.conf": string(helpers.MustExecuteTemplate(mainTemplate, mainFields)), + "main.conf": string(helpers.MustExecuteTemplate(mainTemplate, mainFields)), + "events.conf": string(helpers.MustExecuteTemplate(eventsTemplate, eventsFields)), }, } @@ -826,6 +832,7 @@ func (p *NginxProvisioner) buildNginxPodTemplateSpec( {MountPath: "/etc/nginx/conf.d", Name: "nginx-conf"}, {MountPath: "/etc/nginx/stream-conf.d", Name: "nginx-stream-conf"}, {MountPath: "/etc/nginx/main-includes", Name: "nginx-main-includes"}, + {MountPath: "/etc/nginx/events-includes", Name: "nginx-events-includes"}, {MountPath: "/etc/nginx/secrets", Name: "nginx-secrets"}, {MountPath: "/var/run/nginx", Name: "nginx-run"}, {MountPath: "/var/cache/nginx", Name: "nginx-cache"}, @@ -845,6 +852,8 @@ func (p *NginxProvisioner) buildNginxPodTemplateSpec( "--destination", "/etc/nginx-agent", "--source", "/includes/main.conf", "--destination", "/etc/nginx/main-includes", + "--source", "/includes/events.conf", + "--destination", "/etc/nginx/events-includes", }, Env: []corev1.EnvVar{ { @@ -861,6 +870,7 @@ func (p *NginxProvisioner) buildNginxPodTemplateSpec( {MountPath: "/etc/nginx-agent", Name: "nginx-agent"}, {MountPath: "/includes", Name: "nginx-includes-bootstrap"}, {MountPath: "/etc/nginx/main-includes", Name: "nginx-main-includes"}, + {MountPath: "/etc/nginx/events-includes", Name: "nginx-events-includes"}, }, SecurityContext: &corev1.SecurityContext{ Capabilities: &corev1.Capabilities{ @@ -927,6 +937,7 @@ func (p *NginxProvisioner) buildNginxPodTemplateSpec( {Name: "nginx-conf", VolumeSource: emptyDirVolumeSource}, {Name: "nginx-stream-conf", VolumeSource: emptyDirVolumeSource}, {Name: "nginx-main-includes", VolumeSource: emptyDirVolumeSource}, + {Name: "nginx-events-includes", VolumeSource: emptyDirVolumeSource}, {Name: "nginx-secrets", VolumeSource: emptyDirVolumeSource}, {Name: "nginx-run", VolumeSource: emptyDirVolumeSource}, {Name: "nginx-cache", VolumeSource: emptyDirVolumeSource}, diff --git a/internal/controller/provisioner/objects_test.go b/internal/controller/provisioner/objects_test.go index 08f6f629ec..600ff5d87f 100644 --- a/internal/controller/provisioner/objects_test.go +++ b/internal/controller/provisioner/objects_test.go @@ -1275,7 +1275,7 @@ func TestBuildNginxConfigMaps_WorkerConnections(t *testing.T) { bootstrapCM, ok := configMaps[0].(*corev1.ConfigMap) g.Expect(ok).To(BeTrue()) - g.Expect(bootstrapCM.Data["main.conf"]).To(ContainSubstring("worker_connections 1024;")) + g.Expect(bootstrapCM.Data["events.conf"]).To(ContainSubstring("worker_connections 1024;")) // Test with default worker connections (empty NginxProxy config) nProxyCfgEmpty := &graph.EffectiveNginxProxy{} @@ -1284,7 +1284,7 @@ func TestBuildNginxConfigMaps_WorkerConnections(t *testing.T) { bootstrapCM, ok = configMaps[0].(*corev1.ConfigMap) g.Expect(ok).To(BeTrue()) - g.Expect(bootstrapCM.Data["main.conf"]).To(ContainSubstring("worker_connections 1024;")) + g.Expect(bootstrapCM.Data["events.conf"]).To(ContainSubstring("worker_connections 1024;")) // Test with custom worker connections nProxyCfg := &graph.EffectiveNginxProxy{ @@ -1296,7 +1296,7 @@ func TestBuildNginxConfigMaps_WorkerConnections(t *testing.T) { bootstrapCM, ok = configMaps[0].(*corev1.ConfigMap) g.Expect(ok).To(BeTrue()) - g.Expect(bootstrapCM.Data["main.conf"]).To(ContainSubstring("worker_connections 2048;")) + g.Expect(bootstrapCM.Data["events.conf"]).To(ContainSubstring("worker_connections 2048;")) } func TestBuildNginxConfigMaps_AgentFields(t *testing.T) { diff --git a/internal/controller/provisioner/templates.go b/internal/controller/provisioner/templates.go index c6eb828377..78945d53f7 100644 --- a/internal/controller/provisioner/templates.go +++ b/internal/controller/provisioner/templates.go @@ -3,17 +3,17 @@ package provisioner import gotemplate "text/template" var ( - mainTemplate = gotemplate.Must(gotemplate.New("main").Parse(mainTemplateText)) - mgmtTemplate = gotemplate.Must(gotemplate.New("mgmt").Parse(mgmtTemplateText)) - agentTemplate = gotemplate.Must(gotemplate.New("agent").Parse(agentTemplateText)) + mainTemplate = gotemplate.Must(gotemplate.New("main").Parse(mainTemplateText)) + mgmtTemplate = gotemplate.Must(gotemplate.New("mgmt").Parse(mgmtTemplateText)) + agentTemplate = gotemplate.Must(gotemplate.New("agent").Parse(agentTemplateText)) + eventsTemplate = gotemplate.Must(gotemplate.New("events").Parse(eventsTemplateText)) ) const mainTemplateText = ` -error_log stderr {{ .ErrorLevel }}; +error_log stderr {{ .ErrorLevel }};` -events { - worker_connections {{ .WorkerConnections }}; -}` +const eventsTemplateText = ` +worker_connections {{ .WorkerConnections }};` const mgmtTemplateText = `mgmt { {{- if .UsageEndpoint }} From fd94860875fad55a6f780e8eaff8e2836cd82bc3 Mon Sep 17 00:00:00 2001 From: bjee19 <139261241+bjee19@users.noreply.github.com> Date: Thu, 14 Aug 2025 10:26:08 -0700 Subject: [PATCH 05/22] NFR Test Results for NGF version 2.1.0 (#3727) Add the NFR and Longevity test results. --- tests/results/dp-perf/2.1.0/2.1.0-oss.md | 90 +++++ tests/results/dp-perf/2.1.0/2.1.0-plus.md | 90 +++++ tests/results/longevity/2.1.0/2.1.0-oss.md | 321 ++++++++++++++++++ tests/results/longevity/2.1.0/2.1.0-plus.md | 224 ++++++++++++ tests/results/longevity/2.1.0/oss-cpu.png | Bin 0 -> 113095 bytes tests/results/longevity/2.1.0/oss-memory.png | Bin 0 -> 98526 bytes tests/results/longevity/2.1.0/plus-cpu.png | Bin 0 -> 110329 bytes tests/results/longevity/2.1.0/plus-memory.png | Bin 0 -> 99354 bytes tests/results/ngf-upgrade/2.1.0/2.1.0-oss.md | 60 ++++ tests/results/ngf-upgrade/2.1.0/2.1.0-plus.md | 66 ++++ tests/results/ngf-upgrade/2.1.0/http-oss.png | Bin 0 -> 9787 bytes tests/results/ngf-upgrade/2.1.0/http-plus.png | Bin 0 -> 9688 bytes tests/results/ngf-upgrade/2.1.0/https-oss.png | Bin 0 -> 9836 bytes .../results/ngf-upgrade/2.1.0/https-plus.png | Bin 0 -> 9691 bytes tests/results/reconfig/2.1.0/2.1.0-oss.md | 153 +++++++++ tests/results/reconfig/2.1.0/2.1.0-plus.md | 109 ++++++ tests/results/scale/2.1.0/2.1.0-oss.md | 158 +++++++++ tests/results/scale/2.1.0/2.1.0-plus.md | 153 +++++++++ .../2.1.0/TestScale_HTTPRoutes/cpu-oss.png | Bin 0 -> 26603 bytes .../2.1.0/TestScale_HTTPRoutes/cpu-plus.png | Bin 0 -> 32054 bytes .../2.1.0/TestScale_HTTPRoutes/memory-oss.png | Bin 0 -> 22998 bytes .../TestScale_HTTPRoutes/memory-plus.png | Bin 0 -> 24556 bytes .../2.1.0/TestScale_HTTPRoutes/ttr-oss.png | Bin 0 -> 22294 bytes .../2.1.0/TestScale_HTTPRoutes/ttr-plus.png | Bin 0 -> 31557 bytes .../TestScale_HTTPSListeners/cpu-oss.png | Bin 0 -> 25062 bytes .../TestScale_HTTPSListeners/cpu-plus.png | Bin 0 -> 23258 bytes .../TestScale_HTTPSListeners/memory-oss.png | Bin 0 -> 23408 bytes .../TestScale_HTTPSListeners/memory-plus.png | Bin 0 -> 22958 bytes .../TestScale_HTTPSListeners/ngf-oss.log | 29 ++ .../TestScale_HTTPSListeners/ngf-plus.log | 7 + .../TestScale_HTTPSListeners/nginx-plus.log | 161 +++++++++ .../TestScale_HTTPSListeners/ttr-oss.png | Bin 0 -> 31023 bytes .../TestScale_HTTPSListeners/ttr-plus.png | Bin 0 -> 38034 bytes .../2.1.0/TestScale_Listeners/cpu-oss.png | Bin 0 -> 23936 bytes .../2.1.0/TestScale_Listeners/cpu-plus.png | Bin 0 -> 23239 bytes .../2.1.0/TestScale_Listeners/memory-oss.png | Bin 0 -> 23437 bytes .../2.1.0/TestScale_Listeners/memory-plus.png | Bin 0 -> 23415 bytes .../2.1.0/TestScale_Listeners/ngf-oss.log | 22 ++ .../2.1.0/TestScale_Listeners/ngf-plus.log | 11 + .../2.1.0/TestScale_Listeners/nginx-plus.log | 172 ++++++++++ .../2.1.0/TestScale_Listeners/ttr-oss.png | Bin 0 -> 24197 bytes .../2.1.0/TestScale_Listeners/ttr-plus.png | Bin 0 -> 35927 bytes .../TestScale_UpstreamServers/cpu-oss.png | Bin 0 -> 21774 bytes .../TestScale_UpstreamServers/cpu-plus.png | Bin 0 -> 21506 bytes .../TestScale_UpstreamServers/memory-oss.png | Bin 0 -> 19837 bytes .../TestScale_UpstreamServers/memory-plus.png | Bin 0 -> 24159 bytes .../TestScale_UpstreamServers/ngf-oss.log | 4 + .../TestScale_UpstreamServers/ngf-plus.log | 3 + .../zero-downtime-scale/2.1.0/2.1.0-oss.md | 287 ++++++++++++++++ .../zero-downtime-scale/2.1.0/2.1.0-plus.md | 288 ++++++++++++++++ .../abrupt-scale-down-affinity-http-oss.png | Bin 0 -> 9885 bytes .../abrupt-scale-down-affinity-http-plus.png | Bin 0 -> 10353 bytes .../abrupt-scale-down-affinity-https-oss.png | Bin 0 -> 9885 bytes .../abrupt-scale-down-affinity-https-plus.png | Bin 0 -> 10249 bytes .../2.1.0/abrupt-scale-down-http-oss.png | Bin 0 -> 9670 bytes .../2.1.0/abrupt-scale-down-http-plus.png | Bin 0 -> 10247 bytes .../2.1.0/abrupt-scale-down-https-oss.png | Bin 0 -> 9670 bytes .../2.1.0/abrupt-scale-down-https-plus.png | Bin 0 -> 10247 bytes .../abrupt-scale-up-affinity-http-oss.png | Bin 0 -> 10170 bytes .../abrupt-scale-up-affinity-http-plus.png | Bin 0 -> 9834 bytes .../abrupt-scale-up-affinity-https-oss.png | Bin 0 -> 10170 bytes .../abrupt-scale-up-affinity-https-plus.png | Bin 0 -> 9834 bytes .../2.1.0/abrupt-scale-up-http-oss.png | Bin 0 -> 9646 bytes .../2.1.0/abrupt-scale-up-http-plus.png | Bin 0 -> 10004 bytes .../2.1.0/abrupt-scale-up-https-oss.png | Bin 0 -> 9646 bytes .../2.1.0/abrupt-scale-up-https-plus.png | Bin 0 -> 9865 bytes .../gradual-scale-down-affinity-http-oss.png | Bin 0 -> 10376 bytes .../gradual-scale-down-affinity-http-plus.png | Bin 0 -> 10446 bytes .../gradual-scale-down-affinity-https-oss.png | Bin 0 -> 10376 bytes ...gradual-scale-down-affinity-https-plus.png | Bin 0 -> 10446 bytes .../2.1.0/gradual-scale-down-http-oss.png | Bin 0 -> 9687 bytes .../2.1.0/gradual-scale-down-http-plus.png | Bin 0 -> 9730 bytes .../2.1.0/gradual-scale-down-https-oss.png | Bin 0 -> 9687 bytes .../2.1.0/gradual-scale-down-https-plus.png | Bin 0 -> 9730 bytes .../gradual-scale-up-affinity-http-oss.png | Bin 0 -> 10295 bytes .../gradual-scale-up-affinity-http-plus.png | Bin 0 -> 9790 bytes .../gradual-scale-up-affinity-https-oss.png | Bin 0 -> 10295 bytes .../gradual-scale-up-affinity-https-plus.png | Bin 0 -> 9790 bytes .../2.1.0/gradual-scale-up-http-oss.png | Bin 0 -> 9860 bytes .../2.1.0/gradual-scale-up-http-plus.png | Bin 0 -> 9795 bytes .../2.1.0/gradual-scale-up-https-oss.png | Bin 0 -> 9860 bytes .../2.1.0/gradual-scale-up-https-plus.png | Bin 0 -> 9795 bytes 82 files changed, 2408 insertions(+) create mode 100644 tests/results/dp-perf/2.1.0/2.1.0-oss.md create mode 100644 tests/results/dp-perf/2.1.0/2.1.0-plus.md create mode 100644 tests/results/longevity/2.1.0/2.1.0-oss.md create mode 100644 tests/results/longevity/2.1.0/2.1.0-plus.md create mode 100644 tests/results/longevity/2.1.0/oss-cpu.png create mode 100644 tests/results/longevity/2.1.0/oss-memory.png create mode 100644 tests/results/longevity/2.1.0/plus-cpu.png create mode 100644 tests/results/longevity/2.1.0/plus-memory.png create mode 100644 tests/results/ngf-upgrade/2.1.0/2.1.0-oss.md create mode 100644 tests/results/ngf-upgrade/2.1.0/2.1.0-plus.md create mode 100644 tests/results/ngf-upgrade/2.1.0/http-oss.png create mode 100644 tests/results/ngf-upgrade/2.1.0/http-plus.png create mode 100644 tests/results/ngf-upgrade/2.1.0/https-oss.png create mode 100644 tests/results/ngf-upgrade/2.1.0/https-plus.png create mode 100644 tests/results/reconfig/2.1.0/2.1.0-oss.md create mode 100644 tests/results/reconfig/2.1.0/2.1.0-plus.md create mode 100644 tests/results/scale/2.1.0/2.1.0-oss.md create mode 100644 tests/results/scale/2.1.0/2.1.0-plus.md create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPRoutes/cpu-oss.png create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPRoutes/cpu-plus.png create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPRoutes/memory-oss.png create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPRoutes/memory-plus.png create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPRoutes/ttr-oss.png create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPRoutes/ttr-plus.png create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPSListeners/cpu-oss.png create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPSListeners/cpu-plus.png create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPSListeners/memory-oss.png create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPSListeners/memory-plus.png create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPSListeners/ngf-oss.log create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPSListeners/ngf-plus.log create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPSListeners/nginx-plus.log create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPSListeners/ttr-oss.png create mode 100644 tests/results/scale/2.1.0/TestScale_HTTPSListeners/ttr-plus.png create mode 100644 tests/results/scale/2.1.0/TestScale_Listeners/cpu-oss.png create mode 100644 tests/results/scale/2.1.0/TestScale_Listeners/cpu-plus.png create mode 100644 tests/results/scale/2.1.0/TestScale_Listeners/memory-oss.png create mode 100644 tests/results/scale/2.1.0/TestScale_Listeners/memory-plus.png create mode 100644 tests/results/scale/2.1.0/TestScale_Listeners/ngf-oss.log create mode 100644 tests/results/scale/2.1.0/TestScale_Listeners/ngf-plus.log create mode 100644 tests/results/scale/2.1.0/TestScale_Listeners/nginx-plus.log create mode 100644 tests/results/scale/2.1.0/TestScale_Listeners/ttr-oss.png create mode 100644 tests/results/scale/2.1.0/TestScale_Listeners/ttr-plus.png create mode 100644 tests/results/scale/2.1.0/TestScale_UpstreamServers/cpu-oss.png create mode 100644 tests/results/scale/2.1.0/TestScale_UpstreamServers/cpu-plus.png create mode 100644 tests/results/scale/2.1.0/TestScale_UpstreamServers/memory-oss.png create mode 100644 tests/results/scale/2.1.0/TestScale_UpstreamServers/memory-plus.png create mode 100644 tests/results/scale/2.1.0/TestScale_UpstreamServers/ngf-oss.log create mode 100644 tests/results/scale/2.1.0/TestScale_UpstreamServers/ngf-plus.log create mode 100644 tests/results/zero-downtime-scale/2.1.0/2.1.0-oss.md create mode 100644 tests/results/zero-downtime-scale/2.1.0/2.1.0-plus.md create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-affinity-http-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-affinity-http-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-affinity-https-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-affinity-https-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-http-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-http-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-https-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-https-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-affinity-http-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-affinity-http-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-affinity-https-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-affinity-https-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-http-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-http-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-https-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-https-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-affinity-http-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-affinity-http-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-affinity-https-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-affinity-https-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-http-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-http-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-https-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-https-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-affinity-http-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-affinity-http-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-affinity-https-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-affinity-https-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-http-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-http-plus.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-https-oss.png create mode 100644 tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-https-plus.png diff --git a/tests/results/dp-perf/2.1.0/2.1.0-oss.md b/tests/results/dp-perf/2.1.0/2.1.0-oss.md new file mode 100644 index 0000000000..3f2df54190 --- /dev/null +++ b/tests/results/dp-perf/2.1.0/2.1.0-oss.md @@ -0,0 +1,90 @@ +# Results + +## Test environment + +NGINX Plus: false + +NGINX Gateway Fabric: + +- Commit: 43424f7eafc27e3fed07cef693614a7f389a3359 +- Date: 2025-08-12T16:35:50Z +- Dirty: false + +GKE Cluster: + +- Node count: 12 +- k8s version: v1.33.2-gke.1240000 +- vCPUs per node: 16 +- RAM per node: 65851524Ki +- Max pods per node: 110 +- Zone: us-west1-b +- Instance Type: n2d-standard-16 + +## Summary: + +- Average latency slightly increased across all routing methods, saw the same trend from 1.6 -> 2.0. + +## Test1: Running latte path based routing + +```text +Requests [total, rate, throughput] 30000, 1000.01, 999.98 +Duration [total, attack, wait] 30.001s, 30s, 860.144µs +Latencies [min, mean, 50, 90, 95, 99, max] 708.68µs, 924.81µs, 900.213µs, 1.012ms, 1.056ms, 1.235ms, 25.908ms +Bytes In [total, mean] 4800000, 160.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test2: Running coffee header based routing + +```text +Requests [total, rate, throughput] 30000, 1000.01, 999.98 +Duration [total, attack, wait] 30.001s, 30s, 916.828µs +Latencies [min, mean, 50, 90, 95, 99, max] 751.086µs, 950.524µs, 929.692µs, 1.031ms, 1.073ms, 1.246ms, 21.708ms +Bytes In [total, mean] 4830000, 161.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test3: Running coffee query based routing + +```text +Requests [total, rate, throughput] 30000, 1000.04, 1000.01 +Duration [total, attack, wait] 30s, 29.999s, 910.096µs +Latencies [min, mean, 50, 90, 95, 99, max] 737.72µs, 952.101µs, 931.79µs, 1.04ms, 1.084ms, 1.257ms, 21.421ms +Bytes In [total, mean] 5070000, 169.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test4: Running tea GET method based routing + +```text +Requests [total, rate, throughput] 30000, 1000.04, 1000.00 +Duration [total, attack, wait] 30s, 29.999s, 953.01µs +Latencies [min, mean, 50, 90, 95, 99, max] 735.071µs, 943.252µs, 913.494µs, 1.019ms, 1.065ms, 1.251ms, 22.035ms +Bytes In [total, mean] 4740000, 158.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test5: Running tea POST method based routing + +```text +Requests [total, rate, throughput] 30000, 1000.04, 1000.01 +Duration [total, attack, wait] 30s, 29.999s, 915.921µs +Latencies [min, mean, 50, 90, 95, 99, max] 734.844µs, 941.777µs, 917.299µs, 1.026ms, 1.069ms, 1.23ms, 16.245ms +Bytes In [total, mean] 4740000, 158.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` diff --git a/tests/results/dp-perf/2.1.0/2.1.0-plus.md b/tests/results/dp-perf/2.1.0/2.1.0-plus.md new file mode 100644 index 0000000000..d7518e2927 --- /dev/null +++ b/tests/results/dp-perf/2.1.0/2.1.0-plus.md @@ -0,0 +1,90 @@ +# Results + +## Test environment + +NGINX Plus: true + +NGINX Gateway Fabric: + +- Commit: 43424f7eafc27e3fed07cef693614a7f389a3359 +- Date: 2025-08-12T16:35:50Z +- Dirty: false + +GKE Cluster: + +- Node count: 12 +- k8s version: v1.33.2-gke.1240000 +- vCPUs per node: 16 +- RAM per node: 65851524Ki +- Max pods per node: 110 +- Zone: us-west1-b +- Instance Type: n2d-standard-16 + +## Summary: + +- Average latency slightly decreased across all routing methods. + +## Test1: Running latte path based routing + +```text +Requests [total, rate, throughput] 30000, 1000.04, 1000.01 +Duration [total, attack, wait] 30s, 29.999s, 864.169µs +Latencies [min, mean, 50, 90, 95, 99, max] 676.161µs, 888.566µs, 842.896µs, 960.735µs, 1.026ms, 1.385ms, 35.079ms +Bytes In [total, mean] 4770000, 159.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test2: Running coffee header based routing + +```text +Requests [total, rate, throughput] 30000, 1000.03, 1000.01 +Duration [total, attack, wait] 30s, 29.999s, 789.743µs +Latencies [min, mean, 50, 90, 95, 99, max] 696.868µs, 888.515µs, 867.086µs, 957.192µs, 1.004ms, 1.322ms, 20.014ms +Bytes In [total, mean] 4800000, 160.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test3: Running coffee query based routing + +```text +Requests [total, rate, throughput] 30000, 1000.04, 1000.01 +Duration [total, attack, wait] 30s, 29.999s, 825.991µs +Latencies [min, mean, 50, 90, 95, 99, max] 696.245µs, 901.93µs, 874.173µs, 978.297µs, 1.03ms, 1.272ms, 22.813ms +Bytes In [total, mean] 5040000, 168.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test4: Running tea GET method based routing + +```text +Requests [total, rate, throughput] 30000, 1000.04, 1000.01 +Duration [total, attack, wait] 30s, 29.999s, 845.195µs +Latencies [min, mean, 50, 90, 95, 99, max] 696.031µs, 906.906µs, 878.335µs, 989.976µs, 1.041ms, 1.267ms, 25.992ms +Bytes In [total, mean] 4710000, 157.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test5: Running tea POST method based routing + +```text +Requests [total, rate, throughput] 30000, 1000.04, 1000.01 +Duration [total, attack, wait] 30s, 29.999s, 947.993µs +Latencies [min, mean, 50, 90, 95, 99, max] 716.416µs, 908.156µs, 883.623µs, 996.843µs, 1.054ms, 1.289ms, 17.605ms +Bytes In [total, mean] 4710000, 157.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` diff --git a/tests/results/longevity/2.1.0/2.1.0-oss.md b/tests/results/longevity/2.1.0/2.1.0-oss.md new file mode 100644 index 0000000000..1d86f70ba8 --- /dev/null +++ b/tests/results/longevity/2.1.0/2.1.0-oss.md @@ -0,0 +1,321 @@ +# Results + +## Test environment + +NGINX Plus: false + +NGINX Gateway Fabric: + +- Commit: 00112a4f92025967d82b04fccc9df98b314e06b8 +- Date: 2025-08-08T19:16:31Z +- Dirty: false + +GKE Cluster: + +- Node count: 3 +- k8s version: v1.33.2-gke.1240000 +- vCPUs per node: 2 +- RAM per node: 4015676Ki +- Max pods per node: 110 +- Zone: us-central1-c +- Instance Type: e2-medium + +## Summary: + +- Overwhelming majority of traffic responses were non-2xx or 3xx responses. +- Increase in memory usage for both NGF and NGINX. +- CPU usage remained consistant with past results. +- Errors seen seem to be similar to the singular error in the 1.6.0 plus test run. + +## Traffic + +HTTP: + +```text +Running 5760m test @ http://cafe.example.com/coffee + 2 threads and 100 connections + Thread Stats Avg Stdev Max +/- Stdev + Latency 99.75ms 99.46ms 2.00s 86.19% + Req/Sec 503.99 399.94 5.27k 72.34% + 340520035 requests in 5760.00m, 97.24GB read + Socket errors: connect 0, read 52470, write 0, timeout 74144 + Non-2xx or 3xx responses: 307049999 +Requests/sec: 985.30 +Transfer/sec: 295.05KB +``` + +HTTPS: + +```text +Running 5760m test @ https://cafe.example.com/tea + 2 threads and 100 connections + Thread Stats Avg Stdev Max +/- Stdev + Latency 105.85ms 99.39ms 1.98s 83.25% + Req/Sec 467.11 378.48 5.08k 73.91% + 315478863 requests in 5760.00m, 90.82GB read + Socket errors: connect 0, read 51813, write 0, timeout 69436 + Non-2xx or 3xx responses: 269078873 +Requests/sec: 912.84 +Transfer/sec: 275.55KB +``` + +## Key Metrics + +### Containers memory + +![oss-memory.png](oss-memory.png) + +### NGF Container Memory + +![oss-ngf-memory.png](oss-ngf-memory.png) + +### Containers CPU + +![oss-cpu.png](oss-cpu.png) + + +## Error Logs + +### nginx-gateway + +Logs have been reduced with some information and unique logs kept. However most were the "failed to list" or "cannot watch resource" + +error=failed to list *v1.ServiceAccount: Unauthorized;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:226 +k8s.io/apimachinery/pkg/util/runtime.handleError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:217 +k8s.io/apimachinery/pkg/util/runtime.HandleErrorWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:203 +k8s.io/client-go/tools/cache.DefaultWatchErrorHandler + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:200 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:360 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:255 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:256 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:358 +k8s.io/client-go/tools/cache.(*controller).RunWithContext.(*Group).StartWithContext.func3 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:63 +k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:72;ts=2025-08-12T21:16:49Z;type=*v1.ServiceAccount +error=failed to list *v1.Service: Unauthorized;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:226 +k8s.io/apimachinery/pkg/util/runtime.handleError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:217 +k8s.io/apimachinery/pkg/util/runtime.HandleErrorWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:203 +k8s.io/client-go/tools/cache.DefaultWatchErrorHandler + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:200 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:360 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:255 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:256 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:358 +k8s.io/client-go/tools/cache.(*controller).RunWithContext.(*Group).StartWithContext.func3 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:63 +k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:72;ts=2025-08-12T21:16:48Z;type=*v1.Service +error=failed to list *v1.ConfigMap: Unauthorized;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError +.. +error=failed to list *v1.HTTPRoute: Unauthorized;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError +.. +error=failed to list *v1.GatewayClass: Unauthorized;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError +.. +error=failed to list *v1.EndpointSlice: Unauthorized;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError +.. +error=failed to list *v1.Secret: Unauthorized;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError +..... + +error=leader election lost;level=error;msg=error received after stop sequence was engaged;stacktrace=sigs.k8s.io/controller-runtime/pkg/manager.(*controllerManager).engageStopProcedure.func1 + pkg/mod/sigs.k8s.io/controller-runtime@v0.21.0/pkg/manager/internal.go:512;ts=2025-08-12T21:16:30Z +level=error;msg=error retrieving resource lock nginx-gateway/ngf-longevity-nginx-gateway-fabric-leader-election: context deadline exceeded;stacktrace=k8s.io/client-go/tools/leaderelection.(*LeaderElector).tryAcquireOrRenew + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:436 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew.func1.1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:285 +k8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext.func2 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/loop.go:87 +k8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/loop.go:88 +k8s.io/apimachinery/pkg/util/wait.PollUntilContextTimeout + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/poll.go:48 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:283 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:255 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:256 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.JitterUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:210 +k8s.io/apimachinery/pkg/util/wait.Until + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:163 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:282 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).Run + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:221 +sigs.k8s.io/controller-runtime/pkg/manager.(*controllerManager).Start.func3 + pkg/mod/sigs.k8s.io/controller-runtime@v0.21.0/pkg/manager/internal.go:449;ts=2025-08-12T21:16:30Z +level=error;msg=Failed to update lock optimistically: context deadline exceeded, falling back to slow path;stacktrace=k8s.io/client-go/tools/leaderelection.(*LeaderElector).tryAcquireOrRenew + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:429 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew.func1.1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:285 +k8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext.func2 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/loop.go:87 +k8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/loop.go:88 +k8s.io/apimachinery/pkg/util/wait.PollUntilContextTimeout + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/poll.go:48 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:283 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:255 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:256 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.JitterUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:210 +k8s.io/apimachinery/pkg/util/wait.Until + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:163 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:282 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).Run + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:221 +sigs.k8s.io/controller-runtime/pkg/manager.(*controllerManager).Start.func3 + pkg/mod/sigs.k8s.io/controller-runtime@v0.21.0/pkg/manager/internal.go:449;ts=2025-08-12T21:16:30Z +.. +error=serviceaccounts is forbidden: User "system:serviceaccount:nginx-gateway:ngf-longevity-nginx-gateway-fabric" cannot watch resource "serviceaccounts" in API group "" at the cluster scope;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:226 +k8s.io/apimachinery/pkg/util/runtime.handleError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:217 +k8s.io/apimachinery/pkg/util/runtime.HandleErrorWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:203 +k8s.io/client-go/tools/cache.DefaultWatchErrorHandler + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:200 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:360 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:255 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:256 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:358 +k8s.io/client-go/tools/cache.(*controller).RunWithContext.(*Group).StartWithContext.func3 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:63 +k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:72;ts=2025-08-12T21:16:28Z;type=*v1.ServiceAccount +error=configmaps is forbidden: User "system:serviceaccount:nginx-gateway:ngf-longevity-nginx-gateway-fabric" cannot watch resource "configmaps" in API group "" at the cluster scope;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:226 +k8s.io/apimachinery/pkg/util/runtime.handleError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:217 +k8s.io/apimachinery/pkg/util/runtime.HandleErrorWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:203 +k8s.io/client-go/tools/cache.DefaultWatchErrorHandler + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:200 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:360 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:255 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:256 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:358 +k8s.io/client-go/tools/cache.(*controller).RunWithContext.(*Group).StartWithContext.func3 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:63 +k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:72;ts=2025-08-12T21:16:28Z;type=*v1.ConfigMap +error=failed to list *v1.PartialObjectMetadata: customresourcedefinitions.apiextensions.k8s.io is forbidden: User "system:serviceaccount:nginx-gateway:ngf-longevity-nginx-gateway-fabric" cannot list resource "customresourcedefinitions" in API group "apiextensions.k8s.io" at the cluster scope;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:226 +k8s.io/apimachinery/pkg/util/runtime.handleError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:217 +k8s.io/apimachinery/pkg/util/runtime.HandleErrorWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:203 +k8s.io/client-go/tools/cache.DefaultWatchErrorHandler + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:200 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:360 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:255 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:256 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:358 +k8s.io/client-go/tools/cache.(*controller).RunWithContext.(*Group).StartWithContext.func3 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:63 +k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:72;ts=2025-08-12T21:16:28Z;type=*v1.PartialObjectMetadata +error=failed to list *v1.GRPCRoute: grpcroutes.gateway.networking.k8s.io is forbidden: User "system:serviceaccount:nginx-gateway:ngf-longevity-nginx-gateway-fabric" cannot list resource "grpcroutes" in API group "gateway.networking.k8s.io" at the cluster scope;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError +.. +error=failed to list *v1.GatewayClass: gatewayclasses.gateway.networking.k8s.io is forbidden: User "system:serviceaccount:nginx-gateway:ngf-longevity-nginx-gateway-fabric" cannot list resource "gatewayclasses" in API group "gateway.networking.k8s.io" at the cluster scope;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError +.. +level=error;msg=error retrieving resource lock nginx-gateway/ngf-longevity-nginx-gateway-fabric-leader-election: leases.coordination.k8s.io "ngf-longevity-nginx-gateway-fabric-leader-election" is forbidden: User "system:serviceaccount:nginx-gateway:ngf-longevity-nginx-gateway-fabric" cannot get resource "leases" in API group "coordination.k8s.io" in the namespace "nginx-gateway";stacktrace=k8s.io/client-go/tools/leaderelection.(*LeaderElector).tryAcquireOrRenew + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:436 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew.func1.1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:285 +k8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext.func2 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/loop.go:87 +k8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/loop.go:88 +k8s.io/apimachinery/pkg/util/wait.PollUntilContextTimeout + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/poll.go:48 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:283 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:255 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:256 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.JitterUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:210 +k8s.io/apimachinery/pkg/util/wait.Until + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:163 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:282 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).Run + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:221 +sigs.k8s.io/controller-runtime/pkg/manager.(*controllerManager).Start.func3 + pkg/mod/sigs.k8s.io/controller-runtime@v0.21.0/pkg/manager/internal.go:449;ts=2025-08-12T21:16:26Z +level=error;msg=Failed to update lock optimistically: leases.coordination.k8s.io "ngf-longevity-nginx-gateway-fabric-leader-election" is forbidden: User "system:serviceaccount:nginx-gateway:ngf-longevity-nginx-gateway-fabric" cannot update resource "leases" in API group "coordination.k8s.io" in the namespace "nginx-gateway", falling back to slow path;stacktrace=k8s.io/client-go/tools/leaderelection.(*LeaderElector).tryAcquireOrRenew +.. +error=gateways.gateway.networking.k8s.io is forbidden: User "system:serviceaccount:nginx-gateway:ngf-longevity-nginx-gateway-fabric" cannot watch resource "gateways" in API group "gateway.networking.k8s.io" at the cluster scope;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError +.. + +error=nginxproxies.gateway.nginx.org is forbidden: User "system:serviceaccount:nginx-gateway:ngf-longevity-nginx-gateway-fabric" cannot watch resource "nginxproxies" in API group "gateway.nginx.org" at the cluster scope;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError +.. + +### nginx + +Make command errored because there were so many errors in nginx-gateway that none were recorded if any. diff --git a/tests/results/longevity/2.1.0/2.1.0-plus.md b/tests/results/longevity/2.1.0/2.1.0-plus.md new file mode 100644 index 0000000000..0d6cb645b2 --- /dev/null +++ b/tests/results/longevity/2.1.0/2.1.0-plus.md @@ -0,0 +1,224 @@ +# Results + +## Test environment + +NGINX Plus: true + +NGINX Gateway Fabric: + +- Commit: 00112a4f92025967d82b04fccc9df98b314e06b8 +- Date: 2025-08-08T19:16:31Z +- Dirty: false + +GKE Cluster: + +- Node count: 3 +- k8s version: v1.33.2-gke.1240000 +- vCPUs per node: 2 +- RAM per node: 4015668Ki +- Max pods per node: 110 +- Zone: us-central1-c +- Instance Type: e2-medium + +## Summary: + +- Results may be incomplete as traffic statistics weren't collected. This could be due to test run user error, or due to the plethora of errors which occurred. +- CPU usage remained consistant with past results. +- NGINX memory remained consistant with past results while NGF memory seemed to continually climb. +- Errors seen seem to be similar to the singular error in the 1.6.0 plus test run. + + +## Traffic + +HTTP: + +```text +``` + +HTTPS: + +```text +``` + +## Key Metrics + +### Containers memory + +![plus-memory.png](plus-memory.png) + +### NGF Container Memory + +![plus-ngf-memory.png](plus-ngf-memory.png) + +### Containers CPU + +![plus-cpu.png](plus-cpu.png) + + +## Error Logs + +### nginx-gateway + +Logs have been reduced with some information and unique logs kept. However most were the "failed to list" or "cannot watch resource". +Quite a few logs on lock issues. + +error=failed to list *v2.HorizontalPodAutoscaler: Unauthorized;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:226 +k8s.io/apimachinery/pkg/util/runtime.handleError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:217 +k8s.io/apimachinery/pkg/util/runtime.HandleErrorWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:203 +k8s.io/client-go/tools/cache.DefaultWatchErrorHandler + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:200 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:360 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:255 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:256 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:358 +k8s.io/client-go/tools/cache.(*controller).RunWithContext.(*Group).StartWithContext.func3 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:63 +k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:72;ts=2025-08-12T22:49:01Z;type=*v2.HorizontalPodAutoscaler +error=failed to list *v1.EndpointSlice: Unauthorized;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:226 +k8s.io/apimachinery/pkg/util/runtime.handleError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:217 +k8s.io/apimachinery/pkg/util/runtime.HandleErrorWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:203 +k8s.io/client-go/tools/cache.DefaultWatchErrorHandler + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:200 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:360 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:255 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:256 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:358 +k8s.io/client-go/tools/cache.(*controller).RunWithContext.(*Group).StartWithContext.func3 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:63 +k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:72;ts=2025-08-12T22:48:59Z;type=*v1.EndpointSlice +.. +error=Unauthorized;event={'name': 'ngf-longevity-nginx-gateway-fabric-leader-election.185b269a5517109a', 'namespace': 'nginx-gateway'};level=error;msg=Server rejected event (will not retry!);stacktrace=k8s.io/client-go/tools/record.recordEvent + pkg/mod/k8s.io/client-go@v0.33.3/tools/record/event.go:359 +k8s.io/client-go/tools/record.(*eventBroadcasterImpl).recordToSink + pkg/mod/k8s.io/client-go@v0.33.3/tools/record/event.go:302 +k8s.io/client-go/tools/record.(*eventBroadcasterImpl).StartRecordingToSink.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/record/event.go:279 +k8s.io/client-go/tools/record.(*eventBroadcasterImpl).StartEventWatcher.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/record/event.go:418;ts=2025-08-12T22:48:44Z +error=leader election lost;level=error;msg=error received after stop sequence was engaged;stacktrace=sigs.k8s.io/controller-runtime/pkg/manager.(*controllerManager).engageStopProcedure.func1 + pkg/mod/sigs.k8s.io/controller-runtime@v0.21.0/pkg/manager/internal.go:512;ts=2025-08-12T22:48:44Z +level=error;msg=error retrieving resource lock nginx-gateway/ngf-longevity-nginx-gateway-fabric-leader-election: context deadline exceeded;stacktrace=k8s.io/client-go/tools/leaderelection.(*LeaderElector).tryAcquireOrRenew + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:436 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew.func1.1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:285 +k8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext.func2 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/loop.go:87 +k8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/loop.go:88 +k8s.io/apimachinery/pkg/util/wait.PollUntilContextTimeout + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/poll.go:48 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:283 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:255 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:256 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.JitterUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:210 +k8s.io/apimachinery/pkg/util/wait.Until + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:163 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:282 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).Run + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:221 +sigs.k8s.io/controller-runtime/pkg/manager.(*controllerManager).Start.func3 + pkg/mod/sigs.k8s.io/controller-runtime@v0.21.0/pkg/manager/internal.go:449;ts=2025-08-12T22:48:44Z +level=error;msg=Failed to update lock optimistically: context deadline exceeded, falling back to slow path;stacktrace=k8s.io/client-go/tools/leaderelection.(*LeaderElector).tryAcquireOrRenew + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:429 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew.func1.1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:285 +k8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext.func2 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/loop.go:87 +k8s.io/apimachinery/pkg/util/wait.loopConditionUntilContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/loop.go:88 +k8s.io/apimachinery/pkg/util/wait.PollUntilContextTimeout + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/poll.go:48 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:283 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:255 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:256 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.JitterUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:210 +k8s.io/apimachinery/pkg/util/wait.Until + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:163 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).renew + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:282 +k8s.io/client-go/tools/leaderelection.(*LeaderElector).Run + pkg/mod/k8s.io/client-go@v0.33.3/tools/leaderelection/leaderelection.go:221 +sigs.k8s.io/controller-runtime/pkg/manager.(*controllerManager).Start.func3 + pkg/mod/sigs.k8s.io/controller-runtime@v0.21.0/pkg/manager/internal.go:449;ts=2025-08-12T22:48:44Z +.. +level=error;msg=error retrieving resource lock nginx-gateway/ngf-longevity-nginx-gateway-fabric-leader-election: Unauthorized;stacktrace=k8s.io/client-go/tools/leaderelection.(*LeaderElector).tryAcquireOrRenew +.. +level=error;msg=Failed to update lock optimistically: Unauthorized, falling back to slow path;stacktrace=k8s.io/client-go/tools/leaderelection.(*LeaderElector).tryAcquireOrRenew +.. +.. +error=Unauthorized;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError +.. +error=failed to list *v1alpha1.NginxGateway: nginxgateways.gateway.nginx.org is forbidden: User "system:serviceaccount:nginx-gateway:ngf-longevity-nginx-gateway-fabric" cannot list resource "nginxgateways" in API group "gateway.nginx.org" at the cluster scope;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError +.. +error=failed to list *v1.PartialObjectMetadata: customresourcedefinitions.apiextensions.k8s.io is forbidden: User "system:serviceaccount:nginx-gateway:ngf-longevity-nginx-gateway-fabric" cannot list resource "customresourcedefinitions" in API group "apiextensions.k8s.io" at the cluster scope;level=error;logger=controller-runtime.cache.UnhandledError;msg=Failed to watch;reflector=pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:285;stacktrace=k8s.io/apimachinery/pkg/util/runtime.logError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:226 +k8s.io/apimachinery/pkg/util/runtime.handleError + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:217 +k8s.io/apimachinery/pkg/util/runtime.HandleErrorWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/runtime/runtime.go:203 +k8s.io/client-go/tools/cache.DefaultWatchErrorHandler + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:200 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext.func1 + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:360 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:255 +k8s.io/apimachinery/pkg/util/wait.BackoffUntilWithContext + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:256 +k8s.io/apimachinery/pkg/util/wait.BackoffUntil + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/backoff.go:233 +k8s.io/client-go/tools/cache.(*Reflector).RunWithContext + pkg/mod/k8s.io/client-go@v0.33.3/tools/cache/reflector.go:358 +k8s.io/client-go/tools/cache.(*controller).RunWithContext.(*Group).StartWithContext.func3 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:63 +k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1 + pkg/mod/k8s.io/apimachinery@v0.33.3/pkg/util/wait/wait.go:72;ts=2025-08-12T22:48:34Z;type=*v1.PartialObjectMetadata +.. +level=error;msg=Failed to update lock optimistically: leases.coordination.k8s.io "ngf-longevity-nginx-gateway-fabric-leader-election" is forbidden: User "system:serviceaccount:nginx-gateway:ngf-longevity-nginx-gateway-fabric" cannot update resource "leases" in API group "coordination.k8s.io" in the namespace "nginx-gateway", falling back to slow path;stacktrace=k8s.io/client-go/tools/leaderelection.(*LeaderElector).tryAcquireOrRenew +.. + +### nginx + +Make command errored because there were so many errors in nginx-gateway that none were recorded if any. diff --git a/tests/results/longevity/2.1.0/oss-cpu.png b/tests/results/longevity/2.1.0/oss-cpu.png new file mode 100644 index 0000000000000000000000000000000000000000..6f3f0ad5f4c918e3a6360215d5c5e6a844a2ade0 GIT binary patch literal 113095 zcmce;cUTik`#w$+L{L-&RH{_z0#XvHAWbA7y(3+E4WT2TqIBskQ~~MINkS2&NeLpo z1Vnm(AiV~D>v=!tyzlip`tLW_wb^BMXLg=@o|$>d9o}d{lrLYpeTjg8;IgX9LoEV= z3vmPlMClhvfs!1WfI0#K%E$H!3Yw}43M`r)uD140HUtDJZ<6%MOcIpoTVdAn7q7m4 z9`zxGMVPqzqQ!+cX_6=8s?YCPKEBA~^3I?QsYs%%SjrMnN~C4-UYA#~O*)d8rhwMb zop<&nfzfgFEbIt_kv;dv1rO{r9mEhnpXo?>&ib$rM{`1l`zx7Cvf%XqoPsOC)KU z;aBo6K(6N+5LL;xxA^*sytpbDI!-$IQFQfDp!cypI4yYSG4tTUj)?LHp5!+9D>r%z z5T~GXJMbCoORp|vrN!k^zhu7qdbdRSrt&jy%{?l+vSqC5XMLl6k|3wiK;l_tdmo?T zv(O%4W?ld25l_^4IoiFA$)d|&ZNcy|ZEvH~Q$*B>UQ z(t%z`?$rEH&_#S=B0mf}`)u$*=Ix7wdu43#8ZkFx6z^W5)ar;yP>g>eK@+>Cx*+3O@3I>w&BW4k`N_8J)vjKOAFq~a7e4nFf9q0vcQm-gBfHh(6l74_!yF*{n!x1h zMFTlPM{p`(bx31#Llxbbb~FjGOkBug7NRQ(eLth#wOu23nwPtC$jEvvF1C;2CId|f zQFrj|4j$0f#Uckrxz4YtS{!6juOz5mgqa+g3%zH*wZ(ExDm3blnQ6;{=HpEd3*DG= z|DaU-CpQ*qq4vA4^sNWO`QJQfm$SSpl=>`^{(DQKI1{09umRj%3E?-SR1xdxRn4Kml2I*k;nz;T>uC;MrurC|1J>zGYb130XgUXGn5L>&CpE;y z&GwXiP_jSg53Q{D8pqi2CRD3a^ORdG-_Bv&zA^g!T~9nTNT;PRb|FJjSlBNRr$0gW zNhY9{W1rvqqGTkz9c{&L!1mOltBSMivSdj+n*bo}WhBiZ-oWC839N1rA>%#|u$e(tGEa>+0x;&akvLK)D?Puvh$ z=SPO|k3N|pl0Qk$ST4Q@xqFo=zU}@>Ano+B@I8t?;>ZW&cZo|s`e~Bahi>GMu3sQ~ z!1j!gt8L&rQ6ou3=#<-mSJ-k6RTC-mRgyb*?!O3GVdH$wVHqpI=G0C{F3%cgzy_=poM zC_ZSFF_d;x#mg8Nsveo$tErZ5W)4GD1fttz&u9(ho}#6(CyZ!*{+kH z10=WG;+|^!Wc_(DfjsSn;fw3?APcU!dvlacDM<3lHxF48o~iFXKd=-Q%8*ED%xp|+ zjP(f}e-NOu&h=L1nB6~~iaVm6Ycb)G3caeoN|!49oy#}l>e~}9)*oNtEQ;e;VD$j` ziXYuXB%HoD4arljdgt>b@2-3gL(ik0E007LSqn0@LrN6u3Xe7CizkLVhA%lt?@{hu z*-J`KPftrPGKxw!aDHp_ax$pS)8Sxbrr5D`s@QWxdxQqdI}9t%)@&_4i%`lp96Yt> zt__&HWW>L5V}ogRLd-U?-eMl z_v*dmd*1iZ_mI%n;8Cy?+zBoWZw7CG1Cf)+3gjDP4YbrN7V9k}R7jK1)n`*-&17w6 z)xvCb|CNZ+ecOrDVP(K2me^0eqcvq4C#!< z3}>ryCk`k2YK!X;mTI*&Q%mD6_087dlZXkM3Ec_PTICJQM#p}}hGgfpPT!b>s8S{v z<^d*TUh})=vfJ$2)thq$3*#$?mQ5XpiCd*z*^K8CU;4Sn?8ApP$S0{kao$jWmi4o! z243?K(Q_0*(a$k%ldG1{tETU-|8|XbjNXN^LDfYKV}y}G_&4@WuVMV9_@ur`iTRq? zt$oO!=$%-WBF`esqL4P0n)OBaFZwg?9)F%{lkDAT|Bp80aTI+xhNMCz>;T1_T zX+4=e83&0jDTYFf0!>*#funGzNTc^)O}u)W2?^c>54`63KC*rMN$S&5IQ)t}RV+m% zW$;xCx;v52vR*(gWz>3qgRAtas9Iayc>P1MJQ_*w%qT5#Ty)d&vDahWzWH(TsvXOL zPN5%#T^lj}jLcVCh0nZ0)k9fxMc-znrW<4&a&q6ZSJxU_*h*N|Xo+)*LYj zxc+!G`}%zwd?HS#VK{!+QMpftwxX3-OM zhz`0UGi3VRbfE7-Q*9I5b!XL>g^yIBEa|>NgZyR<&@Oqw?HBgd)m!9xwA}!GdM% z&gw68hwfe|r|74n6EVuC<<16OM*2ux<=)U(wjhju78!zkP?cNCnwMvv-_fZ{FRN#( zYgT^g{ba)zx1nlvS1}54n9J6zR_n+!$BEH{*~r$`Dt>EYg*sj6k@t`N(2ZCaJ5J(+ z_#}K1PAb{!9W==?F``Rt?1>!BulH`4!zDqV!SgEYG_YA}{=^4jBa*|eQ(e>g^~~$~ z>%rbE8z1Y!=E#hxs;EZJpB>E?evbNFa9QPZ=Bt*@vd)Uag~Av%3uU8><_xOyg~Oo= z+M(o`TiFRzecJT+&I36h@1&CIwB&RY&~45;-pQcK1_kD*yj3_eH8 zyiL4x6-s6sjmd5soqNM;rs6Nevu665kGA#N%BdRYFn6Z8n@fEgPP68kv9nIWQ)7!W z(A}W#_Gp`7)+gCoA^@krEf6n;UaO~%FHV>5#(^jaCU^2oB8-WQE;9r=+aX;-`Xz(-v>+yzQz+i{piUCjlc#-7+f7m z^S&B#{zBKTyY0snIqB2F*wvTj;$wv4t;7Vp?=>_ou%wg9HF3$AnkZp^8oKvV_Y4F$|M~##%3pQm?advX?1p7#{{`CYH zxc*fv$jb89BVLZutOn|uEDEk3HY{QS_XO^-%3NY$VUhB%wgqcFRQkW_z+cj=&%C_c zz=DD>7)$^rBH-#_Cny90fduaf3knPK15faK`nq^o`0%@Uvi+x#zuS3e<7wq#@8)Ii z>caA?T?#rC6^Z8FdZG7zi`z9C9{}T%kQ1I6sK_P*Ag8#G)RF(Qw3f8pu zv2ikdXzvVQ2E0Q?OiWDbujl`D=f7|KpPB~$ttoV0`2PP^{hwR^|Ejv4HXaJD&cHjp zWd1u||5y2cZ~k9JDZyW&{|^-Z!TGOJ0BD&@QiA^sn#`sBV|5E)92x8%YUluGK+Ar8 z2-ShFyZ<@=y8cnT(-95mp&Wtg!v{J(gzK0KsWiIuAGcBxm5^%kardt(Cf=y}K!IgNKVs9)@hNNB0*D=yxbOv?SH7s@?1_6xc$KJ?!!NIuiJy@=zE(&HEh!i;cQKiBb7?=PcI93 zaYH3R{sP6Lx2(!4TR%D$U$b4Z14r_4#KCaW9KpDW6no;n-%0UT8GE?gm-vnXr!+Q9 z!W(c%lk-U>+O&(+UaP|C7Pn#bi=M}HZsP4EzsCU(<_9^@Ki8w30qN}wWQf6mMDC_i zg-%tIC+m}69hfW^`!J?@Q@_+q@e&P-d!~=Y$7^hVfHn8Rm2-T9)0uB17J2B(ZJ3vu zs4IS5`7z6yOl*V8RBnAbXPx61i!Z}u3de7U1?Y}E#R~iO@m|I-Xd$5|iRU4NB_k-d zH%VG+FYpOCS0gJ-`A?`{6#U>hwpk(>i9wroU)z*BTTCfO^Y_*{>J|;m|E%Cs{6od- zW^yo#s-VvU5E%(eBHz!Q*(2o33CB=Jj?*`ue}avG=>%g>$t=us6G zWu*erKU9dLBw8i6hB|JwDTEJwf?p+Ha0Bxx{Gmtj8qY~Qw(Gdi5%!AjAZiADO&SP9%SrKq@kTj(-^|%)Is|fq047<2+x!jsBBj ze&LcM0v$~zipc*#N)JUq%8Gl{*ZwdsSdK_kSh&nHJe2+;0e}ZX&8h|Olx#!lMKd3x{6_8T@=ETK6!4v?%lu)S-V*8Vn z`hb+nm)PhZ`~jx_C(58QPO>d~e#&-S^t3G$LG+e~e$e)4XIUd@DB3407{8Ztp6eu~HEYd7;X3jz5^)ZVPArlBXDHy&7Lo9dLAMq9M37k>6M^23!)8>5l_> zn2mWB=oD)ekG^`6y?I!~+1*aAp*CczzIe3Esrr^xG0#lgkOwzeXWTIu4x!{Xt$(an zZnBtZ^zstTJNJZ6kGYr2YDF=OpM!+9`a}{IdRIl{<5#S`>}kUNGA`4LB?_2=)es(w zp`)`6uGuCqd^EZ`oxgDL%$@I?l(XzQjhqy^F+zUHASaIDW=rwVhv;63uKx2(-@X=z5d1jt+S5$n7ZmA!gNc3+sE$#&o`CGXeB(!vQeZqLD z-~4Jlxx;ALok~cMB2bIAJ}a9R+unF<7yhA&!HB`X>GbS`87+_%928&cIwp{e+QHOA zf7IFy$W$wKXgB5tqUwb$KKX!tyk-m4L!IE-wvXvuNlj_XKFEcfdTc4ueTlmh_U_@E z>uDvYN6XpY%8uM2h7-az*1*W6C5NZq681`coOPOBa~N{6nc#w{xTq_db6PVXlak@m zGQusp)+Znwbecd24W;n{<0%bmY|Cp_A_rujm`^j%l-;)Z-E323|9(QU9d%1&5#54+ zI14HvgFknyz~xBqkJCaLh-FVdXwveVv4XD^kp=26lqQ%b8`U|0c7o0d61w)V;$By( z{PrBSN6KyqNl&-nNxM;-kSDOtH$? z6QldC74Z%I)?G1-)oydFhV@Pe2AP0y!!3?U|ik4)8q6wQ2(6l=JzcUO>5|86XTZv2E29cB5y>g}yO9dk$R z#z!vZhBI9}B9Oq}tEG2oGW4p}q&lFaXB{&c!ldo5Rr;{U;T^7(&VPduX9w;hw&yi? z;igf33l@mOACdAnm$gx6kHL-9EnpwIk+oB(3MqYF`o z^!KX9Qh~n3B`0&zi@PNL=!jH1+FoSSjcqi6h36!MiaL%`p0J2D=Vr3UK`nQev&Bna z_{kKTHT$*C_o!ZgXPTp2;5wQzHafD+hKx~FxFGi7&kK1Ig}6>YO*XU|Trlr9bAnDb zVDHYKhoG0B4P2WoJ9_P=(ah(GCvgbLlig%VT%+_5*ifBiEy@3&MSCXWxTOY8@7ica zdijxTp*4hMbE2k8wSDaU6SimiENPkweb1Qj-&<~rI)FEc@07gcm+|?T;}`9!g_#^q z{PdC{yqw-XHz;s(HdwB?#qnWDkH^0kdlqhzfDE}Hp9Qw<-Jt}A1svv_?O;ZPkF^of zT`#r8Uevk}iVgAFSq|nZP$S!1K4?uaPm0w|p;JrYPmn!R*_1^*TI~6zvsYPmFm}9< zpn$795gq%oy~wMhRrb0s9fVm`ILHlG>Y4W4nGSN@3mY=3cjEpWKFf9)I|gegK#5A6 zWLBV0WwAbhQMV|t!}-B3SXzW-q9CCYNj1N0?lZV*JNGqL0gWtpl$6*RP2cOg3{C14 zXl}=3NxP5e>i25!>VrD6AD?LUB=fK7rAhn8?Ba&T(g3i+PnS!06}imKgYoKJDqM5B zIVYRVM}-*+ujnfxQ`=2HeE0V~eZyq~7`M33C$;Vgh3X42Obx0-h3atU$=0Y!fou`~ zs8ogu>D>qeI<`8E3UkEm!DIDd zt$IPHTSbre*3%p-Hw41SFpRs6&>u!zEqnJ|apGyX#xsv&O2pYQJ=~^Y#-rxZr_K1W zS)ZXas(rNsWjxSl661wwLur?3?d^p|cbvl7dW15A`wOYVj~5X?KT)hJ@?6WpmC{k( z{Hmc8eVYyJ?)2){rb;0oG28cwQQXx%bLT=x%Z^vaHpd;5T$Q-6-)?>$_3qL3o87fB z{Yx}F3wmE5M81<;+1=$0`)>8_*kb2}#S}BQ!UXP+vevtY10!RN=G~1?v)%xEeaXVn zVVwEbm3Ny8RIy&nwkw7s@L_ZLm2t_XR3(=*n0&+3M-*9aBKP?YtzEjz!E}wyva6)c zex_^YHnTn-4P(Oo&o5lrCC-8-g5sAhe!raU>lexdQULbJY3m}h+6_0+lr1z+*pjTDfL!lSwcJ>M`x!#S_afjPJd*y=s^Jr6uqLzBo|)@F`hR)c%$F zN;7Y-Fw$@DpC}Aso~~FqOl*^E@;oToQ@9x`o10Wq=3QmV{5=Voo7d5hlh71cD{o)AI##rr-E>n&|AzhL7#YrT zZ@8cR-kSL1p&f*f)J`9}U4|cu&df_S9jh(=v?elzPgPr0xnbsD_WY`5k>l77X3@`> z2SlrBhe1N^yO?01#u^+SiLmcmUSbxVAadt;Jh zvXr{+t7^Zofu*HsVuTx~p1|&BSlXR-qzqwf{OGYR3prDbu){!?W@8rw|B%>jAF!$y zj+DY`wTl$GhK7R9j+UQ;H(Sp`P?twK9)9$gItZhZp?puR-gbIKF^%_H^VYpz`cT*I z`^N`3Z!V1>(I4QGgH4UKZ;N~|#u4~S6q-5sbS{}0W}?<0^{xH;9R1d^H9RMy-__)^KWL0R8MY9c?f_f85&_g{&Db&qv1I>%cVzoYO)+ zL51!^_ebDLg^PYldqY{HjqV~1Xfzx}gw_0wC&!L_{)OU%C#1=yS5F+_x&6i2qr-p; zmM$tgI)NL!OkadQUaP#*aI#fvk2{0rO)xc)Lq?iIo5$g;&B_`u$+qi;gPd{MLC0zL z;m<~7&4U?JyM-mCHcu%q_+lK%<0?t?BO*gC>9EV#3O5+DpZ~tw%SXfMB(s1;z0rYd z8e7V6ZGragy%>Y_r7DZ?_x40#B`2hlWde_FZALyoYvSc*8eGlOA!hW{@F*P^BWg+` znZ)D#42D=fT-;s79r<$U90=i3D8Pp6jNY3waPPL4bdo|d^D$;KifM&K8rgHWW#pPm zckSZ=N=Cm}lnG{!5zwKPu~vI(>H5}0-_tEF%;H>qekjk6_BKvRg* z?cRl4vP~+4I{pJPhEcNj_%eMa*t|boV5C$Zw&ssA_)6tFbZ*J)bn|?eWH4|QYtbF| zpoBNvQABr$3SX+7tAD)L+B<>kpfkUl&va`Q$HqlHBfu9UUH{Sx^<(>S#*pBi>EsSA~ldP?*4S<<-QbtZ6#X1)HMMLaUtuKdudWfqD4K#2eVul zr0KN^zd{?NBsr$5kqHg1iHu@Cw=P`FwFSe2UJWt6G&}29&VG;M7Cxra|Dx^tX-ZkSDO3G_DxEA6hSb*18{K&4?giqm$za`;I4eS5x5jsEEY_wXx4y~w>a_{Ko$ z*~{TFL$(D0EJMl zrRoehJ(yrA*|u|1`BeQE^YC+zddVMWWYggbt7nNCvd!9sc*P7km!YK_zKe@=BIRpv zP}RtnYOAhF$RM(=bXpM^YYU|-776a4NhuCrcnSGdX;`D@C9g&0EiY?iZnt=^btVuN zvAZGuvDkf3k*<5?NeJFB+)#Rf)s+Zj&EXgVsi(RX(6B-#=@)LjN_-T~Oxx3uVp0a9PWw+l?hQhyE3ttI5Y}0`afrT(1o=`6n z2Glu>Cf*WhaZ9<7aWP45bjto)En*#T4}R^m=0RJAA4V|M$y`}{*cjVlZQ~KVaDXX{ z<2TM}2+6gdHbh5&S)O;i1&x2w5kZq=qei!!sx4cFmTFhyf_rUqPyamK5sZLzV=Y$V z+B`7OF^QpL{aSMLG=yc1EUEa+1s?u<6;%tZ78s68AgP9btvk5J6H>+u@g6gUO^vXj zr^wfy1+qE&?5~6Jj-$Lw>RiY4q<1$bR7xM#Nu`riL(-FZbhWS}$u^aft8GlGVA z(^5T|r23UM2GlKmKnc6vOj>P%@c7meXbjrv6Is;R>v)(e|FSPH&I;o)AbTDfaDsv1 zKGTNj)>C)Sph7gHstTHNnTF|H0DNW|-4kk^Q;u+Ww<)3COLPK!#})w~)zl1UA*Fvu z#ZFnj_mWh1g7#{?w|53I7>i!Y_N9C)P+RWiD^*q9`!0saw{x}29y9firep+!ilD8lK`RwR0pGtnX&!|c~qzpB?Qi!Xq z3kQr(mA23e8$X^OSwCV~OE4}(ZrqgI7fO?{Qu;{8fb5Of8Cc^9BfXr+su)3Hup$^U z{F#2yF-cBL;aBh<@Py$81Lir;*JtXcHjFwUEdHC%V+$Q)G|3kXYg*!QVZG!%Gj-qmh;-^#OqRt z&v-=!ocSKN)&>i2DA<3^c`&Zty!)-!WAo=V2pmOrB`(7SIato@94gXqy<07r?`>~o z<2MAo_Uz(#5lj&AJ#?o)s~`d=wED(>vsuH;?}(;|kBNN2eZI3dRhijyKls$Ws~8nr z=~c*v2Wtg_zCti}oL)T(RL5&tVQAWfqBB5v(G&sGN3>@jSae37Z!1R9mR4N70$SuZ zs_jms+~e7qLbWYgSIgCsTOXs$J7&M<= zc`*B6T465|gWUU4q83F2NjocO@Son|hxA+m;Lq%<2Pz`$b&d@Dyg4w zQb6buef=cFYmigIlQ(3#RG&HRIOrHtqaiH{L9fTpz&-?yZ$VfzP8O&Ud!tNfiwT(X zRM%}68KYUZse8R>iFrOlghP_Z33|%4$GxjSc42^zN^GXy8I?JWj2@y<(A|69UfG(J zR%}eH8z zfqQ9ERSbup)jJ{~Z{UE4la!RXv@n!{I?sabpI)RJ6;rRzw27RVO z*7szAaOXBo()A_V6$GErY#jYhzMG;BQBtB7dDK6pP0*ZIzVh}OeETIC6qAwt1?Y_`fOJafFH zF3aoH(M}5#DKE6s*6G=Dq*T$g?O^vdQ2bz~+23ZdXO|uSRykSk%M`dx><$tYBUV(e zOVxg&y{m8mI(B~vXSqpCMK&WU=h6b2j|txF1fpT$pxi}O$deBXE+}tCI0{Ztf=XWQ zJ9-3I0_(6zCqW$|LqTy&?TWztmJ{z7>;N*+Fk0w0#()+PX9yn|6(fY=pvGhG_&z=% z<+HB7DO?W)kzQWj6Q7A{Tq9!+=q{Jtuj&#RnXR^QOh*n48P2@3kF1qFJ7gR3*z8*e zc}{P5t$OICBWngx66JsSJ3O~i?9*UM(m&DV2jf;6K6Id=Ux^3QX`)!s1-`KhezQxB z^bCQICjm1*bW|H7+Bo&i7BIOD<(g~IGGpad%m;Ml5Ln7(CgJ-}OHJzIW6@W&U6qCVRP;5OJ=8@Z$Aqp)}z$QnKHzvV;K_mwcnsw>VzY%Fw10m&nc!f zF8}NopS9&Xg*p84b38DeAVwSl)`)7Bf$c{&A_jmgLV4x963Pzx)!o_5*tO|MuYE*0 z%I9PGEb0KBhTWWLmMk}G&WA4oJM^QEYaPZDj-|)%z3J3bf7YV#%3U%`$y3yot!J-{ zHM(k~DQ`=)n^quos_0NV$Ep2CYgLbWP`$hD8`6HrUga2uB>Ob!d>k604J)7O==)9j zRrSu(?N2R_Sp*HM@2g`tR@gnTqmFU=qsFe`53_gIJzYL2kD1mvK;=x~sluxHK#&;Z ze13)}go-&&CKlorplijFxy0Cq8Q-H4jncg9+()Kmi+dW2mlt zV)E29*w3FiaMxX~*?=oX z=q@2EWE$2fE1UO`j#{ljpKGaPPwy_+W(9a;8tZRrw+d{`RrjJ0P&b zT>LjbJR4+%1&&-+Psf&gLXD@5E>|4527zHRB01>J=!|J=?;+c+!v5@5mK^j<^NDbv zYEFY4AcuF1%lP<&{%57=A)VGi!l}Uvk}#Zyr9p79u>Kiws!7#7ejE<`gEOkvVdXXai}Rf_KFd# z0qK7UqyAEQeX7B{d=|)UV6c1+GfinG?j4Kh`u&Y5ULf+4VwaW1KGm@4mJC}TZ(B7V zoq^Pv@&Oje3Z}GZ7Yhw<=6*u1cC;`wkm-SEsRhEd4|Oc3R!hfr2~Q%h6n?2#Y9p%2 z?-9HL2?<7Z*YR@AzSz`Oo#hr6yq_K7NYt|34T0@(u^qjY9SG4kYzcTNA`L|Rv|0ju zVMl<;)V()W1fzFbOw#Yhv*A2bCa9NYPoPK0x>Zv;pEVQT#b9f+_$*ivSsFU!iqeHj zx;5!k>S63le+573U7NW5bz70h$me5ba6W#c`!Mlq<&`M;7vxa=sv*XnhS{KHChZgf z_(<3!BvA=F7X_^PaU5zXJ(&};5>}?gnz{1Z$BqeM`)Qd|fTxF7&peEZ3b0NDR>*`A zh3^nhK^>N=u{e>>@EfRtBQmA?d?urW2?rZ59;)B4&pX)>!^oYY9CX+)=0DZ35B!jr zy*SxmnN>d=0wQ@|_e9F==W{-@+J{SMI4=<9@xrc{2X3zOOZ!dZ&>7@O_mi`l{UUq( zC58NK8h95N_T)eqG6c@s5{S!{oWxb-ourI@jutl&3?nUoapy1Z5mP}MZX+w0uw#{6 zDP|s341v3Y)qZ=omnC*TpL?Bm+TPW#$XvmRug_JWaLMAcepB4P@+2lh&8QvC79eXH zfy_7YGRFWbrFP*+(6M{kj^8$|%+Z3+6LT;~@fZr*3$E~B+JDcyf`IHzl+F9}B%ULv zE;b!x<$i1S_Y-HH*|_(cBqe+G^VLtE8py4qOL2uX@Eeo)$3~aMe?_s6_nSqm&x`#q ziRk`Y}!@GwRKD7An{Bkkm#k|I)x7)~=ZNWK>$n{57sSXE)@)v4{AeW5J2h}#ci|LM)DL|rP#H<58X8xf`99mLC1s^uO7hI9Z?fDL6 zqVZl5aQKc_=IzsZnnj9gWek%Aj5%A+&%(7C_(IC8Y(ufKCvUhqUpglcUD%dXh2lA` z5&veZbo!MR9$i@*VXOzgt$DU(2|bwg+u|hLGpzvU7H*ymQH@62Uupl^=&k{JvnuL1 z);$}1K3|r%dFVX+KKD_JcghYji{3*7u=es*S=QhyD2+W#+EVT_Yt$wkt32A!7 zl7UwbJP(AD9qeom^(5sTgT*?~#KT_xmv4R*T=_hew+9tZeMvqdSd;MDyzEE!w7rX7 zCE)UB2Ak<4_9t;^IJ8)Azl0tzLU>^RRn1D<%?#M;pmXsUTGyX-4|2%RUg#-Bs-Adn zJa&)iI!2o@mYNS_&Cg(*#7dYWV17jqkNIeE3D|{w?M8L=B=!#`NB!3U$Y>2?rboR)0U)#O#c{v24a+h&Mf2oHPUTd)Gm;5*a}brwJZ~ z5gh(sH>r;CKQP?d4_${SkJZxD1X>J^cUL(|N-1FzJ=w{UFnEUFOci$fAybggJ3h1O zVc)AchJ{o4i{xFUlEs@b*ubu`uHWP~RoH(~8~mS~pYCW3!gy)<4CHup%I@lx>X4_M zZdCwgFwC(kpu>Y(uQv4@ZeQ zj%4m;uC8FFU3r1Wj+8Do0GVgp6X-8rDoBD4Dt;_xSm%(G$fMhXm_m6h_CO9Of+QqH zm}}mjHNx2&AT4Y46;JY&VsH{MUS`KJ*3AQql0mwa<)LU9DBX?R_~y6uMVk-DD$BJv z)QT(k9KfdT4~@F`#>l?|$<-bRjmWVYV_<`yHyK{B4J%q&5Y+6al`DU2ibrOo+V;ml zk?nVNOWyGr9R})T%+{{jC3(%<9VyX;PO_oIo@_)t`nT=y>1|P zU|z;_x||sT(G1?5J0TAcV*vkqf?SmZ$Tw9rHoX^Fu96XA=yv?E7Gbec+aGQSnn``X zxXZW&n;uk?$=ZKY!#7MUK&K?qjw77^b-aINaPO^5ULsR@K9d}(HASV5&XH*7K zJ;~2;l1IS$m28*oKVzE5Ts`rAZm`;SM{v70ncoEw^y~*fcF@C%jCu5?{wpN_wA{@H z@Plf|JTJ1ukq{+twQ>$TPJhSb)4;tlv4To4510cDs#=r&J6%i=@)aNsDNKC;2wDK3 zv(Zv^Xz^`;7|~s*p7BmDgh;E{g9B6mbp*}5nCCEW2_O&f{vF71;y^PyooUT~qG^%; zqG`>gM-l%f(()HsVp|D7V@9He?l+zM1s%)WFPfG~g8RpR>&0KGGP#*wG%b3&{Xf#Q zG69;_3rFEAznOf0VcJa(46^ThpV{x&8$emei(fP?H}y`!-g2` zaGm3$-uc*s2%4T{FHiDTnXM#$brmO@f%uz!S;imgUbj8vdE5KCty^hu^tC?aw^z6L zZ&ZqPOAr+{0Z268e*9k~+aG@45wz>c++6Cko^sMzNCa||UHe4^d>6K8P=y+M;}Lqv zH>31;*7jbvt@Hs$X0z3!l=ZkFb%lp{|9!jrP!D6Z|FIti10a>0Ipd0;A_7!tVb~DqW=}#Kg|F+nKx72M$3o zs!UxEL4oq5Y{rmWi(9Ab4VyNqNcIt2L^QeW4SLZ)E~a27PY_CN z`R=I7I#0X)Or3d2hhA-U`_o!2P^B^@sW>};QG4EfJpd!6S)(e4u$5SrI>&f9$j1Ki z`rj%Sl1d(xaacA~P6T7_ijo+5)sF!oQE^NS({c8O!sx5!zGEfDw8n!y*TV)MEjBR; z-JFiQNr}52`OTmM=y9N9N6FjOY z&&MGmY)niWHz-l4;LcEXIBUyxg@rbMeO?j=X?{|Vue9a8#yh|ZIA{y1A|6cMJ06YD zrGFSqQf!();^ELBYxmF4wm<%8a-%?ASj6_V;j|l1TG2Oztq`T97UQOz-eV$lOT$oD zjsRx}XBFR@moUEiTWVoGuJo0Mb-;u?oT#z;d&;vEUpQow-OLbA>eF5|*^!ASI(RM4 z8A9Z1EKf=5XLbGA_1<^`pDxRcs{5}G>bD}yDdOZ}vZek1Svlj4p383UwD@X&kxD{~ zZnAN^#rjxXzZ=)U(f%|CXzBk=2Zl0WpF7pj?Z?4geudusx3$#p3;S`8mWsV9a(}!S zzr>LszSy2~Q7Bcsiq=7}{ppXcr^2;&Hi>i1a=++8h(L(RgqnX=xd65}N;<`fj$t}& zk=AtnnRo6Voa?0bZWJ{-XNhEMLA`ZZiMEW{twc7Oarcbs%z5nPI^z>%fo8eahv^MQpJP@FJ z9eT@||8!64YIl#~Aan2;cXqIhX^;`((P;TBi%kq4KXi?WV`D0dXK!tc!nYQ%3}gGw zmW(Cl7zRXo9!%l**gy9P$+uxk^-`sJwAYonEF3(G0{nLURod$=UuW5eglr#H#t9E6HEiGIT|)u7nhmUjM^`! zi~@mJo&4!X(^?=rDXBkYfEK%W7bVE!Z?-FU0pqKWlI zb#F^_dBRNu$B8U?QzK-1UbmGs5O2B~ic>U@3f+Wo9SXO0JbfoN-Fp5!V0&V@O@mX# z9=a#~mAs32S>VWGj`e6C^jnF91oo{cFuClI!Wt|_K}uelqqxh=>Q zl6mUfcZ>D!CDHxbYp*BPR~+W@I<|M;(Jg!o!57{gYMfe3=~;z?t$Bt-0AfW-l}42Q zyfb01S4hh}MMR|XL<2Pdhw9ZGrW;-@u0>T);UMii^d$oLqNWK;1 zNQquj5Nto5ZG>+BEvZZ-D|tbu$Mx>wL3Ad^--bxsGSORsh+V=}$(XLFKzSen$*_Ou z(tM-@s#@G~VGLA8H?uKOrro?xvuD~7Mz)^<5Np#}m-8IHex2K%a&1M}v~lh-=HpKQ z)=f8m>N)-wp;>EPwMUlh`TYM72$%F&B^nD=x~`g?%1?t-VY?97xhv3Ey{C;P>u% zQ~p7!#XyC!P#n;nEed7Jds|lbwCHWQLIT#*$9m^AAaRP3bm5oLx3R76uP!s)y+A=r zX&5_@7k8h#0kD#KL_u8tSV;@fa_=JZYHRP`l3JG$7b@DkDWeUg$U)JK*V@+v9By&p zOuqp6>bSR5Gt1uMKldfiwR?*YTv~MwG^;t+LkiSVypgpA@6T+8D1qOW#QVRpo^BQi z?Bw%3YOPG~`1amH0aUQ3TJ3rslvaQQANuat!X~~xfPHzQJmS8*@#dLe*(>1xZVZ)l za%$&_Y8!LJR@Pr1&`Wx5SYzrROh}WE1K`!N+fyoRwZwPuSQ6?a7#(Z>u0>*;+dKfI zQ17I^86&UnvoLp3Ab+&&V!GKbsXdcGC38A%%-#kh%~JSbEtEnuP&foWskV_W3YYv? zIB@z1VA;6ZxdRDOo89h{Uu^h7zmKWomsqw;358N;*!NGO-O0zEHnqMSdJ~jZRX_F7 zDdgY*+ck-OwO@)Sdp@0iR zTt?ai)<5FmkTHrAYCdT#-aaE^M(nUL-@Zem%W7CThT4=nTC3beC70@#a(;eA>2+K$ znsi=@`-!(arWE0A)`i{Z&k%(!W&6+B9Qo}t*dc-RFvJoGxGw0X7RNf+EFsQM-^@L2 zrQPbooyka^=88afSEo?tG2`SBR9wIJ2Hv+Jjc@2JdhdwN{K>{?^t%Fl{xMia)urj| z_Q7yU<>3>hXx~0~YyC;^!u>r01%HFe<9Vi_^Uoy`&1;uxqzs6TTF8`okkHktfc9(3 z-9IhDbZ5J0`gw$d+o&K1w1qjnw~BggQcSFEMWWx7KW1ow-yt2!=nQHV5_o$%=Ac1E z{%s1qBkFQrdK1;{H{Y#f+kw@QGHBse0d=-7q$NXgfcq;(NV=@W$-LSN(R4J5!XmDc zy$e8WmpC=1wtDWD3ikSAd{d4GDizS+V+0ivRr!=STd_??t09WS16wa`_Yaw{U58~d zGOxe&ly#_RAYM&ZxZG_{9w)?aUJ)M?+qPgBAFZ zkMWhxWiAAU!xVdEi5TJ=N!wqbA8QP^59As+y)Y{|)P^i>tW#z_Krd6E*LX|^qQ(7_alI~drQ_%^nEb$L80WAz0Y)&t*c@OwSvg+0ifk|0bEno zS5y6I&spNUliqqV$q<0?l3}yb%r@;{Ish^jkT^Gi%{-P8J{AJZ`dG9Rz?)xuQx)4t zw^ta$L~U$#`5ZzWw(4xfB^a&tE_oi$AFsKv*g5G!ya{0ICn~IQa)&hE{&Sx)T&Tf) zh!ddj~tm$(YRcx|uslKG*v8<<;d3PJIs)iQ7bGh|z zZH54=YKZ#DuBY#Oe*?yfL3;ZEw|+&Ll#om4N>RibkoT4Hv+nFjFg8^8Ifov+W{c=< z-&*~$!oArn2=E`j7MJvPMfqt)(D5$yO{uO;xi)hT4fQooi7zknQ;3!eYBhg8j?QSR zu_*e?LAp-UFJxoG=uiJfI6J{pJ^1cS7_OM~gl?u`Ru}Uw;C_Fxw%i_-?+@~>UU4Ai z-IsDVmnrYSpi^O22ER_>yAj?ptZlsu;YQ<5#Obrc%7HP&yz|(pj&?%!5?LbmOioZ zk`sCE`tPs1A1j~D$I52r8I>?k_=jKiC_K4xlO0Hncol9`koO(?Ndb1o_WF(>Qn8SN z5_7O|b>yJB<@L8Ph;w-K>tWdT1wsvMza6m0mt)v->X^8X5LFR z+k*8Vp#gMNhbKHUv-BX(m@Ax_9{*wG-G^JF#TC3t?*+KM4(R+E7xE|;a{Tg|kAAeZ z5c_`f6zs_a7;{)`P$M(F$hWlmV0__^`s@gE5t21<*tjtGjF~zNtU-xxzwjo z$+&s5&xL-{+$Y-~ZRjy~WXcx$IPjb;ZF@$i!K_l!C4sg-1F>TpI>5@-HVy=}D(6w_KV zRf{n++ zZ)@+hz020V!MBVpW8eaD)4Jz&EOpPhN0oD(+K;X19X!jwY44!K(5Hz>DLSKhc`fH&~Jdg(?$m5*a`_;ESSBK3=|9ej-@a#D16M!PDwz&C*McK6kE(obOfcz2Exex^+f45y-5D2-=q#shBK^Akj@R3g8Of-T5Q8 zz^z(Wx2O3UH?<#cq`spSH!f#lvg459J)wh^mqYv}sAiwN$v+MWX)`xP*f&#lb+;75 zLq*P8;*l;)(^)j{v;eH&gwT{mG96I26N>I+pO!;2%0j4%Hs7I>f!JtQWw+_rEuzL= zJ5#Ty;dhYK_Blo9Vb$}fM@Y_LXUaDQ66&JsK*aK#rS=)MkT_#JikxGr z&2kvc0M2Q2Cr=z3kqE-hG-$kLS^9dCdnEu$!*u4AV21daTT`xi4hO8^iXc{(>$S;h z4YDo1VgldMn}FFQK0W@0hd^Q6R~)yE4AtL^uO`~5gokEjFm1hP0ECNN%<0E0I_24Q zI^`}P^wEGkIe1moMR@mS<5R<~7*YebRyL#xTaji#E|rjdZ^Igo=Q9yyThEE&*c5!_MW)4i@rn2YVGVgcaOa?yB-GE$_2FM zdzb+p$2+)&Qxbhx5;ZAI?6U$raIbgpZ;NhG<&poeMg}CuM+HqMM(-5?zsa-7Mn{@1 z3)4?X7N66pAA0IN_WVk2*^5?9qfI(I*@D+;u*27h!E<{doAts?=HYCA2;rI-|BKWG z-Nks?z+6fznHkxJD*T$ZI@tZfV@f1UH+kfVZOsZwv7@UKSq2YZGI;s9^GiFni~u3u z+T#rPn3AcK!FT zGW8v8ucr6Dv|f5EQ>J>^kDpcKm;KJ3-=_aCu!_*+>^DHH@@#pEINx6@g3F=3eI{oo zmamSAc+JgjGIU~=+`?iCkOC5(k5L}6Pm{W&U(*bGUkqT;CkIx&)sk~$TVy;4%T$SM z2$Imzb8(b(qII%JGu1T9)FY)4$kLkk++Qs49=k6h{2FJq8yv%3@Xm3;$;FOocD5is*%`>=NJv_doV*KsBByps_VO+O8!8)*72mre-+Gxx>-f+7cTqxxjk$^Cb}l-ZYW046~7x;{dC+{UP=>Eu0I1SjnlSx_bZKGE6|--PhI!RWRf?HTIMr%)jt zx*5CQ9i6cWX`;f@Xd|80hU4k_4C|*o=A52IB5Ju(rP#?y(AUGn?*9H~V(sRJRNv_} zQ31ko1%(p?m>{`)$mLd*(AT5)2verSB6ww8Ie1}S(aB|FjPY!f;v-5x*-O?y*U6=u zca=T4VwGTyh%n^E8o@GBhJsgUEE!2MAablY^>U56YJDXu#eS2=30TVqOXjiIiB%k% zj-|H68;M*Om4=xsS8y5_S)g0>*@qsHE!d5=S7}f~96%Rt#R6%`7!cWW1pT=;SGg9x zwxMnWIfRCWiw;t6cn&6SWV#2b>7?H0*Fy>qrtnm*AiFt7<2^m(%;KP}=So9??2f2*@3{@5Ne&dId)Zaj3fumNtr zR(#*(f+-K7*ZsvI-7LoZcubG>eH*yo??5t`V1X`7R&kqfE~E0&yJ2NTUWOu|nhbus zV)jwHWEL8_+EHoTdR;j~!k3^U4v`WT&8k(y8eHv?tzKl%CAYV~Ixx*>!cbu+)Ub)!6#mCXPYMX>I;=_2(SYl~~UY5No=E*l4eUp>eM9 zibGNhQU7Y8{+i8^?Yv!6@0CKy)H#5Pkge+Azy}&`Vv52JMUMoQx%7|n0&q!4k9SGK zQ2VR$ea2GXp|ukL1LS~nzB7f>bCtRi0>hu@03}~5(-Re6cbaP(tAHTbm~h>~ELj-( zw#5U~b9@)|oc|!S9xg>3P(N|uz{B&Ny|S3J0PLl&_yFE%I63(I%3H#8x^WMk34p-* z)r7Ui_b#++n+ZUXBLs4tfZG+lH}p&N9D#@gT89s&04&ScM$hOknx2ycU|G_)hUASzH;vW4)kD>CO*y4D9hxrn;NWf-y64E%8~q9v{~xdBci}w|2|J}E4lp(++~dP zu&u4G!Ds+hU5)Ro2V>@bS6Kk&^IRJ0H|^-mr&x-_!e7mqJ{B@viA1sNeHa^6Cpf$* ztS^HOJbHfz6=J+=>L)OnHkhrdPmQ=fTJKsm8WqK%WkBOLGxc7-Xj#4`MqyzM*Z4t$ z>pJp1V7`}sZ$2$UFEx>qQw8p|y=NXfas`0(TYPg_3#-r@0Uc3m>`nEA415bx0aSMy z+^1}Ta_{*5mzMAyZiX;55lrAJlb=PfG5yVzkFsd@1-7cg0Jo)BL${KozM4oi!|A@9 zExlotC_?^=lkA%sXML+JrR2^VV;e%j6N$`x9rbgldpRRTDm}$6Ym)9RAs3}={YhC? zncK5GBtPJC=5~VQi}cBPjgcN_D16mq%fQ91Bwv1p{&CXl^`>{x4VBj0D_axlvn-y|T0%d&+*=^~m&Ff=i0*X#Hy#!27#t>9W7{^{}qG5-F zp){S%yXzavuAY78o9L<7W?$~jeE$7CQVOJ@V+EC?;vzPG!on2i#a3Fn*h=j6@Kz2H z|E8AECRv;89{c8Z!CVggySB6_3G7Km8EOqClbHs9r`*{tSCL>pWcP~_TP$nOiyj+z zDhopAr|-y})mA*w4f>Zdanny8)Grmj*>QA6C~*k3+Dez3gA86Z3MmaVMHIom)Vtm= znafN~PKQ=lYGg>2nLQ~oFw)=pf?{8!_0q|yCDkshB^~*=$-~Ytl$-0M;c^@3&B(16v%Y&8mporGrN^-QpiZ$`D!kiiF~7(ZxjCtttOYc3%roqppzM7@ zZk?t10_TZ4p6WjYnqs`rup!!=!&0{{oza32anT1`ankr17Lkxg&bma_kQU7cx6n~U zKBHDQrlw1mZd(H!d7S(_m*@qF%VVBaca|UmiP^2{2H-STt2m-o1+9^X#MCz<1zH#$ zcZ2f+^^+`8dOj*ru?R|FfK3xqNd6_)umY)2)jE{Ut}-Q&RBN=Mc*r~fkPx7SEt*sH z@5;(ZjUTL80!;ek{RxT|BZ1_Zj?>#d{`~-xel0Xh{T`!tl6*l|%`Xnvl{t)=RH{ZQ zf|67VTvI%>6#iY0XwkH7kau(uY%v-Za`oy+(Bi4^Z+afZwR*&fMUsOL>{7oB^(27l z4=Csc{|a@kpfFkBVXYrH3irZ>*x4+R`FBu%RK`#&naDEksz20X%JeHps^>8-W#=TL zX5F&u1Dj^u<|Io_NQFG;8w-OwehjQJ$(Ou&BdNN$wB(hTknwTozkm2pMG4wLT zFqV7^Y2|}h+}yI6y9Ea%R4P&TgI~o7L&a}i^Glw)nGvq{lC7p>p3Kl}w=p~h*(vxn zi2+Xnq_+Rv19){z@3s617QtcIm@c9vnxqGa#X&D$mOC;xZ*Fe+N(8KM-ZbP~=qle< z4=hk*qBVO*hUXL65eNY8_bo>DvD#5>_pmIQmvvb+ZEl_sr8{@+VL}t;1uxER3IyO& zdT9pkUc`t$G$7=c96g|9gnX*@@3~Oe=QG!86&B=gsrr|E8nzi<094(GQqwQ8p}Mwy z+f%b}*ICxBG0>3lPu(~P324)l0OZ#IGI?^x)SD5v{CAn#^$QFT2oTTmBby*kVsa z5!d!8Y0`!xDYP>#89%WOy4T6Zug7|eH7az2z_ZwCmemfRc`v2!BtZI>I3e=+U;}lO zyAKKD3o6Vo9>waTzEU9zBDs1w{NFG*NglWaF5BK>Z+y?H|FlI+$56dN*fe)Qznz7t zA|hl%C9uihv_@{0wQ?ikOUbQ*`IbWUs6KhohyczBCk4dmcXl6=Dw{q?_|A`S zEq*>+h0hKb>M{YHOJQxn6rahH1?7RuTAH^`r!&@u?ZR9#>zNYO4;xPowt!v-)^@o9 zozL;+FCt!FyCGc>ELkLp0q)ZcoBI{mJlMa*pnTk0Ls^s41}C5LSWL*?%Mq=2EjBoy zR2G#r8$X~feKC4HYy5gchBQ89J0odQ>{;;L<%AZkO+KoUXeSjQ@R@xb24OX?U>Zu} zVYz&^wGaaO0XipiYDTd*>h}!e_lK-6m_{m%tjhf9VpZpCbcB`Tm(S2iUbO$w;quNc z(J#v~w50o4u>kl{l8?Q|2HYwV21m=Oc@5CeyBus1IZ(#;uyZZ}eKlrv4uh8#7JG#2 z!RZ;(d43>hNaHxJrV?Ihqa)*F%?(eX=N^*sn|`OhWjU(s3-{$Z;efm0jF`AX`LJRqH|(>b`1m0SH%M`_cWI<$TY4 zi~)@aARaVVT+CH0JQV4(HdBP%7rcF?KLehhuGKT1E>)KKtSTJuh8&1Vf)z^eYor)B z%dqoBwj%>TFkOC8HIpR~vN-$M?lWYPO*VOqH)CNNks+Ci2%l}e7_O9M&HPhkyhQ`u zo%0xB1>*-7N?U*yURxgi+0oNzN*nv>Gr~N$Ab@LSGbg_^ANXKJUA@vFkL zt7YHeQGlF6bLV21)-ZABO>Cb2sr3wG>1|J{!VsEfmTr9WiZLtBbt%_-Vt9)z{DL>= z#PG1hx1XwVRrVF?*DZ9PyL9-og~saIHQo{P*c)LoiFb=>X$Ismp+x%kf55K|h@9z7 zz1*b+*NS^uOmFhA6hyR7cO`O^nRzm5+|!C6YWD5JE+w_|aqE9CE0SYa6;l;wahYcT zC>-$!G}21)c`p6=SamAETpZq&J-!OU0+2Fr?v24~5Iq#Iot$RdX%vw#SB+ zR^DHFdzmpoVWwBMS|bgf_6*oa#gIR}HeccB2xLuMvT;eBK}BGsllD z*VXKr&T{w2#d0ghcCgnx5YyopaH3-j6Fr~jc3nzld6ND34j4G7bMKj+rtqsR?9p1M z#7LpWJTKb)`vKRljH^^)7&3$n5Yml42h(288&rbXn8eu(o*~#6`wX12S@>q?CHI-Q zHABq%wW~ATG=~mz-4L9LX1xCG_by?>I**Rwg6`6L(X4e&P%Gn=Qqxk&v*iyKb8Y>S zXK~LaQBK{>+N*Ztq$M4tEl4?5wvK zRgZ9;`14dkx(2H{{Ke@>1P65lyY@n7Vf9AMz_lk| zW;`M#jcswm0>wQyfhv6N)hzrL;=r*E1UFjo*)p|8qYUIAm zYxNil;VqN+ZpwIsbAEh=Gnn(a3C6{j6wWo%#=W)>cmtuO%+^T|Eu?q64Upag#!ud# z#hV%TvWIHnjg^>%^!zYrSkJ=&DEXY|`2@XafzHOMi+VHGKG$s%$STKv>WhZ0dW9X* zc8*X{lx!yU3mfK;2g5^;D9SQ8|ThO&FMOPJ(Bl`qBkG^B*LA*KU;96f<5lW>2 zW9Mi@1|x=1_X=Q9E7fl7OZB=v^VQ+UcbHIn$&=a9!O{zV`TB9JTzwumoZB2r7T&N< z0Ze1T8SGCDY!l@{vhwi}yDcA`u@mqTf^4r+7Rg!^*|f;T&0d{Aq}`x#O>Z9;qvR+-1{3)c-5ag<%O(4>Xhg02qvYy;wq@vz)%#oDk!^u6eX z`AFp`3f|m~kF5%(QxnI~nHljK^LDYU&Zl?$y@39y*|vqjUw)pC^OD0-7K9yJM$(!Y zqrX|z;_q3~B~@Wj^9fiNV5YrHPyDH^G8^@k@hIXyIect;KiLLzrycB{>H&+ky|3Dk z17SDvDFUDQ@a21)V(_-sVTU9E2gVu}lvY2yddOL?;53=x>v1d@lB*`;mJ174h`zrP zwPFY~U(|XWZo%_>7a9sSrBgU8ENU4%nYAkOUu?lL+-7z-GnsP`K$TVN3I_km0&Z8f zr0{X)XKbB6j{I<=?_r0Jja1;^u01dnl;pjVf5qGXX-9&Di}C3q327!voe~F&bhYGT z?mr7iqd`|XW?4_wOC4-XFTJq%km{(K{rE#RQe`gy=tge128R6_SS)5eDKA5qPuiHj zv04ZFq3&!;Jr(zz}xT zkTSC+q~h@c%o<{c7a_*S7Rwo8iUEdjD4NOueL2p9+P^l`FHY>oV#;0tN=cU9_9VJL z)kOb-P(XJ(HSmE^RS5Ovh%Y&{pUwcf2C%|eV)TvyfBvn@7BS#wV$Q$^%w>X|F1_b+ zYyTXH_wP4>?q`hPPL^M!!e5>=deI(D%{%-no&4oVPsD&ZUgzP;^81B4{`B{OpPBsC z2(pj7V+}osqrjs#NM=OB4h&hJ}BW3aH*U7XGkN9$h)`&aAitxR#Ag z&}HMIn#@k6SE>*qcc1I5ldwBJzlv?L%b|OLp`H}T-?FQSQyDKYbABF6;v;=`cLa#q zgFjXs_)@JI@D02%oAs(g@r`BA)NKf!+j#Yhl_w7FwB@1$ig;rS+X3PLg4iDY;RZWT z&4C?tib!>z&(g@tF!3kuFBWeIx~ABw514Br@zvE|u5fw>NY8+))hn$Bn*VUZH-VM| zPr?yXm;{E#k_V+$BPC`r;|mPVLH`XGyz8Cx>}wTp-yzJ3DCCy|`bGYT=-;G^|JmT7 zhyiZ?!%hvj5^PG`!3 zP70(1XfAgLNEu@)kb=0qiLy!g_e32ay%IAWwDOS-WiDV`SQB?%ELD~fNLi?#N!Xvl z$C>hE!}GC%yXX?ov^rJExKvD*KV6n><1A_S!evu1p)*#^Q6nX{b0iN*fy}j!YyvP#r*+=U{asw~pcBIw zWx{WI_G>(sX8##yV8H2=f3weDLfe&8px@*`PQsq-FTZ&C?W<`ZHvXIc{3W`6VgkAd zJo|4_{oVD`GyFh!{FfPB!SP7x)nCjo%kXU{&rZPouPBy9 zJ^OJAbzhdDVk~f*kHS*OMg|nPB?PvyGh~GXcdSxtAPOQ$NdjZ;M@uQh$n9nZ52=v2 z#5x}@vgw+j&#yiyu)M{hlkTU>F-$V1tZN}?^Bk+rW2tbm)Dg+fqMI3n0{5$TM3(S( z*9-2&Y>C>7@u5ql0&cU>4dtqDYX%;dQ(Kw&e&07-p&Q!V3P0fz@Fgz*s#-(l1w_je?yi>i`ZPsk<&Z9_RQ(_LDb?x1>%2~DWMDcKI`T2hckn3(JG4Kk zPh67)AsTQ6e!JY!pJ;#X=<$}ump{>4bv7T{E!TCWnQx5JCLDF|fN|C6D;p#J8`$mt z$PG5j@H5d6txJ~Vn8u#4IT#ySJF42~u-gOH1a|tKzq&CZA;<1}3baqk=6qgNGChS| zQGV#y9m=_E;|_r3B78Mtgibb8w6cUBOAeG6(?J#~)?NH<{P(}m^(}HgaQ934k$)Ck z{hyfG{@)OpF7wdOIQ#!ZfCdsg2ORaTZ0SEjM2GpG=2szwf`b`&7;>FZd99UY21ByRr3jB zw7Ldebnfp(>H#-9Np9Kba@>TfJ)*Z6*9vYSqpcc$H;&X)fA7iHKlYNyf5e9Mz&uM( zdi}_uZsP`D#0$UPWn?){ju1}hV{h4vd*ZqG2=nQ#K@Z`qXc07xdw0d~l)31l$WrRG zmU%btVjLvsIJ9JVY)v%pz`sKJjM)XBIKB_|)at=vb>$i;Z1_Ykm^ZtI-&@Gd_A#+l z0YecdLdWNBSbRcAQ^=oQfej5X>jp4pt-@E>` zlueo?j>&IxMeNxHLW{Jaxbw#l+feCGIAmAojWGRQi44Yx-M!cB$q)dhT&N&o+I}`p zIMg}uya+P{cV5+FjG<&Wn|7g4oQ`{p!wSER3h7LZ+3%K`SAxZRcsER@2VdT}AbOs6 zQQN8)lZ(5mKT*t}>0@O$?)(^6Y4_X}?|S$l)`KYwY26mePkztB?Zk?9iN75LUrboq z$Qx%_A{e-ula5YRv4FWKSiqlf9F}diDDBQ@uLugA9k~0yX#6{2b}Qk|pc|9J{1~UJ zIK=H*2F^-jC-qi~*8_0pYyPk?zqG)2)BoEyx9A_^d*jW1)ACwY$$gW1u+<{v(Q&j- z3)WM`W(ZZqyBn4##7Gr&F@c{}{P$;kdMN(>9)>HCp;j+r5BOtQN3H8hn7uw9G1xZ` zcivSa`0Tss|NWP~+XHxzP@e~k-%}S0{Iw_15Ka&{m&*_@>ShHE_^&!k?(9%nB zPHONp;{UQW>1F6;+q3D2{cx9Ty>7R#e5<=|AcNF!~Jg3dx456#WT z${ps!?1rxzVduZ1eqa)~(<~E`3H(dvuCiG>8<(%B+0!v!eY}7Op;f`A5r_k>+KO}D zn8>l@rbXzaHGdC;Uqyx~%+n@#Wlf|{w5WqFuXhjg6URf4iV~-df;`CjD+6Nrd~_P_SBS?^!-wc2|u6o?6$!-Wvfb7 z`87UWdgnZw6G9NxhD`q9oaqd6k5AVQ5_cwBQ=BfnnHdB17=rOM{3$uY*SuTO)uzQC z2(dW_K!`;Xr%@MW6IliCs@fX+wg(+_==g9VD)h0v%cqts^ToRwaOe9ReIm527+r(G z!xTK;ot*`Hcf+)bvu)IY)* zS^LRQ9*AR*8+yIkq5|G5Bf3`7hHnVQAm4EfPp=VL+R1X@Cu-K;FGdswbCwQ6x1B0X zg)g@v(f8~?)dzN^@;A1W0!A+9F>)Zm%gsN=>J7ng{XLaWE}wT*rp7AlzdiPRNjjWT z73zA(d>;OyT+#}y#sFr-2m@zbwm@_?CcAYw)uPMNqe94PPaU%QYhwEIARmFe^YUF4 zV?I>(ai2h@94K!x$*`re-7sC!+T&+Jvm*SF(0c3`0&;HsbICR_?O@p|5y?VxAdW}H*6v81gTnEWaIWS4UZoXq=t-Ul1TtJ2w|c@ekg_IOH8 z%7yqV*|Ke4(R|)31yNFt6tf*SWbd|^?VXPE`VpHy)k=%eS}KB;6z&kW4hHOu`9&TT zZ}?i8*_LZzATW2BMQi{+7z~9XLE+>Zu@zX55UV-@42y=IA#I-ocOY9YVKJ5r%kNM) z=JP(sh>zD@0p2rWq&lAMhEcPpxhmveM(o{5cEnc%bGk;NL`~E4F|>uwgU)PU2^zuG z_*ow6eA}V#?i~H-7f3hI+!*fuO2nq3V1sL#k!B|53FPn_OD0V;_M!xZ~Jx36hIQ{3EGp^uo( zmLu=*`$Yh~EZ2z3X5bd>(|{XNNu($EsJo@u*x5&#!3N zC^==jTJ)z0FXA9->X(I(^LqkIQ$Ns1(5LDjfI!GCoHIFPWp>xYJG9HP6B}iouCQF&bfhX8#J!2xJ_jK%Ar<2sL&X zuGa#`q!koESKD2~%^5MsO_tB6v?yLNGgwfPOfX6_QZV)TsxX?62S&tr%#j^vzysmu zuQg74&yNLQwy7EQ7$zt_(j5Xiq6^Y#kT@!1tgxU5k-d3UwVsp<(fmp($uPG~P zR&Tg~0D22Q^zZRYX0X^kfM2-Ix+h*z`Bz$8#dMcH`dTe{8^T`6zRdz2d3#gcvjw`a zTL^IRamcOBE}|HH<3Z0HG`p3C7uEW5q{uLaH$*irAuVVl4~fS6Oyr8tBca0b6;{fQW~a1%;uUp?@Fy8zTmil6Qs~sypJYA)hvg z>5*w#X#L?_ST}sEO<=WGrt|9jz;hjyxiN`+&X5SmUgIELR@it!&D~gtQdODzL}mQhGow8n z6Z)CPBf6WYvxfZ7i~Xm+et|@X=pOTWQ~85!HF0?(0^@wBf+bDSM%P87s*`xVgX|Sf z7B%;RO}}W4R~@ULtQu}-DR&aWKVEU|D;jtYTc`I{j8NZw#T!J9`Jizz-D(Qrfuio? zjOphzp5-7S!*&`HFCDloa)#loJ~WWLd1 z7!%Ws8D6k<3TJV^{X-cZS!2`Crq!=;(rclchH3lRjI@Th!bW5$1=Uk9aQYhu(4uUE z$z>eykg-#4f{w<6@P!s|VXlDm=^Sx8r*xZm&HIMb-5Q6_98QjvW5dke3WDp1J1iPi zT}&HkOf+Om!z(F%Y$o53(v1>cdKl!}^Rr?eHN$Vkq^bPC$YMgCh^B1*RVX#|cgm%Y zLN56yszM)bpyj_vAiMsHjoOLfZHa3VW|ARF09YsFdD?yAx1ew3EGt<%0(YO~a;n~T znky;vcN7?Iu%~h03xBQD_%*cU?nX%{X67m}_bT81s%Vw+VY?v&51Z}>Q=!nV#& zP>$}-se--n2&3s_mkdvrsbuzsqd%tLfmrNmr=Oa9Rz^zZERbNqfy`h^Y_~F+-vo`W zt-rdX8$~Mu<)IdVG9=g7=x$AG=5}QuAFBD@6Lmg)`S9DPrgDpcwsNZ_WsSsRfnf@2 z=?jE}cUUqkK>4Gt1#qo&6jJji*h@1ozW{sNF>L1d*B_E?S>!h{8>-{C=|DVG4Im*E zSe`|YMNO0pjpu#O)5ycj0e(AW(j>UK=^trt>5B_-O<*qUrSDBZ{?hHy^=eND87#FP zJw`TV@-fzEbXR3-w3QH7N0s<;Y`*2%0~2dH@wWA+Sg4#qs3|<#Acf+gWZx97=+n-9 zB-qp7@a6T`K8gMint39?BIhGIi*VJCEW0AyA|4Ur+)Gc8?@#94{tlKjP%#(eM7w%} zkH@TyJH+N^De;Pk`ObSn-n(JD%&orW-x1?KgLT=w^D%WWm2i27(vs3CWR==`)k6Jj+P*}fGF zi()2^01PCv6K-`URMMDb>TZO}#+qAO9#@dlmIDDon-o`-xXOX;g?}tcO}H?FBRNg9 zl@OItlmi?9Ow|ibad_;@b;Qa$L$TyUt4Dg)N4j{6qrz8U58s4Ff>z1lRS=(}q^DO? zoahT$9r_kucgx%YPJNxpOPti}QvuK>;*uZZbW{x}9f)Zw&mMPm1|P`J#EH?gW+@R{ z1*23qDHyoY&Ps=kIvs3~;-G?g{r>@HHH_zt$3-?z0Y_`e3BOXFC4>M$~ae@qsyKb1Jv(igHx;yfz*a8+jnxkWL2q#kNz!RqTz++IwH z#-Ty>`)-2U6sYr6g~y(+LF#*v{3#XE53s#ju9rZzp7%;Xgulj3JK(vt__;ZV_9mxC z+s~Z)Ddk7XdAJ5&*79`U-Pr$&J*~fSxAZ?(`IO(qF=2dwTTJW|_LaBSA)>iAb9ajx~rQc^JCszziDdQ%StVw$#G zTZ0~P(`>Bx%rh-As|kl_gqFr}e5qjid_8{i8X}HqX$=a6VJoj)ULn(;K zqEFQN6QQivUIKRg{<_)E%x6UL69IqxhY_&VYq1c+(XgxWZ}b?#(%AQUp_oPtL{2s# z>w~Ugu=0W(c1*54^3aHAU_pb!8JKXTX(U{LUN6$quaPAz$8zM0kd9|#m0n{Y|NO=W zq{wD30^RmLf!ILqSiun_f8B}n-J>gB;c-Z^7lxf%n6~vTm%e)Qd&%vJlh7m%kc>qC zTpie#01A`a;q|_;gYU-h6*^Bl4548&FZ0hoVhp3V{TACS51ETQVmZ#)eiACYPG@Grn56DIN9F7w?9faR$%wVOYxsYnf(I<$Ck75R{%6bEzJ8MS@SFFqD1HoM(DUE3POzh2 zg}%vZlPFdHEZWU2LR02TWitkJxiCR|I2aQgIz45;i}DTt9!{d(r`%T%SfQ;7v}zL` zK1wwHJPLr6UZ3PAo(t>qCdD7@oavPrt8P)wCX_+qFSpkv!|*4tqm7TDpaOE46!JH_ z>A0PDWe{tz4{#Vt)mVD%A--ukjh)b4d6OsaXsqPDqLlY#1$G3XoQNuyXY@!OgZ!+N zFC`%--L1jAdy%^zxW-hU4hSp}3JfWOVxj&G&aF3&dntlOSojG8 zb1LNNK3;nSyu(|*k_CBGqtacm|A|>9B^HY7zFPEI#P}Hj6c~Yx)95_H@lO-~YdP>9 z*PB-gzDz4*-&+!Tg^#hZGzbKX@e^x`tc|GF6=0l2 zoH2Xqg$yhU`Zy+=Z!zy97u|y0_2?=kK})BPGtZej_T?Wz@(m5IcyI4AOt9YY!l10lg$h~C6ElAWzL1fR<{w#A)X z{|b;zezBF!{j<+lL|Qqj$Vy(>Q^(HOblB}>9F&Oiv`h>dPs!Kj#KM<#NNR!saC z_%g`nQv!Y1_U(d*R3bdaMQA!(d$k;{3F--ykZZ(5(UP`ghRklPvK3#D!j8fE8TLV& z1*bAfOeKOE(u#+mzz*p%7Gla^73HLz{-__{6$;&cma30CKjHTBUTZA{2H2d0t2Mka z4G+40BiQL<+|q1+gHpsvBRBf53-T|HdpYRS^!dhgCX?`rT=G6LU^am+OfG#T@dKx- ze5ZKo8|r=a%vv%?p@JHe5M@aMAs+0@gh{#D{tsU+&ap*Xs{3!tr@*_NI^Hb( zUFrHD;1h5MP0INaHk!`!i2kJi{A5$1=VjZ#z}p^ATU2F(){DEZpUvr`H-uMu(5GGi z2}_X0-7P>byc^#mJAD|iB{!am8dS})dR&@`V?t~Lk{Xq5-;VQSIAzv?s>{_o;7Buu zm27@tYE-@=Vg$bd)M{HGc?$S}LwK0Z~2NG9=KhFp` z$iLbSb(gsRTz)5)%8?>t*^Og&lKE12HtTJiPzb~3<{mDG`LHzFFi(aG&aCv@M(_Maas`iOCml?#b$TUEwblD{UIQbaVJ(4b~K?b5BRM z=T<&l#Xcc4t8?B|uZRzY6!bm&PJr3dS_PN=0C}GIyp{l${gV$9Sar$-_%JG;Fr7iC z2U7#uKB|q`6hRejM<2hFdME<~KwO6kp|nv)Oj}A>c2i000$x2|THd4yx}}a5y05|I zV)dY^s1o#vh7W%Tx(n{9i|QbpPJzvgZ7FcLHC6HHcx|ONik?jcdxbR~Z+Spa2=o#m z0nU;O`ZL=K;q-RufI{QOmls1W=w@k3t7oOxF`oKY%bqWYY3>B=f-xSfieqz?Q~As4 zu8U780WVTZ45u38*U=!{o&j{JFz!Z+a6cmMqu!Wiw#}=kmUu}!Wtk1W;0lo!sWsYl zgW@6UDGZHzdcZOAdmD0Is=bw|nbps;ujG>QRmiO`=#g{eXV1Q)Zs} zrmv-x*~@hbsy0XjeF3k25fu5Jj$4R*$cSM}5kxqbDWhX`4|q4$^C$$Me3CER4Fjmg zq6*Ccj`b`h5d3Q_jB)aCr6-*qz7jj|)I0_J+w86{VOFZ!Mo*@>sJjX(9(gt|mO^>j z*#q1uclxy_Yi;TjonCals&w^MJ@dCMbTj^nh01tz>3h5*H>+@3J|G5Id_i2Ws{(R=HP z=X+l7B$)!qq@OCt?s2D_m1nkDKEPZ5;I;R4vdS)O(T*3Yz)M!dT`>f5{s1lv*Be|5 zofe}h6ci4qXscoVu6;LlKX7C{E61JJIvb!>Q1M(vrt{aIFKHzSak_1&pgp$on9m=c zjeB|Ok7*xG8ylkfWBWtvS7iqHMbO79(V{!e^nAmSMmc~YmnIyU-F2nH)1DlfH z#5Mu8(oxubUxM5%7#ATA%CqZa>GOl|R3s*f=J1}Y1WRaf8|()jTc9+(Z05+Y_sG)< zHH6QkUTtz$Dcj7qfib{Yq^1n8J6h{J%7uNdUq%MH8A=A;xnBaGfbS}}rio@7<1E94 z@P7KZA)>i5oLGRjA-c610tnpS1@N^BWpfQ%W0`Prnpn#R08fx7zW&HjkG>`wNlVh+ z?35(~kP4&=-^FkwIUvBN-u3oKKXlR;-A+i|42K)08tki__XR{UN!vAU^7l`=Oh>{N z3>)qwHwdGBzY)+pjQWPPBYN5mPwn;`F6;N&@>Ci*^8#L4$f9z*x;JryUDgXdjy4#p zKW3q?M1H)mR+tsTOGkzTVyOP&F+hd$_(`A5xyTDCKf&>nnkIV}OcqI;P|Lr(=qEX8 zXiKwp*TPZ@$vq{|!|$fyLIW7fgG+k9$n9a#%RD_KU+~bTz)|GU+l^`hzKRc<^1;q` z{TqP87(a=f>7Q~vTa;hqg<8KY;Utm@&bgrG9dUR&fbImrFG}k-|0f$IUHM7HAZrF_wz zo?m|?{o16N*8S@7@L(I`k!*XD8ADi>c)x|vH=@rHj69rKUcKzA#%K9DL6I;rpKg__ zq+_&INPz?#*wDbsicR$?UV;h*>)QNaS6e#&#Pt#bCjW-dg-bsYrP0}sI(66S=07FS z0q5yOkKiIvuoD+p)sf8R1MK9x7{|g@6A9-7N?Xg=FNY3KX;)e~+@3w$AH-i_H9VHD zEjdJFO}meu^zXvIuJxn$zj)P``tv^2IihUGnc)!K?Vf_W?B6*LC#^5IwTc}AqoejX znp;^*J>HSlUv5|nF(%ZkesS_RcC zwfL%}`bP!jUE%%79lfV=Lg~64Xb{!-?JY+-NyC<>V8h|`PRi+gQNlQuX#Li~i}FK5 zf>f6kQ;YG+f~#=V5cCtjN=HP9cefDMp(m>GoE8E;eA=^qrq$+%&7MZ(WeuFuRoO!u zb>w8FJnT)}{|&9bOD~L9bx?d#OY_cJ^?Vr;nt^ab^Btal0iX9D3ndQ6qcn~Iv^I6( z!|QuOXkni08k5`QL1h(8@LeZ+2guw>!9Ri`q(GJai&fqa+3b^Q5%+~`MuwJxsUn+R zszC6ik3U*I7^avD{I2~iyHf*AG3c%m$jT>g?0(=i2>k=j$pfizds4%pQ@bU5dGLeb zy^o~lb}QJ8=+*Duzt08_7eV#8_fvWu?^_^7%|kmSzD-Y`WUU;!OFC?ZZcvMOFr3X> zd1a!(tNgGtt+F*_guMl>38R4m?wuxNw2_)Iq17`4NsZ)zKW`gYDJEoh)h zKTNTdHqk=xKP!4>$$@BJ&KRL;3|~sr?)5A5hoYDBG%s?(8QcR>i#|UYusd&a68^(& zu3ZT8^m-s^HC}&!7#@BwmZ0Oh4Y~OXXRKJPtnT;NMRlfu0;l1`PrteRYv8= zh)T#iRdsW!$8kKjHyu(WU!F=`abUA8f6z3d1S0*d^l#KV?JAs8UrLy0!`2zCY*F=U z-M|#9q0pzVq0?t6dm-q<(0&&$q)R6JFrvW|+~~IcRfa}6%T~bYo6Pn%eFXeS0UjZ; z8-FrDdEVNSnI(E=ah38kWWf&Awv?rH-cCq3Z{<|XJ|#xuOEpiKqs@)~`pFHM4RM;e ze%G6Afp^2mRT!9AQlrW>6g9ccsERpRnv{w87L9owDhhbLC*FnqZPir#5R(QqvDD82 z-|kuoG!#lXKV&sX>h?NtT}cV`q-$7O)a?h3^Y^d8RuS%AYjdAHnOr7ZwQ4sD;PEND zNxK80UR`$0oP_%{a z3T%4K`%rrqlS_7_p{Fj>5f$}V{WX-rBxg)QEWCX1_y}t+9n)ed*!*{Ll?lOxKtC3e z#au}SM+m#7X}Kw<=OX}jmuk{CP0vmZ{H+g>;>=hvi{a6Nq3Li#kI2?d#~vkg{$WGA zc@hlun-8%!-dn-Vdcm{Jeg1SA8dsC|p`!DrxmxFGdwW?M6z#)1pD>~A?6P22ab3HUKK^Flhxy(^!tnn;I zVmeQ#vWZc*coElRUgC34Ds3&37tJsC{H>WcAe2A|`IE@^9IvPu4eq)z}f3=LBg&U+75Es%0I-yxpT0|12yS zq~4f6M7t2k){Zp*$ zDuUfpBHt(%4maUNqE+UHHCK~e@ecOSA00MM(LSl!o4w(VW~ZnQ+PR8N2)u4ABnx;8 zry>wIsFu6jep`QatN1FA$6!b8eJ`pH5hmRel?8`(tV4_aR>?UM(X@gvA!;D%j+I+L z#wr}M{#%*sWk(G6ZD;DBL!M!yD2`k#NC9W#PlS);1Q0%bs7Q>+`Dgcml|=rm8{N}o zTwnYCAiA*1@A&YVY7;>ewU(<%;YD6Aek0^J*X6Ym*@b>zM)Z%QC;M^>N<>(+fs%6PF9h_oW8 zhiKht<_qS|L)p@*=NHQm$NhtqC4~L6tSr#c3N~xO+@WeRz%En-75Ol@2VU%UZ!rB2 zk!?oiza_@}&rL8&47Q*!U2b-cGf8!)oK^hOK7-NA@AG_sp(g$#SKkT#XZw7(y!CXY zsX~dC{a)eDhloA>DLX&>InQFLe|DZ4;vn=vonfNbyX305h&TL>lfWuImjU9Pp!D#M zjpx1nQ{7wthx>#TLC6>)1O)RToe@S2{bS7^Fvz?6r^j0V!y3%pFslx~IZg~}V82Wd zG3Wg~^{p5L*xvuc?j!nQZJ;5TnwIk#u(3 ztH9z4t0l@Y(DvtjWLW8sa^UZ4_Sb_mKp3Lg-aE*J;YqPe-rGO&=0BN^O7OpBkAVPB zPRC}7^I*#MpDZCY6!=e1KFG9jEaVFyLe9gy^f-#V2E3=)&k|W-DRm|{s$ZjoV(pB3 ziO4_9krYGAs{_^5<55HU-s0Dc7`Q#C8$3aMkkP#7beG57T@nljIhukren3KMPaa=l zwf;+R@a69T925E#0l=1?G{c$cF8>~qsNN?>(=VS`c@>V$w5^Q&Z>*uw|8Lgt|BdoN z0I7Bab8INQGCvjI5j(TZ7E!L?@?w1_O`8)wq!mUJxIB8qW1@@DO@O*PtDvb<&+0Zk z5BQsk9FEbzon>dMKO7uXTdEjc>VG@Wj48-e7ZAjtkrd71 zBag0Kpm}3{T3R0ymf3yVAB($R2EY9;@}+{!nlqMkU4m`Vr9_*@-{bDx4yMlll^0r! z|9&2;j9&+*poDCVwkzBCd|HB%;+D*tSGR2ztJ0x(NeWFx7HH?#+=9E|ndGWFsz2l3 zAA4lt#LXx%U~}yY(rQl#o^b5@@LQQ(8-IMPK6F$=g3;oP-oC8z)BK0>O43Y+ zZ9*pM&v3sntw`~N^V{WS9*V4BKK1@5qH+YG01!nLY-jY^5NA2dueh+=x7 zn!nEJr3(yR1JW2XJ*z;azd$x23dFMddEkPDvuTpzpXXWu+;gwmHqZcJZ?ZEmLgKkRquZ;i1y zz!ddBw{5>bp{d6wbfB9|%u+tNv3U6w%NamC!1ED^+Xy5k!2%63KkQguBTQ>C~FoX>O+Oob3R21ei^ zpyZ|6!sU7;k7lseIK@em+6Mr62363B?uF+JXMD(%3bT# znkh3+nx9Ehur178v}b&@<*q6zjTvUnAZs7bc%d=%EqHWm4m~0-eAxtub+zY#N1gu> zpk?&H`i~6czp9+T^Q?dm0(Z2f^84ky5-<(az^m1m#yqcs{czb1F&kXm^h)%ka#sr) zEd-U=zNEOD%@%}SMH=yrjg}8eZWeo?ff(zKp88Q?!3Z4EuZq6%VYi*@{vi!a188tX zSNUKvT&`L@=WIdf2M(+diRvDx5qj3?2B_pFD|}UVyi~s-^{o6{Cx|5Wy=3_C1hCoT zH5+Aw^O=7Cbdl>ZnsWcUZW2>=26zW^eypY-+2LK~p@Xb@4qi@4FEv76B8u480~N!| zKwAVJIsD}^PvOo(z=1Zu{W+99Qeo%hJ2<1KD*E|=L_fze}W^BZ0r?#(3W{zh~bx)sTaFY+shW1oHl++4Wp4>}It zd+j?S=*5_ENtuoC4|8%lbbn4*nLCKKXG0KPI*Ve$R@pkj?k$SmI`9oXaNv_I{{+5e zoeDG1HXvPX2xcyLWt1{{T}i9sBhPOh<+h0GVHM z_Wd$pEuyGxa|-EoHtZpbqiY@!+Q~xSH)jZvJf^4CzM-dire{_7D!4HcKx|!j@eUQN z@#^>F|HUy8_A7VQ38-atuE_+`{=r66Kl~g?&Ha+934%ndSs>g85o>Fh(epK~duV!@ zdPN8SbSo?$Fc5WDt1jwATX;QO9KFUEeaCxjtnS&|z;Y2KJ^?7$hA>t=0QvIgGd!;i z6K@8Am1Eh!%J2TKXQJAni{*=cGYQ+cl$+^^4cRA}jGIXB*y(;ALrGo_Jf>T|tQ!hx z8^~}G$WArq=g|vLT^}#9X^#!a=h#R5>ry%9$%7GKTe8n7+y=mbA>DCYxWY3%vDx0OBcWS_t~K$*Afp&jzeX%S$6G=s6u(g;j4f8XRu z5gK^jS|i9}?7;^?WJfs>=NW_T6PV$m-O1?ca@o3EXQg_{8Ut?9MwIlU)F%vOFM}s_ zfwgzK0%%u~t${1cD4x&%mxRptF4JlqAP#~A{wZa-fcgLhsPcWlwc;X>a?TF02x+;8 zOe9z^?q|~}=*p2h!oNJNK#(CC`+3l%F|Ex!^S@YbKqK`~|J&F(hM4LuP3&3fl)>{f zLbXdi^hc35AHxGQia-3A(Tnd)E=H?4>A-mI%c&_a=)45ZmdMR0P5J#>;L?#lbM-e2 zDD$`HXxil4w=5}R?}W?s^Po~HwN~`fXtkGFEe9RX_-6VEc$7g)h(){c;^cG|f!&v}?`OHLZj6i!^}dBJ85!R?HHCWE z%Cu5`y->02G<$&Jf#JD-2^w;k52EuGfa2%pKS6Eb!~T>J_SKW^u->yF#aci9EZ)A4 zwg^j9wQtyWzFv)wB>}ud9ux>_4^np;Ij9Jq9nbe~-Z;mtzzLNZ8E} z*LG`}WY}FsPwn4kZ$BrpXB@-0F&dx5nCb9ErV@Vsy2_$X{2q(`!$0_K7y!N#UZMM5 zop?gV4IX$%`5g;k_jIDhzM;hyoafpbuSXYZ-j7t-8{{jYBg>&DG!pW^fS)30uBYH$XyG9GM7+!VUpf_%BLUBlR#~ z(k(jjXn@cL+WT>cm7omX#}svz;f-w<(hV-WWczah7=ACRFSX(S(5O4|_QNrn!^_kt z2_b#?L{x(~y|MaJbU3MuyJMhWvfAZ^%1tf<5K`px15`2reI=1?@n$W2@l;me) zOBq04pJy`xlOB2Y>q9OKf;~n7!#6J^FdVRo$MfdkvlNNLm9rjyTxuwQ*XRe1NZCbp z(S0rLJI@SYYjhL<#b5P%vV(xz@3*7QBNsr6fKma#tEoJ}#P@^t$16Jd0MAi-wm_r{ z-!Ce!#sM&4qBdIr>Art4x>vBVAxD$FMb= zQ!qVLcJ{SSM|p$+wxcpXS9}&BA?m+p>QwXgBHaS^;=t~-a67B`vGSM}^$Iae>z*Co z{KmlH2w>^WuHapSZ!0r+2sf|>Di)OF>rl?HA5*Qo+oX_Lu@k+KmRsRsY zxG)a@Xi`%I{$>nWe>a^f;Grg(^o2U1bGMgN_yxkL8BNJ#;Wp7r6b>U%i}3A=;rb?g z^vv>@5YLybOft8h#+?L~Df|o>rDatIgs?Lswy{@wP#y*|R|M-Nyc&7W&_g&_h<^%( z2mdoympaO{y2-gllxmiR4d~ z9cxyT(5JvwI6(br4BS=%M!) zhW~bS{TJ@rCmC57QpuJy)`X3!uPRtX5##rqBab#}kz0{fP=}5$i9%xX_@+H&KH4oo z?W2(g}DePxkfMR&O`t(D7Ap3+I+kN;C_%Biz znBr8<#EqPxtKC|v0}7*Zug!x=NaYXTzHPEBXZS(LH98LVjEK1f^&0X>8lG>i4g~8i z7U0GFd(NnCHHR{jNb@RA@SysG=jsM*#O zpw|K@f{4Su;%K6(yeB&SRaHoPqoL;N%jkTsQs^i4;N0Smrqw6?ha`u`R&^imtn-XG z#P)ZrydIt){T7NKd$AOfhuG(iGSw7N(o4 zPW|i*%US`sRINtd7v6cxN}XfOoQ|0_@5DKpL>^uGHE)+#eksPhlZh5+LluwJpQ{^z z9Ckzf;&%0~S&>7vZC^&B*wi;}4|+CE0yW(s7Vngu5&Alfyfz1MO_s&h0ch*yHc$dG z_gH>a<-^HprnQOjW9cb?5qfaQ=V`jUifpS-)DJwb{cGT$X32S|*MzN#*Ti)d3k)$t&u$!MnySwJQ3z=v1QFwwT?> zx{64cYtmNtKf$S6x!Zs3-!qp_@V#J^=OT0?h}TDEaqklVXwrWXOXR}*b-a_;AXFpq ze!#}oUkdM0&wg6(f-$-jX;AXkL-OrG!OAzuBBsmOr* zMRfIF#_`;#(%;5ZE&PgjKTq*TueX4OjZ|1O>waV}`>1ZxsH?M^okyQMbV@Poz0wSw z`Lpkx@10C8kB=afw35XbJQ(fIgc)t0lW`=J_Cm?G1UZiU^7&#WfkJ(bt{@r7^|#h! zAH&ELDh~fLgLB1609vHdbItIxi>o~Q24voO5-pVHm!F+I{nxN4Sb$gRw*^#$Ja?+k zGjL0q@|Tk*h(JHoC&4Cu)av#z=d=4cCjB zS6J7Qs`0+!d~)E(-qQmPa`L#2nGB!yxczwct0LDD_)A;WPR{?Ipw?JrApiKwf3;Z2 z@7sr?`&Q~EO&`RMzZ5xA)==d?Nk`_c4=y>L%3F{~xAK$=TXp>BGOetvLL`TvH=VGBQ!l z046>4OCR{nJAh+}x2b+?BV!-ysF0K5+Agyz(>%aUw__UTgIr6x`6`pUZRm}UA zY^`m#suZnXww{JeWn2L>ZEJs9%MbptvH`O%BMMAhz1xPZ8nDl?{?WxD8it1_uA8w+ zX-`|THa)CzpXLdTtFC5HQ65$HDf-)hJ*)kDS5XarQ=DhlZ|~Ecpc3*-gM)v@e6p$>{>xL&$#|W|DcU{9TM?EH9r6kJp|Dc8(LF ziAO8hgvsSBj(O_UIEt$2%>Y6IaBf8rTSP?51)in=;$;`#fG2maOoOkae`?3 zZ22L-aK0_mZSoE&JSenrH$+4C@Wyb)1>Vrcf2I8ahi|P^@;K&1!e9mWWy)gE!0mr* z0bs(?0Fr>oD#H0VY&fzL-A0qdczh+^kN;A*&b(5ms=`q@TayjtXhN6LVS&dr5>nn@ zP1Ni5O)rRNiwY_lr&_b0g8HV!&LBA65|jAY1eaM-y%0>su~N;PKA5 z1IKP%0i1MCb`(z!@cIwj*#l@;!7ReEEW47$Bc`;M2WI)&1K=sKTf#!79)no{y6 zgW6xvf5Vhok84)LXuma8iiT?Ox z@gP(*SgVrj$Ws}N*9lKpK@5+Xm<3P-ioE3krkp-lb;S2kOazkv*%N!pfd&p_ntmvt zd*pZ(W?huHgdN@`E_iq>;&7qowNLu&wWMtb7#5`I|wKNtIsM5PSZF(T{7Hiklaiv5&ql zh3X0DlDt~KhkUl{HCz}D_I`qh7Y-Y;wu?);7Oxyf#hLaSgn(3=zKMSsRazCiuaoFf z*79vCp~LK0)bFf8gZp4r-gIfD^|I{p$O&vZw-8jccLh3;R`$hi@Qhym1CmXa-9mAY zxY}s4x%+o{%D4}cYh8oNkNxD3RTR#Rv1jk(9k+L4*to6m&FE&v-Y~23`a`T@Znr=G zKzxK*gGtd1qJHf3JIf|G+V5$1l^)FeNS@t5Viaqy#9)Vm~}R!!IYqcru9 z@+&#E;qmMAR~);7S{}Qk*su!k&O=Sxhyo_9o@%z%3a6iWEs_!eJ#t&TBi;t1t^dSi zg}G1Np)!A$+szpHAMjPXRkzo||J}|wmX5653#9-lfcw)Hq`3dteZXN1$jt#EVd1h$ z;UG`%_MTFbsWo3PsA|e>5D*Mn1`<-0?%{~<0qA90$=1GtymEm6$n_~!z;B^^qo`4q z9@TYoqW=Tvm-7pST=3jXbfo0CO1;hU57TN9^~sG**}ckC&qW#U|6Y76zf{m34=kUW zX!1P%aO++A@DTbscjp5j$J!9O25L@*(3 zonJKZGlRBSz;)-dyx8TNjHk@~a?o4O6o9o#Qr`WF*Z)KZ?LDyES<$gfNZc!yjGyMT z^RTQV`{R5xUm+SSKM4u8Ef>M1ym!ZJ_%`~s9|toM9AdX=z|~7-lL}B`j~<8yQu=dY z!Y+18mz;p+I=niu`$hX;tPRkQ;_xk(`h=;p*d3(A3Gl{&fT(TXWbjGRKn@7fdFLzc zgiog?-1Gcvi|9pviOpAh+imlxcl1Vi^L2Kj_*UslVkOD`D@fiCzvY-^if82?e3^4~ z=T3U=uC0+Ljz1me0+K2R7egu1h{??+Qn&Kg0Uc_Y+e0KDJw7D<*Z_t0sx0O#R(bml z^LA|dgH4R(#tSq$UxK}Z$!Z zyM)X{027Zq%(GPjO&R)?uOsjPR#a$?u40xK9VQid!+2MwNaZ zn5aAOL5RG~*urkR^u)ofvbg7+gzcIUkfEgF6F$l-4Ls`T`Y3`LQy=>IZfJ@ZkF%h# z)6^Hr(L1Sp+GPNZ_AHfb;|z3?iE-;?#Q;fMrL>?KYBio+c zEZ*G0YClo$46l)ig#O7&``hb~cAyghQET%vF?s5xXZ-!V;xq+A$Rba#(i20!+Ix!? zOM!6HA$l-TXPTt4H$YB|pkD;Pb5&;8q`U4t^bvP>X1BbH?EnRw+8yE{#VBHexoD84 z4z&QINu_?1dg-{SY6@?YaggT&Q-PTj9dMqgG2^y0(6Fz?Hp(Su<(ip|aWr7RTld*e z*R(wNg5T9$;-YYm8YwT|7H{*m5KwjmR-<__^1d278sAtP974c%moZ1KvLBWe2|jb7 zCGNqFui=X$)qUVq7X=rYocWch_Y3-@S7xKlA1#6tR&Zc99Z&IZ4{KT=Hz`8?Apx*n zGDHyT8C-52YL}NS-rrrcBa1)b?PdD`y1J9x8==$BGmk_!xOV$n53oG34e&20`q@*I zWX9%u)FikZaR1ee%cTN}xkayU7xI`Uhl$-KzZpGVRY05qq30xr_N?NVKhX~o~ zdtCZBpu~TmrqFhPqXuRIwtsR>urM?bJ{%5F>)2v_)MgXxM<`$ei1E&lmB*rs`J!f~ zF z@<1ATo#T>HxBXHngxUu!8gO01f34v%^~IJ$dD0C1@cPH=XI9FWA`G6dj*jg)l*{u2 z)qXT}-&6g`BQ?O{#PN0uXy`3%rLqd3sLUjjcMDb?-odshO*-~aL2P}pV3 zW_BHeodzCCCl|>2C*MSu1nOZD)k9!vwW9ypsMW@0=<#}Ne>6U@D$D6YXgABffj13N zgB{;t86xUU@)iy0AZw-m@(@B1G&gb0F3(QCH&ER{uJ6=pu>cJNIBnqxvgexJ_()^Y z1xG z5uPwp*(~f%OpWU6FNLY^-;*T#b-J;i$fmvhZA$r!SE}>;9eB-p;+Ic0@w8z>j;4a$ z@y!fx0yjK&MkTV48R|0!Xe1@fHvJ+xEmN>#}Y#?+-}`X9C?Y znzagZEADLA;?6jYvFD~Bshpk8cJgtp=b@`P&=H%P(#Z~3UD-D!5uLEL_AfrK8x>*YW(`tfg|R|f(;-Zs_o%~Skkyaf$-i~M-c@{W(0UJAy- zGdVnGGx^}1w!F_Ht?tE@TTI$J%fkkfdKK1c6+v<1w<}L+M=CbfD*a^iuwBZPKft{j z0~6q|;Y*o`#qH|j_~_qC<(?Pc@Tt8{x_!(xvc#>`g7hlbW0pfk?uVzPAk=vD4LA*v zLyjDrbiuXFkk=TFt?r~Glq7l@sQ>V3xKDFIFe0rv$PdL%97QCFr~%HMAevJDYp#rX zIznG< z={%pjBYc(?hPofbB}M|D=RnRut+Z}gsk$a5cbH*KJclYQqb1yCgYI7wq@Z4T3sP3f zUTviUkO*}zl!uAkeb6o)$IbAbXf^kq=p5g%6JL+ikgike*91DMB={_$pnakmI!rPS zkzQ7zAw&T_S-o8U5~{5k!{!2uvo3gJKy|u$w4McxWKc?;+#zgVz?La2n8HI;rfFL} zR|REHkH3f+T*>er#4md=pf`3T!EUC5yBkN-wwOO#N7k$3->B>+I&aOiGp)3NH>*~o zlQv1!+*L`}DtaIilg5+F7K-y+E^BVyfVoc?x&ezi8%C&tPK*ZX{tX*5(tyZAEi)asy!NclWEs6t z=^+>_7x7e^H6wBG&bD$e%7PfV#y+{)qP}cQlOlj7E@F3G;F)>g``m>%|6{DB`E`=K z#4#>Pr?HPxKlSGP+9^-yIAcnpvxQydBPJgq_k zCGqO*jTDxC8HEK+RN&hMBT5w2tZ-1EApdlX&A=ycJE=4i)g^qo;V4Mna$`u-ZZFUk z^nOYWF@AQ!M8CJba=h=8w&@)0r@H`?%+9QGv(f;8Dg?Plfuvs+bp6H)YoP(6RlNvT zp)mKv3y@(+WE*VbLoh_A3Zj-B+Dy`v-${;~t#-7aH%L=rmpihUE2g46AI2j(3Yas~ zS6FJEc@DbF;x1v1ZFik>%=c%@gOW}#WfWU(I}_8K2X@~W0x)wch%8Lv{{rZziZ5!j z?h>JUt~0}hlJ>w7Hfqxw3&unDx|R}*sz2^ou4Zz=k@0z;+e7*O9@?6T(oeu}MpTg2 z*TdA&og%pQhz8yx%mci&G_SdS9L>o6JU_7-5nS5YD~SXtqaI+D?we0Hq%pa)Vy9w= zb#}*_g5NJM#}wRYhlTjbtj3anE{gCdTs;@W*PsFLJu6Sq9uW!^(yDycRkw7EH93>k zG!2Bp>?H9i>+wp2syL0%re{#CkOSK{jy!Vfrk+N9iA_WK4pwcM`qVKsDfpNiIB@39 zjjNaMt=Jz(_-Vq?B+Eoh3#s+c(2(5NstZtbwesaXxGI%*m2+z8ppbX%3qIZXhwA++ z%&Blel7Dl!7!^vZKS{d(!08n2S*Ub`S5{j9BQdM$20pcPOjTieY9g3bdUC3d4JFh= zUuHZ!Vebz?BD5IZ#~kl?ht46@A4Ny*2q#MDlKgZDoGggdk<6F5&z@8(Jw)oWCWW`GJ{^`f9CIb!sk^ zi&AYTW(`sw2a^T0gUII|Wd)U@B$e=+Y0hibZI^hSPL1?d_p^`Nbzf+!PXtPD)3`M0 zy)w7^urDnpjW^d*x6|Wg1nMD_PeFO{Z1%7B49>ULW4+n9Tp_a*X?Ub(ci9bmfP6G` z!!FysF}zwdF#Dc%J~k={`DNrgjCv>jd4+GFpw%T+6Q zO@GnJdtSDPquf-U^cW|=2DB-}W{#u+7tcBsISVpUC74%%WOISmqu9Is!83@9Jbo|E z94A}(rOuL*J{^wGI>WKuYVKd^lhZOEy;8#0iun{oy~w?`fMg^bQ(wA(UNb;qpnP#?sQ$E^X*=%W?DWJA8)PldGo9LKABG$)=w< zXl^-MtMa)P$OLMS0#+&Dnv*)|o@zrNGJLfa>Y&?wyyGmq%xI&*o2J%FN7f9BVGBaZ z=keik4YxfuK7p$&GC}R|9F%OMDJc&o6lZTa zDxFUYIJBkKLG$M9kWK^#L%&$!G0ODC`BlHf&9BCef)eVIF*d-LG2@k-D%u;+B{TI; z%ow>%8X~rXxgz_Mid6&!QAEh$VB2i}4p{`{ z>6AvGwO`fNJ!N#AgmbIPee+O+W+= zC0%00ztsI!O>p>%+c9;z;8)aAARZ+xfxk)z_R#g#7!dlv#l8!aK*U2wT%E$Wflsi} zdUF}xYJ3`*y&Zt`;G;w-x4-P}P^IXQ-+P8cE?U8Xb9-&{F_}<*XD~pV6iqz8o|m0XZ+G^(JL2EhJ5;V&G1kE=giHwjUO% z{8+qb2Du+X==Ssr-sP6lAC`wDehwJTE-^|kd9y$RFzzX%cO?d=`qY7juEdAck4%Xr zA&54K??QSFx{lK4+8D`wiPjC913j;CDQr^%0pi#$VYVG>osRXiN^AX2k;MGE?fdP} zDQ>?l@~$)%uWr@4Wl#~up}!HDs;w^+AW<+=xfErsqw?gw2BqN4Ep6a{aaj0vQB((nRXwr*+}Mqy}ck zvLtb!s$vtAmkZ?mSYY!Z!VfM3t#DkQ%GR>N)ZefB~5S|--poUbXn;;YAOJ%MDS4b>O!F|==^bJJLD{$MZ*`DVO)n|#t zTwlH$p=Yn){ZB+@;zD6)JN0Y0c1v5h>CeAH*~2_G47^Y&$<2&*M^nz)SnsZ zqwyX;<8e0hhaIz=E_{kVZ>SdBpV3~=Tq|Q!M}|lfALh6>0#wOy1*GzzGWqJiA!DD{!L*JfAM#@b8EW4c9?rzBEjwr_YRycw0?H`Sxu)V$vv#z zJ)X-peX+(>U@WG3=F3Y~@{n~ckX3AmedE2rTR353%pefT+7Nmk zhRlH%S6eZLka$~u+GxIubXo}+BwSXQio849)m|3}< zQ0Q0Oa0&mSY`}_9oD*d4Ulu^QNr-jLc}(wOnV<3gX?o<)^z-jN7ntXg%I-ollr6%Q z!HyZ#<1A&?OkkBf+7)**M$51dnYq;(-cmlDfu#Y1f{LZ0Pc3646HEidT=#CrsXXBu z29X2U*L^n!GW?8Jc@kU13JjnHq0>6_C6B&QBao4RX0&uB|DYAyJ^$xIJ>@nIG3n;b z$vSanNfbjc)jmlHVa^6_|6qis<+6S&FV8F`7gB5mVG(m=a!JCoSkRKoL1Sd^zo% zQXelb`KM0Yh?$f>=($-QBGYoD_al9{jidVJbGgtPgq?gmT1cU2m!(M*qO{DVPL}R3 zeagq{K=3zO;4j}1d?h`xV-<>0aw^24Iv>v|X&K}o;(IV^C8ZMWq?m0i=yX;~Z081Q zw6{?W*7DttADux~X{zvk>W^+aIDXqQSO-}bGnTi%<)rOLPfB`yU_Uz0M}4t;N2{g? zOOt-SdxZ(vB|r@65fdQg_&E)kSox(f9SJSdZ#y+nb{Z`=ABVKprktcUfK&qfq_0Bl z8DVp;wv)katk0}KNQZntWUm4y-t||-oH1(2;%B8XzC_PaQ?MrceD;`V`HV3OAe+< z&StYc;^9OM!1?azlaohZ3p;+qmI#tiSIK7*hdEZiXK+xDnGak^VI$gt_}e(9jQ!^f zlb$1&vn=>znei`a!`c13KnLtkx*^faRuY4CW)gcFY8YyQI_wRF+p<-jG(CufHVEPv z+Z~y}M5+5@>Ea8;pMVdav~2WR*mb=5GD|5f(x0|Xux}0iFkv(g<6Gw>T{(6qO<`Ia z*10JGYw)ENy^`03xVKL@^xSu1lj%+CSErp}i-32;SfjJ`!hOtH)cZk{`|~-3f~h1_ zj?!^x`?4`gs=e=w6khgZ?35+d@H5e}ce`$fI)GLOL=QMo&d`R#mqZvG6%YKlx1gy` zcJ~{X_NXe$j3^dUoiJo#U7>bmQ7~jA&GhAFG_zUqd^OLkH)?f|oUy zYd`a~!(w>vJ`N7RDrp>a$xZrj?G}`lSxJeEqr3qj z;{6I!$$qEFrOfIG_#1OtnHC(Za1u%5Cx#-2PaCY(dorP~1{Xaqh?-zUjF(R4L@yt(kxLAs`+WuBeirqge7uxGR-4@aXK1_*yCg2C3V(pt zR@o=4hXwBtE4k52^(}ksh^*Rr$={^2iIIRGP+>P3e4@tA+1y3gP}0sB%g&Vc?h_jE zpa*)qVeiMgH=Q{b_F?i_nN52L98Bqy>nPQWvYr-O_qIyFVdC8i(*Y9nm#&T6vB^{3`S4OP!(?Si>v2u=iY$_|zeA&a=^8F`6+p zO+lwT`z_Wld*KKSXE^L@W0%x$(fg?uWW4^wqaCTNwU0PF6W^F-;9t$gmcV~+;6-&B zfJg%$^OUe8Td>=-_mG2Jo7lOfQ*gG=60BS^5L)TCnn8&fX+mdT<Hj;JT8Pe~x7iX|2RE1uCt=!Ovce7$d8NBh|nno%- z)aI4G{lMv%y2X%-+ho5+n)Fks$1bJZ)`)l)yG@Xm>h^>Z38*l*cLob@!zr1D)KV?g zPNO}5IChH|3q`VfCJ>BCU#01?3Qe6K6Z?&w1Y{OCV2D)M+w$C{a4uHq7%vqConDilDi>X3qilZbC@XZi^Omxgw zJGFbNI<HDqZm7MikxK|bi^d3$}WWrjotZO17Vf>p) za!6^Y%Xk}!HVEIQ7@q+lin%*-9WXh^w|ihao<}lT{@J_ZY&E(vwanv zt1d(;yx~0oJ@C|A&uE_D4g|}1g4t1ZwBSVL$m*)!+rhr7+o7coD|(at@$`o|)lcK$ zWvDFey|CiOWQx*MNX3kw1p2rt&T+OtQSH)BIK$29Hs%>|NPlbvH9_5j;9r6tMpd+4)? zAfHGD@5#&=OiI%A(d}{Yd|cDK*x(cMsFk*jkK)#EHVKgRPyhb?rQ7KGQ4#W-?&zK) z^ex0~-Ek&Ix8r6-`}g+>j>7|lDmFx7=syw4w61_i)Z$ zKa!dE2P z#hX9{%ENcJSfj(vgzf)?8H#hCx*jRm1^i6!1Rxa8{k%8E>Y|ac-{~R3O%u#Uh zzU{eelCs_D-fve4t&XT@-#}KQv1x}$Wr%e7TnumTBT&Z$mUae zs+gWddX1Zp=g?PTLH+EAa=JZQjqrnAfMS!R)pukyPks zfwlD~pT>3U6WM+pms-^!(4A=0T`NJOp&Z7@HkVe)jTsfj%>ojk2gAY!bOBRHGgozO zmx;$XR;`J54@{Q_gbWf` z{1AIXvR-5L<_mszXBh9zylw*V^B4qk5`g@5R|+qH2rf>2jnaJyro+%XR>!!P0>Sx0 zM37xpip%teF6|)!efy-HBXQx!n-DdQ&y#_cv5CRSbW!*%gdens?@2FK*+5w!XJd?C z_<(oAmy?ofDM-idbP#aO;cVjLgEn7EHV91iS~_;9eB`I~huUURTn}Qov28 z6!}sPLQgcsB_ZU@%gJ%ur4RK0>*psy5dpUi4!XSg?1N>=#`cYyWp!S>m|)}Y7Tz=2 z+e~KMWdXAiPJgP z-P2wvST#2e)=Apf+3t39rKhv2Z)ivarX*(Hd0!qup+|fk@H@QyKHJAekhy?b;#wo2 zz82|+{w`ZH1@955sCIlAGsduS75+7_oU}Sn_%5J4s@R>(nFkI4zBN}F`tf<^)1=Pf zI-?v}p4TJxxJBcdV(nTnphH6w>;lvr1`D3nAqUM);5{Jb-d*cY;8M7r4JD!>GkT7H zUU8R_-DAlQ+0=Of=RHoECMZ$DY$CQsu>}#ynkSCr^r$3YEOa~l}OsckfP*3uDmYreavj4+~ z-50A`Hx`*0MXr7*4~V#X<96PxRx@waG-&$fm5Z4f$w7k0Gp{nR%O9>QpMGMsbCAvN zMK?(F(=>~&;$+*HTtWwOCw?^8=RjqrkdG}Y0A|vi_G_C%W zwTznLG#oob_MZpBOQIR@3662i)^aA9g0;Cr38X9h(^E-Qt2pcJ!uqa4;M?dCZ2IVM z4Tu`7px_Y)rbUL~+=1b%&#tIBZXF1hbU4Y!pfqffbR-rud45#klfZSJ68@8`8tT)2 z*(~f&uY8$Fg(%#3tl4t(^O)AO*5G#u$Ec-AN9mbk?p&8TuRpu;Wp-tzH}e3NN>^EZ>`EH5s@Pkw3kpNr?6amKSi(AhGd)w@ke zc{N*k$Ci9a=Mp~$X%0%}A_{ZCMP1R5o3QWSZ&=!3)h>X|W)~fzBwK=6Xe!Xog68KF zlg4RYWXtjH_67t0YTh_|;yWLdgBDU4Wy5!3?;$Z{dEI9@Bw+}X5E^WXw^XGR-cJf~ zToHyo?tHzA&t6P)zWA>8hKEx_rRP-c4D!p!kCA+H+O?>XWSa=HJEOJ^)1x{J?Lipw8GS#Wr67$%<*FKmDZUX# z9~nG{^UTC~qvu1N=Z7o(Y8ITw#xifCGw3?=%{tw5Ob0}*P{}`fLoyZX#vtF`7Zm|? z=Fnf*qJx9rE>JQ-O^ef_r0)ESc^37cs$el}du6 z-Z~B@HwA0fYibtXhzD*+{@Cr*Gh1SRDsGVH?N`5xO4PZ)QmupO#rmX3M>z2h6)~Eu zm6vPHgCm!e^WY2*RJAHocG(4#2XCNfl&^QMz0O`71RgRqVZbT!^X+9mY8kB6CCT(N z3%5r1qgy4O+xiZxK~bS+9(QAh%kTGh^(`Bs&%Rq6^JvzsTk{9ZccX@a?pio9%-qt3>#M9dph4YUlK70y42o3XBpUE;G*M2;ky=$oY zd34~c1gbVWVO(3ufy)su>{ClVXw3iPb=4!WRoc@xId4aLWygE;Nzu~XrzdX@I`e&Y z&V;er~_=6akao1%?f@A^H10R_%@Il*^2v2TZsn>zI z7CIQt75HzY{}?-QzmeC|p27V_;*p7@y@f7!{`8P07t33`)ows10RCV1*N1TeS0E9Hw0zdcQ1rwMf1ApD29haXwMLOCR>5*2&?)3#on8THI;4K zqk;`uHrSM)^ooLtKq-BfVA)VMKv@V#uSP)H2%!&2uuv(bRaAPSqEG@M(gp+)ON1Z@ z5dsMiAWD$Xg$N;m^uLW%S*OlBb?>?NtMh*E-go}<^V?+awf9_O%{j)HYnd~X5*dNY zo>%VC_Ht{VdTrY_c}y)0_6{$;*GKL+a`|o_pD5JUza7-#=P{HN1Y*3)DR*)1G!HAN zbBpFe4A}>)f{0cK8Ssm}I%;??!rbV528ytezbTA!xrh_rw$JG_a&p`57j=axXEdaf zueXtBap>v*=l*20V9NBivvtjEBtcjiy1#zW(e07u&FJ8hIpcEXE;K7eP;`E*V9X)` zmI40gkWQ?#cTWrZpdw#3;1Ki+^5uE*%>-ju$UW<^L_(KZChW2T@}+v#K0C)-;Df*+ zNB!POR?v$EwT*kycG?gLAcMneD393rvl&Na`651tTnA$o7TBatc5e3y29DnqZHB50 z9(#X5^JPogI?w8lH_yr&1xf->sI1tx@Rgd%;3(yTJ^YC?PHvm=^QS94dvTW&1fkoG zLlH+-Im>^4+B9(d^2-9m!0Jsu&(d3h$x{}l#2YVo4vHscCq|3xKgn>fK5T3&ItLy2 zL6`;2GPU(MnG+uN6x;92YCqI|*>>au(J2hOet*ea)WcqsF!^Y6!0F~DU-aR9>2_KD zUd%JR-oCCiNkxaO<=#!8Ek-n%-^>sHaP3%KXGtu6Ji$CLVcf%U;$BH|RmK?l+iu)s zGv4&TCtUwO8C82+Wjhyu-YnJadaK3ATDFo`@VFZwfk!4>{ud zZ8zyq-zi|Tvmtipp4Qbbnd>`}8m`Naeq7J>JpR&aTdN;Rn_Z4=_{K`mE{q8OU@x99 zH-%IsF2=VMOHztPUMROptrl<-6O7c3C!O14Wv?*tnT#{i*2u*;!65pMn>v46Xh@kH z%_LToPM$#F%}fv{A_Rx^I!(q!21iv>&7J!9=W#Z>2yb+HUUrg}2Yn6RYCbrox;O3Q zHyqg9Q+^NsT2Q#Bma6#mw{GQK;=Vp6?1(3`14cx}oV`?}g&uu$hJT9=RfV6?K#g&T z5xmeqIr`o-*x(P+wO)+!Hbnsp^E4%Va%zqNpD7s#@N|Qjk|33W#M+L$hfZ z>VS=_C=?XIU`G{7U2HZPZU;@Tn(MFhEz0nU4vG~*l>YUfH z{hkK|y{WfvH)DGR#rj`8o#&pYj#{@X?yC=vKkShS{qbAacjxd{yjcRt6oRQ<0O1;$ z!_gFW#@p%^C0J*9{vnDhTte!6(_j<9jy5#vpTRSU)s>v?$q$;@QMTe9Bf9w53mzQ( zb7bs-4&IO}GcF^uHthaORX6CVrgnY#TZuf9KOG5|!O8z+*D;cNJu@B*Pur#AfxPS0Es9RPhH;s?K;^_W5hCEwt7`6SH; z-s>1RP@m_Zl1+;>p|%*-2aXl#b_PTn<^*|5jPrwTpDw=_Qdu5m#pT-s`_Gri{~&Ci zE{`z8CVMz3M}TJ}o^cc(sw8-DhIMY1o3Ab&}9pS%yQHWt6Vhz+T+I5pW0t2XPU@`5;! zB)8k3Oa6zl2tgoFvjUM4<&VJ%ZV}iJV+*IZcso(U9J!WKoXQd+BLZ{4Y^Dm>qVrJ_ zy0e7KX!XG)@848GtIi%WrrXzyt21297L%&@zhJ4tcB-j6w>kBxG7eQ7jGplVDUx?K z3BX}=kY7`at=~{Nu}4yxb&li>DLY@GHB=`aJ6V*JID{=;Z{ebl!=D(=HhgI)@3blR zuq4-X?EO3$4eSs;M@AQR*&y%XBWPf%P1TOq?sZ)LJQEWSW*$8Z&Rd9Jxv2=*l?U@e z2A+jGl*;g*>B7e*a+zA-yh;jjM|90?2S(MDwzQa1X{4^~Y^+|?nT6@~5r;$HER1UB z=G}BI%RJ|0?i=Kyp0{A>&B6HY)8lREf)Ng87^C^fu>f^D6VaziWNp~^`?C|na;R_K z6t0}@;#M~uMdVZ)&lpJ~5CaX&$rm|e<&osO2y||ZR0Izf-U^U>gOJ+LpC#GXIm9CE zdLKvimGc_WEM*6Vb2vzlp-MCAqa@vFhKB~JHS0=u5TbhIHlX`l)z2zx1KXJpQF_-8vZ>CtR z#B`hQYYJfF;7VhfYSJh3lZtp;$l$F!ow9~vQ1WniHklTgocvUGA?3;H^yUm5UMs z4nQWFZgX)RDcjRq^pvrI_!#=9i-UpzQ*ZqrI#@(~w{v~&W6HS2ZY~oMd%L~UO`Ud7 zi;y)$)Lb){%%LrMUO6m1aBYC-6@f5LNOcamMF72P8@AJ#E#0Z9OdR1Q$|p7%dtg&f z&-O)=fGu$ApBaB0uTCZTG7{r)&U|4lB+yaZi1yz#r^A4VU$>9Uew&#}N@Xv&t!u5Z zzPICpaKilcapq-eh|7kqq9o_}*=ikBa~Y&#KhoT(e1p5!$N|Ir97#Fmt$oTc#zXo=^Wx(V%dl6_n`*484#Sza1xNG z1@QMN5p9neXy&R1y9?^5PrXDU#nm!~p`ReHVT{T%A{I%w`0)c9)nCem z9lL0QLlA=zF6@&O(J*Q zke5Qiy4FMLw{7@8DCUq8*>`f9-!pyy_0R_vb1QcQlI0H~fygnscQH$-VrL|Gok7<%6nBYB}mq6fwd@8ea} z_EKBA3uE~zeSH$QbH+|CLvHGvYA2@H6qvS6=#sX|k=q!yGO52DT{PW*1J` zC$yZ^=|pbG;{xZuYdOyS(;QqK=lM}FR#CZB0yIN=sgs8}4IAE5Is zHX7VYXBNUSAI2jBgG+YN!sKblxA7r3TiIjchdk%`^dZ~}=SJNb9V|$VAJyqoY38Ut zw?820j5>B!I8>DHpqPeBO6oxud9LW~L;f;D{6u}Uqm(PT-84ONAcs^LSZ;LDclbv% z1vWwAo4y5%AGNoixq$PwK^a#_?o$3s|99&nC0V5stmy=_Tf6{%w>d4yQkpW)Edo&l zu1R$~(rOf9l0D^6)7qTqGX?>F2Nx#}J4Y&NbGewPs2rBgi4G5i48fwg(M>H4^{cJ= zTD`^nEIG%mX{@}NfOo0bI)utVD*EJZRP!h?9dkb}aN*5tb)UGg01rY{xa8J68@6KZ zaNh1arOwZ?4c|d5ht)Jrnt;zOMih^wmbV3qUmrKNsIet&uUF_Fb%7=39eQWQZV-Aw4&v>L)fy7GED8#y~aP zEK%@}S?TzvLB@=IHzVAun+Hnf4C;F`KtOM1C4btzLD3hOP4A(@_h%ZWX2NEVD;CBp z>IYvJyi8G@NM_=7F`kVF8o3QHC7zE(eI)xNQ_7_m5_Qj~sYw^($tHwwNDTD`>iz>g zkM2@8dhV3KB#nFZll*i1qxKut7xc9rX2g5ynH%qstb7@^r9Y}>B7X23vD`Ox-M2Lp zHwq6K)~E_slLKF~!29|a1!)ufbBH)Y6d?;86!XDO8wAF(*{s`LV{^O%C@WHO$k$UM zu25oJ6J(5hOI*z2NqL7_Ja2ah?==Gp$kAf|essct7{f^sO_1>3>4D-hdnO{Of`7ilha(^rAv-H1$XuWDXV@|~aqLt;w~(J3RWGP9*C+HH z(5jp=7oYdh&mm3ML=Q6_jG+Qj#yr!f1_k4u0B8F7m`hbrcR&jSd|L1#3A#(e=DP?>XSy}T7L(Hu7#z4c&YHdDx#ADK zayk9AO3HL&c*GfB2dNWee5W_Ea&|X4;e;{?)Y|8xJ}g?_FnQcHG6L0~Xu-=lkXkGm z9`2MYJB+G#qKOh5*v>8FPJ6DB%3VPjS~H(q9fhtijRhlGv);(<1?RH@kj(|03R*eZ zJ_721uDjAc=~;8Y6Iefcp_R3U4@9(%x{&7>59y0aVTmIuq((2lnyrmKyve+1zj%jF zBD2HC=)!uE5B0KG#P<_(IJk*-YR{7V7G*x10* z3fuB~c_kJ62EOTIl#56qHMKc~C3gT53SlLH8>m9)V?vPDc1|LogzW0x=S^DzKqd6vaDoLS3zK2-F~89M%(T z9u*fVqZI-qM=RBxVfUMNxn&Xh138JBY?GlVBi~9V>emR7QCpFt%9sgR{?wsOAwLCr zr*g6y(-+c5p4T?p7^@NkD&%8XUuAf!t1zOxi3;)9qQmH{zOdvwC>65*go~f)ZwLPAfIJ?;Qk>SRt zar>gqKIw_37xib3sjoJfn&R{q6ZrNY@xey%AOqKIJKN*7$u$t zwUCAri`6UPg>yN6CBEOgG_YQ~7!y#0zG$#rzh%e)W^+DD&$K1gn4~zEVho^~#@LYNeu45sY`a|U6N3Sk>1g5&KZPjH9=2UMA!v_&m zG6`iKjA#xZ)?{Jwgk~+O#PafnR8?iUO22^n`s@J2Zg{c-#TZV=LOBk%wcIxLaIS1< z0eN$xbND98_OO!26G(qE1A&5-}Q_wrN>Euu?QUQ7QB*q+-numbH>vDDs7u z1~DlmEqR@p#t+t&DtOiB%$#IHRS@pxirD(MHh794HWT}?6RbTFMX`ZoV_8DXTOS~^ zoz$=QKpThbFWJRESB*!GIv8O)Gn$oyB1&s}uz3__2XTuK5O{J^Si@7-<4VuBjr5u& zz8NXErMu%873xJQH6&-Z8|>v_x@CjoTmKM^5$E-CFP=f9=!Zfs;@i#6v0vLPeB6426*@KcqvIQO;r9o5 zca%60{v28)3WN~O==an+Co_pNJ;-`d2dSpmH`l{UXVaz40S|`)blX$8)qTYy{=R|9 z7DKg$#B-BJ5QexEv6ar4xpPFa6WTjRorqrG-0ywV;Yaee@C~wXQz2feAl2GGvm%Oj zbYb(#8|`(}Bm<@BL+`ALLLOsor;AEl!N8GiTS>(sZ-WnQ=#A>o0#>}QPrEdj7e!5b z)(FEzQFB5Uh%*LqF5R2+Gj^aNI=s^r;jYA7|p&nqWbtz@|m`feu;Y^%N>1bzI@zOR||^0eHKzRg$*f12i?i( zBvn;UJ!gJ6Lxe5}ETL%Vkh~;j;KKn_2iR@lw2CvaW5$_(ubSKeDVgf#n=-=~NsQMF zpKvc;L&f5V?^!Fwu>&nTVEU>$=wb-K(zR+KU+C3G`n=Ga<17lx+Ja$NHPE-a&OB@U zNTGEDa=oAV2NU#tPe}#&D+FCUyzta5xX!4N^NK^RczSw0v*XhZsrc!9773}B#}QDU zK=S8b-;|dPU3ol2PNuGP)%sN$E3WnLeyCXJ`PjT>mbE%KM?pIGOxgE?zVK?0Y&dv* zYllKFCTbvonuYxSwqJ#)MZR_n!ejSb?^OwXq%RzXf4tJ(=w_c6#5tKEZZ}n0U$0)USQ64c zV4BkLh-p*8Z)?dZvyDE7f~StF?#^kRyy2>=5RM-L&N-PCh<6;)LUk@AA|<(O12UrB z#$Z?b$i8|oBv!$u-=bx@E!u+mo~YY?0}O?<6KUR+oPn_6&VI^tepQt3l(--|s57FB zE(#35<-c`?U5O>pI%x{9pFt6w`5Px8#2QB{{T5QE2nr^Q=qdM(%yG@O>v=P(11c8- z69)%a^fqWs3p4{V>O%^%O4oH#_BE##^K(8v-=0{(QF3M$x}_SY1UWPsPdW4W=Vo6o zPQrRtHTTB^Us0<@;#&uRHf5d4lPmJ{PB(X_VrJ*~dJI+c9iCpf`uqu=!$*e)K+qb^ zgsmQ3A}tAv?d!W=ga?qPB%;8L)GH+ERAeE1rcN9236TL%nr+f;RzlwF0zoRC?-TO^ z<}358;Jhbj=}1=<9l6pE9nI;^Az5jwhP?ie9xGtIU*aF@pV*K;YZX=f%^mmSN>OVr zdfmWbpH%{ovAIuq-8g!B99=xocm6f%TSGVL6Pw(ivIry;ErLJdN)6jawo`Y&OXyr* ziG$d;G$f^habV1mS8)hfGL+`IKE^ax@wQf{a=$iz3(*91zN;5d$ee`2McUk+K)sWYH%I!pSzzco~Of>Ba zJ`I3%v>zI=a54kG@YoQmHSZ4}f0RI;>NL|=4OzT6!Gc=Yk9`Ygg;R?#Zn*8!xM7~y z@Nk8Zs&tCrx(%)PM9~t3FkgJ%yqbVKtf8^sU|grL*7~9Ey1w<5y{|fBeFWEV8@{)I zWpLa3#}qeofZ}Kgdvq;J%6#=|X_+<6v7OECj?~^1tGQ>l>+{NEe$h6OU^1IURddjV zh9NLZq&F2o44{(eII@fBq9nVr_s4RVP5?I{K{?6P=~|aTyq5vE8APUBs-ZjVlj)Zh z0nOf%F9OT5Uhi@0xWuEXi$#N7SjSC_^DH%*Wlb~ls)aZ?N05WMANM$5mP+kh^ad%N zW{zY=;HO>RmZ@JqPd}`lY(~ReN-6IgvouZ!itu1{`tmC?139GRVoQpug(!odXB$*w zH)hWn8>mT#^81YTF>AmMDaOGiB$hGhoQXQrjysNRB3|Lur8sbG7t9_n- zG%k>qPeF%W8bS)kET$l3u62)x1rnc3Omj+0Z1qy9>heV71G{)m{-xMEDXAACN9-o&$GGP`>sV-p zdgddm7?c-99_@EmIu+U@SwEg2)ot}Rx@J1rha0)bUHGJ5Q`iA73(iFjarEs0-Ygaai)>d)8P*Tl)8=ey$^4> z%Zp?8Sbcb2WQd^pCG}r%jE|584?LH_MGv&sJHRKk(XZ-w0U<~oD^@GrE=JMB?(IlQqXk0|bPodW>=QrK9RNo*fuD3#GvBw{H(a3P z8)TO_x;=nQF<5n0zNKq)iNaLX-o*xQcDZ6191+8F$fr);^$i=QN|!_@x{Hl^wf_l- zE0eV_l%W^PY@WDd)6xyIkFhiN=U)9>R_J@df?TWp9nIOv*wez9dMF}4$DiE=u-`d#t#S!-kPq4MUjz;%y}3)M*qz4X4T9_H`U&_x+m?2X({qvTW8 z575^)c+diCTrE#q*Fe>1ui#BAlPAi^#eTs#W2rq#@V)cu(UoHxmxMvT*AOzhXse*(T>2gMnb>nQev=CJ;%9YaG8wAjT=`+cQkIpn<+=O`$Cpn~5b`?eru}a0v=h)Nhg&ba0!c`7VtqHy7igAd843 zW4w{_>dWvo*+F_H9`$42lzY$(7350@o}1HbMX@9)s6dij>LgpSNTR@7T7)e(Q8{%j#;h<{!onwInPcK4w< zaaEGc@&jb*4$u#6LWw~{GUiB5WZ^

e1Q$T3*U?mOPTB>(|ld)jp%#`T#E6HTkJc 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 aDUCj!_yA#vm?i?BJGV4%7F>V$?7skgdnt4P literal 0 HcmV?d00001 diff --git a/tests/results/longevity/2.1.0/plus-cpu.png b/tests/results/longevity/2.1.0/plus-cpu.png new file mode 100644 index 0000000000000000000000000000000000000000..e33745854a7ce318b5115aaec88ab9e945491ef8 GIT binary patch literal 110329 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∨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᥯z|iwEW^TQRVOK;LY-G8J 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�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 O>1Z2jm0!OX`F{W&BO?3& literal 0 HcmV?d00001 diff --git a/tests/results/ngf-upgrade/2.1.0/2.1.0-oss.md b/tests/results/ngf-upgrade/2.1.0/2.1.0-oss.md new file mode 100644 index 0000000000..15e38aa408 --- /dev/null +++ b/tests/results/ngf-upgrade/2.1.0/2.1.0-oss.md @@ -0,0 +1,60 @@ +# Results + +## Test environment + +NGINX Plus: false + +NGINX Gateway Fabric: + +- Commit: 43424f7eafc27e3fed07cef693614a7f389a3359 +- Date: 2025-08-12T16:35:50Z +- Dirty: false + +GKE Cluster: + +- Node count: 12 +- k8s version: v1.33.2-gke.1240000 +- vCPUs per node: 16 +- RAM per node: 65851524Ki +- Max pods per node: 110 +- Zone: us-west1-b +- Instance Type: n2d-standard-16 + +## Summary: + +- This is the first test result since the 2.0 architecture change since you cannot upgrade from 1.6 -> 2.0. With this test setup, there is downtime when upgrading NGF. +- There is a manual workaround for this release which involves uninstalling then re-installing NGF, which should lead to no downtime on the data plane. Hopefully our new readiness probe will fix this issue in the next release. + +## Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 6000, 100.01, 25.74 +Duration [total, attack, wait] 1m23s, 59.992s, 23.188s +Latencies [min, mean, 50, 90, 95, 99, max] 374.346µs, 19.546s, 30s, 30.001s, 30.001s, 30.001s, 30.003s +Bytes In [total, mean] 333996, 55.67 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 35.68% +Status Codes [code:count] 0:3859 200:2141 +Error Set: +Get "https://cafe.example.com/tea": dial tcp 0.0.0.0:0->10.138.0.49:443: connect: connection refused +Get "https://cafe.example.com/tea": context deadline exceeded (Client.Timeout exceeded while awaiting headers) +``` + +![https-oss.png](https-oss.png) + +## Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 6000, 100.01, 25.60 +Duration [total, attack, wait] 1m23s, 59.991s, 23.397s +Latencies [min, mean, 50, 90, 95, 99, max] 369.068µs, 19.374s, 30s, 30.001s, 30.001s, 30.001s, 30.006s +Bytes In [total, mean] 346576, 57.76 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 35.58% +Status Codes [code:count] 0:3865 200:2135 +Error Set: +Get "http://cafe.example.com/coffee": dial tcp 0.0.0.0:0->10.138.0.49:80: connect: connection refused +Get "http://cafe.example.com/coffee": context deadline exceeded (Client.Timeout exceeded while awaiting headers) +``` + +![http-oss.png](http-oss.png) diff --git a/tests/results/ngf-upgrade/2.1.0/2.1.0-plus.md b/tests/results/ngf-upgrade/2.1.0/2.1.0-plus.md new file mode 100644 index 0000000000..5f58aa6e5c --- /dev/null +++ b/tests/results/ngf-upgrade/2.1.0/2.1.0-plus.md @@ -0,0 +1,66 @@ +# Results + +## Test environment + +NGINX Plus: true + +NGINX Gateway Fabric: + +- Commit: 43424f7eafc27e3fed07cef693614a7f389a3359 +- Date: 2025-08-12T16:35:50Z +- Dirty: false + +GKE Cluster: + +- Node count: 12 +- k8s version: v1.33.2-gke.1240000 +- vCPUs per node: 16 +- RAM per node: 65851524Ki +- Max pods per node: 110 +- Zone: us-west1-b +- Instance Type: n2d-standard-16 + +## Summary: + +- This is the first test result since the 2.0 architecture change since you cannot upgrade from 1.6 -> 2.0. With this test setup, there is downtime when upgrading NGF. +- There is a manual workaround for this release which involves uninstalling then re-installing NGF, which should lead to no downtime on the data plane. Hopefully our new readiness probe will fix this issue in the next release. + +## Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 6000, 100.01, 21.19 +Duration [total, attack, wait] 1m27s, 59.992s, 26.893s +Latencies [min, mean, 50, 90, 95, 99, max] 334.577µs, 12.057s, 5.704s, 30.001s, 30.001s, 30.001s, 30.002s +Bytes In [total, mean] 294560, 49.09 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 30.68% +Status Codes [code:count] 0:4159 200:1841 +Error Set: +Get "http://cafe.example.com/coffee": read tcp 10.138.0.105:42937->10.138.0.16:80: read: connection reset by peer +Get "http://cafe.example.com/coffee": read tcp 10.138.0.105:46913->10.138.0.16:80: read: connection reset by peer +Get "http://cafe.example.com/coffee": read tcp 10.138.0.105:59115->10.138.0.16:80: read: connection reset by peer +Get "http://cafe.example.com/coffee": dial tcp 0.0.0.0:0->10.138.0.16:80: connect: connection refused +Get "http://cafe.example.com/coffee": context deadline exceeded (Client.Timeout exceeded while awaiting headers) +``` + +![http-plus.png](http-plus.png) + +## Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 6000, 100.01, 21.19 +Duration [total, attack, wait] 1m27s, 59.994s, 26.888s +Latencies [min, mean, 50, 90, 95, 99, max] 361.283µs, 12.049s, 5.223s, 30.001s, 30.001s, 30.001s, 30.005s +Bytes In [total, mean] 284125, 47.35 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 30.68% +Status Codes [code:count] 0:4159 200:1841 +Error Set: +Get "https://cafe.example.com/tea": read tcp 10.138.0.105:36439->10.138.0.16:443: read: connection reset by peer +Get "https://cafe.example.com/tea": read tcp 10.138.0.105:52115->10.138.0.16:443: read: connection reset by peer +Get "https://cafe.example.com/tea": read tcp 10.138.0.105:37505->10.138.0.16:443: read: connection reset by peer +Get "https://cafe.example.com/tea": dial tcp 0.0.0.0:0->10.138.0.16:443: connect: connection refused +Get "https://cafe.example.com/tea": context deadline exceeded (Client.Timeout exceeded while awaiting headers) +``` + +![https-plus.png](https-plus.png) diff --git a/tests/results/ngf-upgrade/2.1.0/http-oss.png b/tests/results/ngf-upgrade/2.1.0/http-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..2b637cabd066e952476c26d89e5b88b4ac0a0878 GIT binary patch literal 9787 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 BsVo2h literal 0 HcmV?d00001 diff --git a/tests/results/ngf-upgrade/2.1.0/http-plus.png b/tests/results/ngf-upgrade/2.1.0/http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..ee0077852f9f3bd5b18fc58a7f574d14561bd135 GIT binary patch literal 9688 zcmeHtX;f2bm-Tf(MJ6o^Wl+!(XAnySWY$8ClAJ-MUdaj5}B(IBu{g-7_u|5W;L>5 zZvleb7F9;Voc_U=ZeJDvl{W(*qT^J>-wNH26~VdMbR!uOzN**kl#6e!Y~!xeU|# zXhj@%A``D-`^ImgJp}D%Oyw_>VTiMJm6WBnnrybv1bzJ+NwE2!2%v96Mv;8adtg!W_=f$|IT3L-2t;#F5cbOC}$pS zUxF`>z%_494+Q@4+h*$W5U0Icp7;|zLgTB0Ir=Lz@ATkB*s}=HE!f%njxPFTMB+-0BhUTXwQD_j z_QJ^Nl<#<-(s5CY37|&4!S+; zX%=%Yafy~9A|j%mdXAfJz)kPRkoE9C9;J4!k<$GDr;EYPrC9D5v2iD!vZAVFFDI|f zI}2O4L)-85rTT~Vm42w$QLsW$u3 z83nDN`L8$0%Yzw4c-R2iqB)&34&P8Pz=kX@ObPR5s6qJe&Ovj3YLZ2ZlkK-bZRN2plO{x?%!Kc>T8 zw&+qU9USzpefdLYx_rcv%$bBv}F;pYKS< zj?_g#C^``6K!vY-g&KP>qA_kC{_$gieU(PB-(+uLYlrR>4mx*Z5w)`S*F1dgciyf z#9LR6CD^VLmx*b{=Pal8zwy%X8Lk;?#^ad5)a5A*u0ITuSujI4K;_w0w1)*7#f}zJ z^x|V28 zk_hMr+Z*@cX=A16<;#~L3sh89(Nw$QE3M_%MuIrgPyHXX@X$|=7f#Dw$B%3sJ1XO2 zzFLg6bIvvbtvmZiws{VpM-}LyVmmU?j+K5BceXja=IbmpC#dLza{XeJGEJUV2F(7N z?@*mhMMtHmyD0QANaIQ<4bR>qu&|<{A_!>^;G`!g^MV&t%~X4ak+y~VFN%|J#qL@6 z90GwDvcv)q^y|tvWSQ4F6dAV2&-RsEE%y9WBu7ybFa>-}tkPiBO$?R9n;ogop&GJNpyaiJ7d+WrX#FK6 z-pN7E6QxFB4^iaLM8?O*%WHbW3MeI4JC0&ZDDF@){bd*-=(%sFmRvOpQfCB|W~?XC zMfdF4bLY;TF5iQw*pd2Z&exB-eTx_3P(49G2i#q+4@69KWI{>u-`){}WlVKub-+PC z9+5%CelIO;&$e|-++MaHUmKS5omGr0#Xt~p`t*Aty4;xRi%&@K?k)Ii6YT)NFkTlW zuck@G33z}Sm%SGlJ|T1R=9Y$Ym}_o6&{yey51X_>eHJ; zOX-Td{l25nTw0;x)uB^p-z6s0O`h}D^8U%%`V;im9#|lJ^Nd2E(%h@X?e%V0l^aLg zmey_^{RACG2cSxLLv!<7tHLjMfQR{s4yoa3T?ofR}{=D0@geZ3~zgOG8_;y4ZC?Ro5YIGS9T=$U8k46GY$xZj94?R@S)Apx#3S;a*8$e+RxIN@l2b(vZpGcw0G)fu{vO=(w zCP>oovH@^$U->;^Ks~@!u0XVG;Cgezqutw7Z2T5yKL44#4f$JjWJ>&^Lh-ui6}xcv zkL>0VJ3aEN6V7HxD(D{f>ML=m4l2b^u^*nD1QyV+^1}LHJeSWQ8@PRV1}7<{sJ}8* zMpb}zL@V21meomKX(o%y9C;SHyl|=RfmXnb6Wg%^Fb6lEu4oJu4`2W}E(`FrsfYYMZ9NrLK?mX-zrA;`*1<&MUo-Jh6ogzE>g(t#U%_VT66 zmp^`ovTk}pyxQ^VLi*1TA_@9@++O28G7fj;D)f1%Z8LU$KV(7R9PP6AbZ_BqR4kyP zCRVr?6Jo>JI@a|vrQ|H_QI>6l5M=XF!`T~6vo0#kNxD4%##9E2Fj)C4HK(@$5k%uR zton-|I{dH}*+7&18>r$p+F9DjK_o7mKOe)~jD&RqK~-nt-QsV>A8YPD_VdY;C&ki^ zT$M0PK60vAu{|QHhqdpV&AXVr;vZR&o~fBviKjLoo6b3{Le_4vLXg_ETagn-Ziyh9 z2pQxqLADJavmZfJ%;qjexc*%f_gmcm8@k-xTXRrVRdrDiv@j`qR2DgLNP14Z8*LN(%?!5(P zjf{lNs_G`wy7)@y;^)YT@b~ZE3+XSkD}equC9P{;P5~^uM8&0suo|@!exj{H8q(|5 zSzNgAQH`Qo3?~hpAs@aD6b0x|3sHix(2s$lToO|yLIpbjtNM3_Krlj(TpLgk8;MnL zc}aN<&yO!oQ}j4?wBa7oLMhNFyGlPuOJmM}FPc5au*&xMdV9EVRT$-WTGnsF9486c zqc4Hy=-iwpV1)z+&||x{pW9SK_9ao|S-d-o`hzYId1Bxku&al_O^GY4X05}kkP?U5 zTkPp7rh;D3e47rlW&43chYlS)*ax44->oV(B{!Kvb_ob#lV3*?Ut;Ius!K}z=D&V~ z&-Vfq*n-x*266*>RfZsS`MxTt9N-S(9RQ91+Y9R^0@?sc9Rv}folqn-rDuhl2rqfa zae`~R!5#x^t7(XJ0+nrgI;b0AC%vNqwq>f{*p&+FD+?FgxFY?kVhC z#E2q0$u?tVCsS)zBXY0&b;CuF6B7TR%KArA@NbiP{{%r;xi}do9nE<5%&D7TeTyTC ze4s~&bf;iQ6~M<{ym;|iM_5n4u4Z&*nZbF5@|VU%03gme0Z$dO@@NBo06QF7w!Ch@ z%x{}_gHmljgXMOl4f(v20BS_IbihRc3De!UfsnQ`x(|vfnB8URv0e4>VTUsBK|o|^ z;>k*lzi-*s)YP=sIC&oMx*JYC5J6Zug}2xfnQ3iFYOZZhv>f>?yhr{Jc6q89uZsJ8 zXIoQqb8}PEMlmtVT$^}*$bEB+^1Fn7j@LX7Z)4~s4OkbS?LbNIV5Rg$3 zvhTv=ryfUK^|NQgRQ?pTeH;`Kh}poK1J~+P^@1I+OJnpjhx+f36O69cHFAJFbOCH$ z2jo2TH;{@Q&Rr)gy9z2+e0?%lfwZT4|O0u~&x3c_k=z9Lx{vuo2<27D<( z>;xMvbk0C9X8@G88dM=D6eUzq5StEQH%%quW`=7~u}`4M(^4>iD+_=LiT>)%A4DX! z2Vbrwtqa-O6SdE*Y%F+fn8hnCMeUUFOuz6$FR+e#W;{aRo|+(*iY_;kcvF~tC>DqU zFb&6f94h6>k;_ew;esJEwd<`di^c5)xsNPd8kEEAMj6kGvv6lM(N3pHjiKPTpkn8l zRD)1o0iOrLoPd1`ssr$)J%3kswVaXtg{O>FJ9BjTuZjBDvymd*pl(tFX-UAv^yfbq zPVCM^r%eOuvVB3hf-_)hZJp$={((KqJf&Qpqe{zFz(*2mlC^wk-MO~lrv-BcZ@Nl?)}8`P?LzDL(#|n{n$jLFY2lsK2nRDaFvFI>PU~8IzAOr6ZG!}0uBz*LG+lG_@+lD(o8I9ylBR%ck zDQKrmXZkS$;+7o+Y)A5ZyAefy*)yv0Y^)1wv@sG?yU*|mE)9Gg5LQP6S)+Cq!e#t? zdO&#O1`EBHKn^YTlX?ApIY6D>MM^Py3r9exeS}TSObv1e{s(-N|8^TGMtJIMPfEi1 zFD3g^NvmJmV&SysGyM()tYa|w)67^U>%w18pH!!=&@?-8pluI=zzG>na+990=HGkapcjVntWEpMrCB! zH&0qfqEC4Ji)Z~!zWzS}+53A375|48v?NXdSG*Js+9iXPR95~W%_BGRV6~0(C3coE}k|nZh5pZ4tk>>7~u1*pd`G&t^%lB zN?wobJUf)S5w=)PKO~_3;SMTrUX!QVdhAX!Anbk6iMNqv?hw)#vdY)TQOaQ!nJ9tj zJAb~o1xQ8c7ss4x!kpjTWl!~U;2ySR-mMvV&m5A+Dc!3!jd2$%1`nofWQlK;7|v1- zTQ`RvVDQXsE@f>{MxHt6%?YV+p5;Fg$hm(91D_>@T~!GNFGUSYR(2Wp2B_fPzEl^# z`gT+9uMJmr{y$t8>6fNiA(ZnNtl=uet>DUUX%@0z=cpw8r}6avTV+CIjW+m=v3rc} zip!eX*@ZN#l!Y*CsnC@#KFncP=9K(T1=9awuktrDCdvP8?=Drl@);??jMU9Re@hUB zP)(tbw_rsYBHm_TZs-MR*5Mxy`Q zSH17-_+q(-8C%ugXUOQd81>e%SS&DC{HOX#L3j0#`Tn8gJ4AHvDXGJ3xudGl9}Bl= z1jxrJp-fxzpf15~9fVNR zQn#r5o2Xk`u7n7dsZ3xfUiTXQUO!GE=mRT8?Eysa#K=Pi2WogNKD-Jk1CdWXGWavQjT00SKWlH#Nk@a)mC zF0IMx-=7&Cq)BTCp52h~(Xy zA4A^4x)-nN4yGOhtT`xKZ`pmgY--lMzv(1YP2(a+k)~FJHd2v_dGEst@ff82*;1*p=b+1~NySYKCjW zJ2da#zYi5&1?8Hc<{T~}X>AB44hml9#$@8R;3Ck+F+)TwkE_RD94W=iy@_nqb$NGe z(7?}2WyNQ{3^6ewBl3_ZiE6GUG^hK0bvY)9-3?xzqY(y6jc7P}4m~H|f!$%aP>>aQ zu9>OPt#?AK;(G|MW6F7oL9UCiE_*F|_GB57 zHfzcXS5bmQw1G0VYElP)zvYldo-epp9s=L}@rXT}-sJ&Ppf0p6DI_pfse<_VS>WCQ z2p4QfU(gKTlz77XHDRk@N~wii33xanA}O5i&hNR_VXRpVMnV_fra`0oN9U2U!be+D zwR~TJ`3-ZkQ`{?4mQ*=%Wa|-^A*fU&ko$`waJCx!MBwL|9(O!vX)sO~oI256P*ii%3}0q3VWh@DL!oTCy3 z4@V8WqsbQCrBUk$Yf7FN&Dw0~=0pUw#x%3j{O>1oO~wEH%?BQ1MsW`Jc5Uh2#2+@z z-!;dQ*>Tiag56gavaUNlTHglDSYXBL2($oJ&8;=UsR8{AIG`}bO=R~FlD*#cabei( zJy32ptrpTy0ugfHfrOHhW4E(tMD6qL7WN88Z?yxm|)j36(H#E9uiy{^HmXndm#K0x71u-(rs4D; z$7JCV0opGB(UtoMyEtB+FGPJ;)Fdh;4dHO=ImHl83u3N>u(&$H@ z2DxOMyc(VDDkq0Ku+GHFaQGXT3`eMUddSahvI0~DH3gFx39H=Mg_26NNrowSg>qnZ zM;ZKj11MO6+GhYnP=tWF*8m$qR>KJHNWJC<5y>T(4CUIEO$+CVlr$?v>vU<=8^|pUu!B3t)HYH8U&gY&_nE>Gr69kz3AAxsU1gUPj`k^7-^|}PxV#jWLzHZW4 zO-dNfiw&Sv+*0*LkR5l9_FqAUgVVWN`P)B=G@VkN?UERe&A^p-m z&l!zZrdhWy9yDJb60(F9!Sf497~{eJ<^d+bdeZDR_Xy*St?;N8f;w$-D(@$!+y4eT CN_PPO literal 0 HcmV?d00001 diff --git a/tests/results/ngf-upgrade/2.1.0/https-oss.png b/tests/results/ngf-upgrade/2.1.0/https-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..ef6412887b176d4c7033f32adea656f305ad55c9 GIT binary patch literal 9836 zcmeHt2T+siw)SVmhU|S%uu!&wA|N0jy}4y8J0h?x6lnozO4rarfY{j^MG&Po6#;1p z9YRS^6i~W|bOM5*1ws!HlH3*d`RBiP=H8h*XP=ofcjhoU4BzC-yT12b>sin9tnZKC zj1BmA9N2*%2tVrAUoIlZrk@aGqs6w3aAohFy;AUNyZ5hGFbJ~y9q<2!XxZHd5#%QX z^~=wf1Cpi(f+J0rf>-7+<`yaTTYTRA@bL#pyZb*o?A`uVXz%qq0<7=*=kj zmsZlNE9owbf#|L&V)a;(4y#AOWd@65&Lo`6?AVSVH_nCWAV`f%c+Ey++tGXkxwHK^ za?5VxPUNS!zj*2SbF*BFCu`N70~Nt@57FyW6wcJz+S=9DPBY5Ndj(Gld)ZK)^vbHt z6TR|QSPZ{Dcb88<2>1H5?3cqy>NgH|R<)-Y=&g=E4PIN6u8}+yQ*-BVz*w^Xr-{Ye zoA^=!zW#BzRe86d%9Is#?aO;%bP_9$5j3Xt^r+DRW#^{l>AnatoeIC{-aMe$@&nLT4s z?mb-KP#>nV#oA)C(4L-r`&w5wH$1D4>MRC}EVO7bs#d-}#4V1`eN(`%Qn_sEL9ulr zca4~KHhi)@t)5@4f41(RSAXDCUKuq6=iIePKzr5zzi7ZOz!}lwj9l-?a1y7fFAP@W zxQixSpSI^e!w!)+Yf}_1o8eNb$5|OMjFr#J%WGcGpIAuc26e2ahOAAHgIO(!YQ*6> z+v-45GqaiQf)OdbRn*{I0!v2Af2L|I1t(7$jS69}4fyqWaF@{BXmixZc!LNCwzA+e=h~koi3veW}2kxt=H-`1!d~3elR&3AvTa^5RvFbUab|- zb65X>%{}iXJREIqi%P#3ZhL<1sov_-93r{mh=U^~3pS(3BvqHXQm59UaTarc{d<0i z;WJjk<`$IQ&rha%iZWeVQ-WE`Mp2^_E{jqhAx^FIXH55%;TPKtE@hmDBeE*A=cU)x zwZ#eMAdUf#NoH0vuMu+j3T=BI@2lkS6QH0{C(~mm`THFC;UL zTNc00%{{(Qn^BEps_HCc7$qJ(AJ+yCakfv&BqgaQ(Z3WE60J5E;Lu-w0~J-ZHkrd( zo=#NrvR(Ei!wyMb%CN>Xt57&g#4;~x$o%MsxsiIcq-lCjQGC}^-Ibxc+XavI`*zuM zc6LsE$?JoZAlOtwcB;9wB&ia3+w)j!=9sLkRgtriUl)hX%E``lZi;JAVIT~NY7)Ir~( z%~LcmM{(=#{tzr;WJ)V2i0g#}`E?OPmU5z^qOvY!I*YZ$DUS5I5j|E)J~lQMr6!Iv z`TF`EIdVkSoS;2c!{3pab$+-xMW=Ft(2;2p`|R2IRNd+$BPwheUV$lI{iXJHQC;{! zH3*ens~@_1iQa>0Nz#Z9jgF2+MO`*Ebz;Umd$vnlw~9cJFZy<0*!GyTbQa{Lwl*XB z`t)J##WsDY`Iec$PMjM`FUCz$Ur9Uwci`T&|Q#sSrqo|8$GzGgrgJ-k#X+P5=(b(8n=H3&v z8UVYFUj1lZSV<`V8a7-TS~lAFO&8NeurYYFufV;hkb#HfVhu1_M*5_sHJHjDdWu|H zN8C|SL2DD4MDp4sAjg3B5S`%BS89~3sZ!}wb8Ca((evF^Sd1SOn+Ii$7lV@ z#nwAxUmv-7=&X$qd~!i5X%P@@Mu%U_WE52$n!(G;i-=d0;Y zn(E%%=D!a5;`}H`D_4_W-GX_ynB07O5 zw_C;w$-fO(8&vlhZ|lr4mqN`i_j!3y$vUisH&qUjsEcN1UjS-pX1OJn<-f@7-=!{f zd&?Qjha<7M76n(E;uHm-7&22sEa7wMhOvO(Cj*mL@mwbUspS3>cBhy#0|FxIZL_=h z#i2TwD{~|K%#isHQt<*eQ#DXg3L$e3_14-W08iE2yH5nn4zXq`6`SwZ`wvez)IIW@ z`jV{a>)M>40sugU@3c}s8zq^Zo<6oN)ME1gkEJ0ca55_)A%PLhzztOR$|@+JDIvia zf8rFO(zEsfe@`f*nmL%FgDVsW-7UKIhEJT=#};PUOe%MYh)-TsXT&Q9E{@*-WGBym zlpUz_rJRGXk92SUddwX-PTMie5X`z ze0>M;s)&~J`j3tOKm>k$gdRiXESC|hmwTbuF}r$_N^{Ta%URzG3kw^mk08P);n@Hj zy_SvUe_FZ3@YmAZ0ArjH#pjF;d`<0!m*voyH#>s)q0smCo z3`vi>pw}w0I_-sLm2}y%awuy#wV?vg!26)myR0!r%i2sTo*S?1B6Qqhwvx*B9BWBl z7;6>R@^km|daTSCsANLl%OwzWgH~ptJ8~vcIavS-tgXpUBn(otu}Ta2O_;U$SV|RC zBd@Ppm(N1`SYPZg!LK%=jZ?H&p~Wgt)^G0QZ3Ju#8S-wTBa;HhRsUEN>Wb6bMULqy zar_WvQ|YGzO%TeFo622Hg-;NnM#DM3oNi2JeoU%AY<=VX-jTZSL_Iu*Pdq4+y=ph8 z7?xAJd#k9874?Wf@!4AH;iivO@=ISIDr9s__zz;ocxkct$q;}@_vUEB$B!TB3JK{Q z6XNSbd=dta>4VkZcV=yhNWIx8*F!ygKC^>6ufSD;=bag-G)YpQOZFeUzTy^0YF!@@ z=LURyCcTMoH@&ZnQGR0til)oE3PQ<;ri6+*xqhVlY<6}wc|MxB$e>b+i+#HD?IU!S zyQNZtK8?rq^B@@dt22#w@L6=UQM{59KugbEHP3$ako6Thx z?=VfYO{i=z&<#oxznCVz7xx3g5zsrl`R{CT^~XcVsS`xI4ajCe3j}$ySqT2Ty#@K< z{6Bgr*RX(3T^zu@TLM9nO*NA}84B&vn`EUMJ{6yliJlx1Jeq9(tKft275#+#X-&>O zl*_(P_YP@tBJX44>ms&o_-`q!?_$|n>ZN)v{}$xAgUtCe&_w<^!~M%_*@Hh9=)-5O zFCgT-^IMTN)cdMCC2n1WMTV$$z=_c$*nwx_KW;=eyVcidLgl}{kVc?zfJLu0#iX+7 zF2XiG?O}UmZ_-^USOnQ2aWo$qQKjFsCbX6-Mb5#%V&lW1+gQRiU}U6#xv!F_-D27n z7cMCJPJT8J4?bB>h=g0iUgzC5wY03b*8Y-5lQeER0zbAYb>FY%X}#=WVU7-7Ds*a0 z0U8Mb1FQgph?X^{4QxT$veG|I_zX?>&Gc*d(Ysd{#(12)CmhY5G*|QJy=-n?c4MTD zxA^d!hTpdXntQcX5%1f_&Y#&#;d5IYZwCf22q;(^4vbwLm~5P)L&DL^k8R-DFIRGf zhM^S!n&6sMy68YzNnRM4FLpwd*q)+A_C82tmTP{j)UJU(U#X zhVc8>1@YvzibrqpWf>K>FS#|Cjfjt?{q3cXvP2$Zhvc{*wHX#^>~JlH)`XqR z%H-kIdAsIhEq|ar&~LnJ!=;Rq_NlmjUg|=_PioJ65fs|Xhw_#MSI<1QIkbQvdoG-^ zV=rdvL7U-`?zU?jwLUqXW)3$5_pRad$9ww0i^Js4z$w31&6b^>6%!efDA4RY*$!MwDkb1> zJz+VK4|#s#;)G8{w{o$iOs91HRwRsYVsAT{*NV!Kf0}9Wugl&4+m-k4=>H{|1LeF7 zbkBSEEyxDuWam_vEMbMFM!~Mk4nN=%(GHls%_p`Glog0X&&ugiU~)O%a2pWKEY&S$ zXU@C_ofxZt=9weFIy`%euY(u>-v5!FM>O1-GImo6!L57o@i&qwHS%8&5w zCtlV})@7LR#2K{Pz8rI6Q!RHTf(s4y?PO<;c)-wYNtA8iL^`y`8IX~mUtd5)L7V(K z->85ee-WC3rNvj_7Ir1Oc63kMpK&!WFnIohm=W5P{v&eO<|iicLF?fCtlt}mb943L z=#bTKAPH8#l#!z)Kj<*~iyZ17gPc*o)f8Xv0MaqXVKK%A5?#h0@39bWNJr@_?OfSa zjxf;iE{wOAe;G~e2fYa92pBI)0w8B~uD<*I0pBALjlztKqYKLK`f*whcg{{q&M|iT zgb33XEDlko@@q7KyT3g1@WHPAH$exv@L16+5FPvx(z3EzxMg<_50Am>+zEQ(y z@$oA8QJ4HX!3>+zE#O1w0h0ks#G}8wz#u{_J{(Zr!^fglj>LqvWUENDYX)Cuf!3U3 zmIsKJSa^_U9snD95Gtw@SPY6494W?N)kPyo)chwyg=)|q@tb;CBRe&?A1t2qn&wY6 z*Xu49M5O8Zab+IeVq$rUr&X6lUuf0ij;BSa_H*L#Pb=LPH;(1aoRadrO{LHz)3n|s z_H$`o99oY{s!fH@^|Xp}QKR5JbwgL`^P(hU1HQid!zfX8;6}ZuT+dFV4O=pi{v6L4 z!-vei;ggk><<2lTgo!~Qpl-zKQg|qyBx4L#i{t18pu5Sdw8T_a|JeLYv$9Wpz!q83 z5LaU8H0_)0^GlU>40J>WadI<0W0=9^FrG?YAqQb=nWuwC4pJNF)4e5AU?znMi0i_M z9@2jxqUm!DHmE1$V|7`PcWm{ERewIs%AE_?+(@dg0ap68sb-6;#T8*Xeuwon`KC#p^M~b{yYv-f}}KR-^YdX{_eKz*E*`xga5reWrPx`LAz^MDEEx9JVa+796vP zeTpxKW56}~^7(U;rf;@|#2bw)*`d>I{TQ3aV>L~L48D`SpXOcKOSP#4h>AV2B}7TV z(oXd6=v@YmNiwuG__2`q`O@T$a_>>2^q8P?Y15*USBfKR_sHe9r0692??g_yd``DO z^9BU~;U4AR#@o|?pF24@$*nG4mg&4^sF@rB)@zjHYLOnRND>u9A1TEL1<_&?Y;j1c zeSBGHs5YP9>n=j!4%KKilD@p?!uE~NlTWfe$f_yXX*v&e6UdXwoTE&wnR1>7=tW`s z(T2hIQ}yWesTcL%^Zi)P;G|!Z$sF+MVH`5ns6golTc=(O=MD}Qm_W2KT_&k2b!zYN z9a(AYG2v5M*Jp@U-#E`OVr~7@N*O}a<*3)9S(+Zgs7HZL*yZFD0{)ZHk{nC zBlkZ3j==LvZZjnLdW@a3dB>&$9@kfku34pci5sD#Ssgpq9S5b+JLY!?ooT4+HjC`Mb6EWAjV{( z*P6XTo{n^wfF_IpqNLXEtq+`REB^r>)^r&cj8Au;>_3g5JvZN0WkTHzy}1j6KbSLY z0uhJl^C+uc`eK!rkdNpK1@E^~I(0C%pjyhEbsz=P0JgQfb-6dt2k?3-zJ|$?SDU@W zbc59E_sqfEj~|qW6~MSP0T|!O0`!Vmh_(B`sPE(1qkJPdAqZ+M|{?WY- z`yHg*BMb{n1!>hXVdMu`Df+h9tAlqRk{@9OpX0Whro{MZpZ5F*qPT}q&82G`sN_)B6p-0YRwSH&PiTW(FJWHUQK(UntBE8~Ql*1z%I1t=e}4%=_!g`f7p{2^L+_qc=BK-xpV zJQ8LMVqP2$72mDx0?V8`cP?<5zW-)v&2~)EWT@WyFxVLe;Rm9z-9W=pPmjX%jI7V! zv%#eA*FOWifYFEa$cG_rPbiEj45MCwA(bTcq4L~x!J`7f(lZVBuzQ2~`>YxwzsFTN zl~7i%=hM-L)*7(B8tVSAW_#a+m`zg6+Jp(7r^|(H174J*t|U^|kAijZ4b5@tuz`09 z*lS%BT@VT|JX7m6wY41tQStNLtuT9-0x$pg>^+i634H8FiL)pBmB2*@d4DO>*f;5r za#-af5}!K5>3H`&Iqm1+`kvkShgR8w=Q<885H4Y$8 zgQ~Zx%Mf(-i8P!`DxZeu$(1tb_6bdE=1WzbkaKJPO+^U?!qnE*3(hFR?Rx1}@wjm}u8jk&-^sG{;`V$xjBJn#F89fCoAP08t#R^vkjArKS6v+w0GP4?IPe-{gpZ)G3$4R1*ASS zj%t1Sf%~hP#_ka2I9I{z&imd9UpLHC_wM``!%xQM3V+s2PEm6D*!DsnBXYvAA=1i| zl>R*^I4&lf-ocPB;3BKQ=liM7w?o~tBOAM;HnceG->E%}6=|D41R^(4@&jnARF*r| zJc}Kp==wI}rTlv#im-POZbX|8k(j$VTjetBEj;>F^b-A&%*LCCUKqFdL6$t@Ya_&L*lLfY)2E`>FH2dbmQz?IX_YIgO`Z5NCA^&?u z!~@4)fQS0|^JfvgkSg%@V3-Y_Ce-$+?^RJzQ30;v$u$XQm^-<3-ka8OY>!oBAcq>e z34#xD?K=)Zmxz}{!8lVx!1JWzps8zw)1%~k9r^cWMsc0iWavT*#=I`n&zGrHqXd{Z z4#53)yg3fYsB2o`(bzq_aS9T`2%Vb<<5_2~v~=EB9^R@5$jI;6W0&8msINC4QoXf55>Sg|E%51EIJ_37Q&+cD_9a;rjNy7mU;dobcj7oc%! z+5g!%eOUbfk$;9Q1-Nh;^iII z%~upkT)&t;eP&eOZxpfpgMwt)j@Xt5Kg9oVS=MQX>ABiJPi>yBQ`tW*sjt2GP*x|`!<1j91ztL~uJJF%Q;JSQh7N1EcRLhcA#DQ3}0B=?Tg+5S>i z4TV*+wls-5?Q?{pqf#CsTUX&bxxL_eQ}p2uO{U#s`^#jf9}ej_oDg1DSI45F_N&d6 z_BgaKPYN;7Tn1Wj*GcQj+f%*}QoVdwAsp-IrO4juKwlG+&tJ05mNe~^JVu`qTt3Da zYi}r1%xWi}*4{fyqmVGJt`pv2OUcV^HNi}+`C5Lp;Q(HI#Kkx~yAi|IW!#6ybN%K= z-ivA6en%^)8V;O%$qSalq8rnbPB}M-v)_xGYp)7(=Y=y35@RZC8WW=qs4v2s8{wIA zgB44E{{ASDSwl}R@4#tu``mH)d3gq;zGYsdD{T4d`3qP%`(1K&)}hWmJ`48*1XpJI zmd3=nr)dE_l~`U}?D-Fx!7DTUrL+gzM8X!HqFspP)z$1=^u{%~s-6OS@qm%L)A%1Y z`fwXI^x>K)u`_qL8%+PX!8Im^%k0vgio&qR4(mkR{`P4!HF$1q{)2F?ac6j3HvLHT z8Z}u!KtRR8VEv8u`kMi7k|y?)qV^Yl;j^D0)x68G5*tHZtG;MWIhMmp`mW%zr>k368Rs26j6piE3N==Nyc!^EDo z=9U&Iqm+O~F@N^76{)|}vj^%J!n6o2ld&pzi#FB>S)Kp(`HgtU{QJelMFy?Md+?nP z#G)H@@Z}l*8%M1&h))#)7sq2_V&Khgci>XJmZ)uAnZ_Nik;}p=aJ>S8yHd15*Xdji zy}01o&@J@qy!(7s*iA{FW$@K8>^UXtxVShxas671gy3#D13Ire^2>*V))psP7n~a+ zKZc}cl$6~5l4X);PhwBV3knKK8793Ts)w#GkA8S$MZ$M>cD6FfK2&|IoanAy1*p>L z9DXZfTz}_7HTU+E{wg_#YHMrj(|*%m>>6@IrFJ=C)f$8^(dcU)+hS*B59G6VIxatnV!y^MAAmiwE9 zq>mpze&R&n*T+)S*2E<>%#xa3jJbuy^`T0?&bNAMgEw`kO>nN+f$~h!aG`T!D02wg z=hq@zzGIKVA#7DHtCg3?(>F&JCt66*I2$YFr0ca&X4U}=-5AK7@`#sSOvp-~`#{%~gCmffZghc18n48YRn<P?fXwvfTH&WB zvweyqTFruo+>K&f0O|O*>^vzWLnG%8*!vIpT)J>P@~5HOoLWt;3Aq|={(X} z>2=11uGr}5=|Q&RWo<3T{HWXw3fC~^EnpaA3JN!Xp=3_#gZ3?U@35q>K1$) zkcugN^!lhU1`4RcXN-3OgJf0NrP1ZQhUa2cp{$h-EmmH`iea*9I@1l#wp?qanfCVW zTLOU)WOPjL7JGH!pk|QE4RYA2DU`hY#e9S3PZgj8pe51oZaTpjda2({SyIa`Hd$9|Yl+;h`nli=da+9VF2m9;wOPZ}t&uY%HoGPR@i(Eu1Aoz7G$3^WX& zMr&Kx#=4kR$m(E)?^H6c@$q4d+~ppdjubN70uR>P)F@sQ;zs++GhO@7+?ffO>P*)l zdcMCW0NrLo3<+dBgOO)j_)Gn#S30DXQoO4eex(NP_C{;MDOwL6uX(fT&g@+EQoH!Z zH{C>8(psDMa1bpY=ERp%VGf(Txg?7wR_EkgtA8TO1BXmwT-ZqMT>z45=5Vk)iM@#9OyM%3*exV>3xEnu zp7T{6D#H(c34m$Pr%^0%=`3_ERvzt89kAeyVGTfO%b`lH_7a>DYy48y09J+1&Yuem zT!Vtu+F0&_p@pdiOrY{>KqG5lI3eqXt-0&XR>Y!^wMD>RS(~Eq55n5)nc|Kx&Jr$4 zT$}T?{;7BM!lmb9-9)UYjO779V8C^_%i&C17|Owc!@y%SYdrgkTv;o#$=VnWv^-}L z!*TB~@wnb!lD#1H!>yi?IFH&RgST2_kLo_RE4lg^&`*gj>?U@Ugqm^u)Ty#!wsZ8;1bpK#$0b9 zR5!GmTA1rT!qzFlksKMD#yzE&ERFF++Xp<1#p{jaY&Xp|Ke)8>Y9v%^IrNq`dsKKy zb1TA)D&NZYS7tbTmY&+7?ckGclWH4({tr=LY4uCD2*cC;w}C7yqWxRN`yr!f|?T(uvO z@c8UN={gx}1bP46F65lTT><1z29A8lcOw7mFL`=7#$mC$*%;tlI}&#wX>m^i1w4Tm zWK-0AzW&st&WE5*cz?eM`OdShRs&c7)R1oE9uo_TxZ%Yv9A`OV{|)PkTdrbNNjDB6 z;neR%tkcueVWiCtRWb8yig|Qyx#8>AuYNT0>~KvmKn%e6X`k15d0sFdjkVTX#Hub( z`H-eJ4Vx{2!2%5`hD-zTz{7xoCW0Pm4cS3k8Sq9EL)HZ4tFJgXH~^`#wtfebDX$7a zP^I_Gr9}fOq2G7zSM~b*`XZ05yN&e_S4w4V%j_y|^JXJ+(AStTM(efc`6Te(nIFN4 zw3&VX9`}BqqRY=XtX_mPWoG=+yA|1?b>T? zmSJ$>`0)f4Ps&C94OIP3108o*z~>Ci%kt#{0LbOgXUyk^KuMbpUU(FrV4r#3v;$V*qgMm zGSPx1&DRM|OiZ}Cx&l|uwajm>gu1ox>}sL|D;b4y!eKaTo?;3Z4jaaTags7LvOdtK zY3OM=UJv3g)!btY2h%sYv^Tn*h{}L?MKwA>8Lls9{D7!9)ic7`Qfp&BX+Z{r(XGWRRDpTy&<< zOSkrv#LMZD1_{wx8F_hmSy@-1L*b7t%u|R-iQ>R(UvjPo7d=r8y_Kxy?Eo|CncDC> z81A;-HGVLWcgxvj1@A`A<&q!VWdMOX$)gTm>!GRrV7Ky-_h?OIara&CU_O3EXh6k{c-18c?kwk_G|HA%9s6rFEm!n z2q0H$c-AbqGrYRI%#s_xWgtDiRJj?HUnaaPBYy@`Q9 z>nWU-@>q$$)zL>xpaNiwx$jI+bZt)64Axp5xt|wYyu+TG{;Q=+)5&nVaawk9ws?B7 z6yb>WI1$vMgx)%njw4oJxE#=|mfDV=($0&DicT^AL>u0(Z*TIF#&;<9td_ZhcvPp; zUGO=w-BSZIfK3Z)E?)_1nd-`{0==@404@#Sr@5u2+tB`R>#P1p;&V5p?F__3x3Z9D zJ(A-mEi5cRFl&OLlVO;war;~JZ~*A)eUB_Crc4KbMHxu~0B8k}G7x3M;7KGtgHdwE zmukTH(4L}h1_lXuQGVW*Jh!Y2Ag?>uN=k203bQDs7xR{+b!MqWXf1H{fVB;Q{_)H8 zQv6;ttG|cHNx=+VaL`2A5b#|z(p7ec#hE=xy0w$l)D9fCQ(wMju~~*k`53dZ<2rM) z;}>3~FPQj;dwOg$erd=&KBS>F&gsEy^ner7S=^yz`=%g9BJphCBIwnf2Tn&517R=% zqccc7tB$QfkbJ8*N9J(cHJo_xOd+U1_AG^SeYOS;|KX7^y|-{|zjyU#sKU(DpliSY ztNiJly4}QRKkxWgw7yi?SHF3fREG#$DQ9c>sZPDQEfXL>qjToyF%mX~zg#@8LSa+Y zx`KgbRRMqG0|RNlY98c5$~bkf($6ykH$A++rT9d5#X+Q~c}!=5v2c9o!1ue`(YG?4 z3Zl4I`I2Hu4O!YW#D%*%Yl6^7rub~vI{Znw%RiM2PTc@#$MKJ`ODe+1xfj(nKY|Ud0*=sgu`|4t6wg+i z&dyW?7YbZX`H)dT8&Z#q^?3VJYb4(&mXjVqV~gg2YkUKUacwvsxVN-{ayonl7|Kcd z_UCJqJ8=2@hng7+?}nt&+ZVU*5*kTA8NPW5J4g$a&o49wFXNL!&zkK61nH6a2ZA}3 z#~?03qN43v#5*4xMscDgy{hB2ojUhLC_DYx@|26xpZ){eg-0-m?pbQ2R|ukPt@N95 z?hde-;#+wq{Lh`679B@1^;@upJEjw{y^t3cb zaKu&0)EtG91DmSlo#pt)nWpd##*PdKR;1GI6Svo#P$c${iCt>WU4`o>wx zYhE$KH2ds#WS|&81p8Xsz=(wS+}e`S^?3HW(i^0$xa4m#8cb&Wf94c}QF96n-K>T%A-3Fl5-5 z9K^5}`m6SpMYNrD`Jgyy;i(kg@%mLCXnB?nZ9TPf-oIMhWC5 zSFiC0+G`(;!HQ;1=i(h013F|v_9KH9x*}QgoM6R|5MEcl(=3hD@Br>|uUvhDaAJI; zYimxne0_s)0{N}697C*V4fkfhwiAjUTgZnG63_rL4Ag(H+?$dc_Vv}u@NFyD4jgYZ z1Bu`Xkk>723oDNpiHeYsv_Q#02p6nKU$|m`YOmiR5!N*7uo`+kCa{yY;9WlE(`Beu z!ywys`6k{dA&Am{774uNnWS+9~opst5CI8=NB6 z;faY3HFU310b{dWm;DnH5!I z2=vyM)y81X+N3YH(KBM3XK%5)v6Is%IDfu--J4o zMLxsb1cnb|CI>e2l)NFiXLcW`dy68d=!QK0k`(;~ln9v_9@G}y!oUGstefum{XZi; zC-foQ!y@EAamG#YhnE%)h$%V=F;Kh!-$ZG_QuQ4y>^9FpbRceq!9?jUKZz>IA`ld4 zcpH_02c?YJ0e{#{RHP_{G?hSvOge>BQlea(K5=raR5CB$p{2KJoAAN2pgycOe19z+ zNdMKd_pANicZ%HA@lnb z0T$_BB83nH+o7(;o#hjsa>Py=T&p)VpYUmbf2%ZD0C-?PWMqT@>A zU+!tyG;&{2nVUlc@1FjWN%F4MKkiAz>AI{Yp%c%i#hNJ=>b1q+$FIwzfm`LNET3^sUgfy9X7%7auCmkjoOTkr`^Qz>6(L{2ySC~$=A%lb^7!vDWdYoc&r80*cz4ijJf+=T5IF6pntJ1UfhNSKip6SyMjPX znTOaZs|{+PtI_7>UtnzrBV}@RlvsNh28%K*GC3P8X!$T;G`ue}u<4I?6-7cky^5QS ztUp+w4_vF=r@9mk*J`)9iIr~6d|+4@0k>Mpjf4I)vjY%>{**@(?O5ip(7HCRs5<$; zaQTnS0xn`t#a$K!iQMlF{^0vX?xRb5NP*ISg{Zw$l H@!mfH3fo8q literal 0 HcmV?d00001 diff --git a/tests/results/reconfig/2.1.0/2.1.0-oss.md b/tests/results/reconfig/2.1.0/2.1.0-oss.md new file mode 100644 index 0000000000..cb7b14eab1 --- /dev/null +++ b/tests/results/reconfig/2.1.0/2.1.0-oss.md @@ -0,0 +1,153 @@ +# Results + +## Test environment + +NGINX Plus: false + +NGINX Gateway Fabric: + +- Commit: 43424f7eafc27e3fed07cef693614a7f389a3359 +- Date: 2025-08-12T16:35:50Z +- Dirty: false + +GKE Cluster: + +- Node count: 12 +- k8s version: v1.33.2-gke.1240000 +- vCPUs per node: 16 +- RAM per node: 65851524Ki +- Max pods per node: 110 +- Zone: us-west1-b +- Instance Type: n2d-standard-16 + +## Summary: + +- Time to ready increased. Increase is more exacerbated when NumResources is 150. +- Jumbled configuration issues still exist as seen in 2.0 results. + +## Test 1: Resources exist before startup - NumResources 30 + +### Time to Ready + +Time To Ready Description: From when NGF starts to when the NGINX configuration is fully configured +- TimeToReadyTotal: 15s + +### Event Batch Processing + +- Event Batch Total: 10 +- Event Batch Processing Average Time: 3ms +- Event Batch Processing distribution: + - 500.0ms: 10 + - 1000.0ms: 10 + - 5000.0ms: 10 + - 10000.0ms: 10 + - 30000.0ms: 10 + - +Infms: 10 + +### NGINX Error Logs + +## Test 1: Resources exist before startup - NumResources 150 + +### Time to Ready + +Time To Ready Description: From when NGF starts to when the NGINX configuration is fully configured +- TimeToReadyTotal: 21s + +### Event Batch Processing + +- Event Batch Total: 9 +- Event Batch Processing Average Time: 8ms +- Event Batch Processing distribution: + - 500.0ms: 9 + - 1000.0ms: 9 + - 5000.0ms: 9 + - 10000.0ms: 9 + - 30000.0ms: 9 + - +Infms: 9 + +### NGINX Error Logs + +## Test 2: Start NGF, deploy Gateway, wait until NGINX agent instance connects to NGF, create many resources attached to GW - NumResources 30 + +### Time to Ready + +Time To Ready Description: From when NGINX receives the first configuration created by NGF to when the NGINX configuration is fully configured +- TimeToReadyTotal: 24s + +### Event Batch Processing + +- Event Batch Total: 309 +- Event Batch Processing Average Time: 11ms +- Event Batch Processing distribution: + - 500.0ms: 309 + - 1000.0ms: 309 + - 5000.0ms: 309 + - 10000.0ms: 309 + - 30000.0ms: 309 + - +Infms: 309 + +### NGINX Error Logs +2025/08/12 17:03:03 [emerg] 8#8: invalid number of arguments in "zone" directive in /etc/nginx/conf.d/http.conf:174 +2025/08/12 17:03:05 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:935 +2025/08/12 17:03:06 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:1822 +2025/08/12 17:03:07 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:2158 +2025/08/12 17:03:07 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:2396 +2025/08/12 17:03:09 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:3348 + +## Test 2: Start NGF, deploy Gateway, wait until NGINX agent instance connects to NGF, create many resources attached to GW - NumResources 150 + +### Time to Ready + +Time To Ready Description: From when NGINX receives the first configuration created by NGF to when the NGINX configuration is fully configured +- TimeToReadyTotal: 128s + +### Event Batch Processing + +- Event Batch Total: 1460 +- Event Batch Processing Average Time: 17ms +- Event Batch Processing distribution: + - 500.0ms: 1460 + - 1000.0ms: 1460 + - 5000.0ms: 1460 + - 10000.0ms: 1460 + - 30000.0ms: 1460 + - +Infms: 1460 + +### NGINX Error Logs +2025/08/12 17:07:27 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:461 +2025/08/12 17:07:28 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:1054 +2025/08/12 17:07:29 [emerg] 8#8: pread() returned only 0 bytes instead of 4095 in /etc/nginx/conf.d/http.conf:1397 +2025/08/12 17:07:32 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:3131 +2025/08/12 17:07:32 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:3369 +2025/08/12 17:07:33 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:3790 +2025/08/12 17:07:34 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:4504 +2025/08/12 17:07:36 [emerg] 8#8: pread() returned only 0 bytes instead of 4095 in /etc/nginx/conf.d/http.conf:473 +2025/08/12 17:07:36 [emerg] 8#8: pread() returned only 0 bytes instead of 4086 in /etc/nginx/conf.d/http.conf:2080 +2025/08/12 17:07:37 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:5932 +2025/08/12 17:07:37 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:6051 +2025/08/12 17:07:37 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:6344 +2025/08/12 17:07:38 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:6701 +2025/08/12 17:07:39 [emerg] 8#8: pread() returned only 0 bytes instead of 4079 in /etc/nginx/conf.d/http.conf:2795 +2025/08/12 17:07:40 [emerg] 8#8: pread() returned only 0 bytes instead of 4095 in /etc/nginx/conf.d/http.conf:4649 +2025/08/12 17:07:41 [emerg] 8#8: duplicate upstream "namespace62_coffeenamespace62_80" in /etc/nginx/conf.d/http.conf:7876 +2025/08/12 17:07:42 [emerg] 8#8: pread() returned only 0 bytes instead of 4095 in /etc/nginx/conf.d/http.conf:7686 +2025/08/12 17:07:42 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:8745 +2025/08/12 17:07:42 [emerg] 8#8: pread() returned only 0 bytes instead of 4092 in /etc/nginx/conf.d/http.conf:2628 +2025/08/12 17:07:42 [emerg] 8#8: unexpected end of file, expecting "}" in /etc/nginx/conf.d/http.conf:9146 +2025/08/12 17:07:43 [emerg] 8#8: unexpected end of file, expecting "}" in /etc/nginx/conf.d/http.conf:9265 +2025/08/12 17:07:43 [emerg] 8#8: pread() returned only 0 bytes instead of 4093 in /etc/nginx/conf.d/http.conf:6150 +2025/08/12 17:07:43 [emerg] 8#8: pread() returned only 0 bytes instead of 4086 in /etc/nginx/conf.d/http.conf:7337 +2025/08/12 17:07:44 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:9860 +2025/08/12 17:07:44 [emerg] 8#8: pread() returned only 0 bytes instead of 4088 in /etc/nginx/conf.d/http.conf:9106 +2025/08/12 17:07:46 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:11276 +2025/08/12 17:07:48 [emerg] 8#8: pread() returned only 0 bytes instead of 4090 in /etc/nginx/conf.d/http.conf:2382 +2025/08/12 17:07:48 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:12868 +2025/08/12 17:07:49 [emerg] 8#8: pread() returned only 0 bytes instead of 4092 in /etc/nginx/conf.d/http.conf:2416 +2025/08/12 17:07:50 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:13701 +2025/08/12 17:07:50 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:13960 +2025/08/12 17:07:51 [emerg] 8#8: pread() returned only 0 bytes instead of 4095 in /etc/nginx/conf.d/http.conf:5827 +2025/08/12 17:07:51 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:14620 +2025/08/12 17:07:52 [emerg] 8#8: pread() returned only 0 bytes instead of 4095 in /etc/nginx/conf.d/http.conf:8849 +2025/08/12 17:07:53 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:15560 +2025/08/12 17:07:53 [emerg] 8#8: pread() returned only 0 bytes instead of 4046 in /etc/nginx/conf.d/http.conf:1758 +2025/08/12 17:07:56 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:16676 diff --git a/tests/results/reconfig/2.1.0/2.1.0-plus.md b/tests/results/reconfig/2.1.0/2.1.0-plus.md new file mode 100644 index 0000000000..abb06bf55f --- /dev/null +++ b/tests/results/reconfig/2.1.0/2.1.0-plus.md @@ -0,0 +1,109 @@ +# Results + +## Test environment + +NGINX Plus: true + +NGINX Gateway Fabric: + +- Commit: 43424f7eafc27e3fed07cef693614a7f389a3359 +- Date: 2025-08-12T16:35:50Z +- Dirty: false + +GKE Cluster: + +- Node count: 12 +- k8s version: v1.33.2-gke.1240000 +- vCPUs per node: 16 +- RAM per node: 65851524Ki +- Max pods per node: 110 +- Zone: us-west1-b +- Instance Type: n2d-standard-16 + +## Summary: + +- Time to ready increased. Increase is more exacerbated when NumResources is 150. + +## Test 1: Resources exist before startup - NumResources 30 + +### Time to Ready + +Time To Ready Description: From when NGF starts to when the NGINX configuration is fully configured +- TimeToReadyTotal: 18s + +### Event Batch Processing + +- Event Batch Total: 9 +- Event Batch Processing Average Time: 19ms +- Event Batch Processing distribution: + - 500.0ms: 9 + - 1000.0ms: 9 + - 5000.0ms: 9 + - 10000.0ms: 9 + - 30000.0ms: 9 + - +Infms: 9 + +### NGINX Error Logs + +## Test 1: Resources exist before startup - NumResources 150 + +### Time to Ready + +Time To Ready Description: From when NGF starts to when the NGINX configuration is fully configured +- TimeToReadyTotal: 27s + +### Event Batch Processing + +- Event Batch Total: 8 +- Event Batch Processing Average Time: 21ms +- Event Batch Processing distribution: + - 500.0ms: 8 + - 1000.0ms: 8 + - 5000.0ms: 8 + - 10000.0ms: 8 + - 30000.0ms: 8 + - +Infms: 8 + +### NGINX Error Logs + +## Test 2: Start NGF, deploy Gateway, wait until NGINX agent instance connects to NGF, create many resources attached to GW - NumResources 30 + +### Time to Ready + +Time To Ready Description: From when NGINX receives the first configuration created by NGF to when the NGINX configuration is fully configured +- TimeToReadyTotal: 25s + +### Event Batch Processing + +- Event Batch Total: 222 +- Event Batch Processing Average Time: 36ms +- Event Batch Processing distribution: + - 500.0ms: 213 + - 1000.0ms: 222 + - 5000.0ms: 222 + - 10000.0ms: 222 + - 30000.0ms: 222 + - +Infms: 222 + +### NGINX Error Logs + +## Test 2: Start NGF, deploy Gateway, wait until NGINX agent instance connects to NGF, create many resources attached to GW - NumResources 150 + +### Time to Ready + +Time To Ready Description: From when NGINX receives the first configuration created by NGF to when the NGINX configuration is fully configured +- TimeToReadyTotal: 128s + +### Event Batch Processing + +- Event Batch Total: 1080 +- Event Batch Processing Average Time: 32ms +- Event Batch Processing distribution: + - 500.0ms: 1053 + - 1000.0ms: 1066 + - 5000.0ms: 1080 + - 10000.0ms: 1080 + - 30000.0ms: 1080 + - +Infms: 1080 + +### NGINX Error Logs diff --git a/tests/results/scale/2.1.0/2.1.0-oss.md b/tests/results/scale/2.1.0/2.1.0-oss.md new file mode 100644 index 0000000000..18e3ee776e --- /dev/null +++ b/tests/results/scale/2.1.0/2.1.0-oss.md @@ -0,0 +1,158 @@ +# Results + +## Test environment + +NGINX Plus: false + +NGINX Gateway Fabric: + +- Commit: 43424f7eafc27e3fed07cef693614a7f389a3359 +- Date: 2025-08-12T16:35:50Z +- Dirty: false + +GKE Cluster: + +- Node count: 12 +- k8s version: v1.33.2-gke.1240000 +- vCPUs per node: 16 +- RAM per node: 65851524Ki +- Max pods per node: 110 +- Zone: us-west1-b +- Instance Type: n2d-standard-16 + +## Summary: + +- Memory, TTR, and Latency all stayed relatively consistent with 2.0 results. +- Tests which previously errored saw number of errors increase. +- Had a single new error in scale HTTPSListeners + +## Test TestScale_Listeners + +### Event Batch Processing + +- Total: 326 +- Average Time: 6ms +- Event Batch Processing distribution: + - 500.0ms: 326 + - 1000.0ms: 326 + - 5000.0ms: 326 + - 10000.0ms: 326 + - 30000.0ms: 326 + - +Infms: 326 + +### Errors + +- NGF errors: 22 +- NGF container restarts: 0 +- NGINX errors: 0 +- NGINX container restarts: 0 + +### Graphs and Logs + +See [output directory](./TestScale_Listeners) for more details. +The logs are attached only if there are errors. + +## Test TestScale_HTTPSListeners + +### Event Batch Processing + +- Total: 389 +- Average Time: 18ms +- Event Batch Processing distribution: + - 500.0ms: 389 + - 1000.0ms: 389 + - 5000.0ms: 389 + - 10000.0ms: 389 + - 30000.0ms: 389 + - +Infms: 389 + +### Errors + +- NGF errors: 29 +- NGF container restarts: 0 +- NGINX errors: 0 +- NGINX container restarts: 0 + +Had a new error which hadn't been seen in the 2.0 results: +{"level":"error","ts":"2025-08-12T18:20:59Z","logger":"statusUpdater","msg":"Failed to update status","namespace":"scale","name":"gateway","kind":"","error":"timed out waiting for the condition","stacktrace":"github.com/nginx/nginx-gateway-fabric/v2/internal/controller/status.(*Updater).writeStatuses\n\t/home/runner/work/nginx-gateway-fabric/nginx-gateway-fabric/internal/controller/status/updater.go:112\ngithub.amrom.workers.dev/nginx/nginx-gateway-fabric/v2/internal/controller/status.(*Updater).Update\n\t/home/runner/work/nginx-gateway-fabric/nginx-gateway-fabric/internal/controller/status/updater.go:83\ngithub.amrom.workers.dev/nginx/nginx-gateway-fabric/v2/internal/controller/status.(*LeaderAwareGroupUpdater).UpdateGroup\n\t/home/runner/work/nginx-gateway-fabric/nginx-gateway-fabric/internal/controller/status/leader_aware_group_updater.go:54\ngithub.amrom.workers.dev/nginx/nginx-gateway-fabric/v2/internal/controller.(*eventHandlerImpl).updateStatuses\n\t/home/runner/work/nginx-gateway-fabric/nginx-gateway-fabric/internal/controller/handler.go:373\ngithub.amrom.workers.dev/nginx/nginx-gateway-fabric/v2/internal/controller.(*eventHandlerImpl).waitForStatusUpdates\n\t/home/runner/work/nginx-gateway-fabric/nginx-gateway-fabric/internal/controller/handler.go:273"} + + +### Graphs and Logs + +See [output directory](./TestScale_HTTPSListeners) for more details. +The logs are attached only if there are errors. + +## Test TestScale_HTTPRoutes + +### Event Batch Processing + +- Total: 1009 +- Average Time: 90ms +- Event Batch Processing distribution: + - 500.0ms: 1009 + - 1000.0ms: 1009 + - 5000.0ms: 1009 + - 10000.0ms: 1009 + - 30000.0ms: 1009 + - +Infms: 1009 + +### Errors + +- NGF errors: 0 +- NGF container restarts: 0 +- NGINX errors: 0 +- NGINX container restarts: 0 + +### Graphs and Logs + +See [output directory](./TestScale_HTTPRoutes) for more details. +The logs are attached only if there are errors. + +## Test TestScale_UpstreamServers + +### Event Batch Processing + +- Total: 111 +- Average Time: 68ms +- Event Batch Processing distribution: + - 500.0ms: 111 + - 1000.0ms: 111 + - 5000.0ms: 111 + - 10000.0ms: 111 + - 30000.0ms: 111 + - +Infms: 111 + +### Errors + +- NGF errors: 4 +- NGF container restarts: 0 +- NGINX errors: 0 +- NGINX container restarts: 0 + +### Graphs and Logs + +See [output directory](./TestScale_UpstreamServers) for more details. +The logs are attached only if there are errors. + +## Test TestScale_HTTPMatches + +```text +Requests [total, rate, throughput] 30000, 1000.04, 1000.01 +Duration [total, attack, wait] 30s, 29.999s, 907.868µs +Latencies [min, mean, 50, 90, 95, 99, max] 727.76µs, 947.864µs, 923.24µs, 1.032ms, 1.076ms, 1.273ms, 22.752ms +Bytes In [total, mean] 4830000, 161.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` +```text +Requests [total, rate, throughput] 30000, 1000.04, 1000.00 +Duration [total, attack, wait] 30s, 29.999s, 1.035ms +Latencies [min, mean, 50, 90, 95, 99, max] 835.347µs, 1.052ms, 1.027ms, 1.154ms, 1.22ms, 1.389ms, 23.664ms +Bytes In [total, mean] 4830000, 161.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` diff --git a/tests/results/scale/2.1.0/2.1.0-plus.md b/tests/results/scale/2.1.0/2.1.0-plus.md new file mode 100644 index 0000000000..da3d0f23e9 --- /dev/null +++ b/tests/results/scale/2.1.0/2.1.0-plus.md @@ -0,0 +1,153 @@ +# Results + +## Test environment + +NGINX Plus: true + +NGINX Gateway Fabric: + +- Commit: 43424f7eafc27e3fed07cef693614a7f389a3359 +- Date: 2025-08-12T16:35:50Z +- Dirty: false + +GKE Cluster: + +- Node count: 12 +- k8s version: v1.33.2-gke.1240000 +- vCPUs per node: 16 +- RAM per node: 65851524Ki +- Max pods per node: 110 +- Zone: us-west1-b +- Instance Type: n2d-standard-16 + +## Summary: + +- Memory, TTR, and Latency all stayed relatively consistent with 2.0 results. +- Number of errors stayed consistent with 2.0 results. + +## Test TestScale_Listeners + +### Event Batch Processing + +- Total: 329 +- Average Time: 122ms +- Event Batch Processing distribution: + - 500.0ms: 288 + - 1000.0ms: 329 + - 5000.0ms: 329 + - 10000.0ms: 329 + - 30000.0ms: 329 + - +Infms: 329 + +### Errors + +- NGF errors: 11 +- NGF container restarts: 0 +- NGINX errors: 172 +- NGINX container restarts: 0 + +### Graphs and Logs + +See [output directory](./TestScale_Listeners) for more details. +The logs are attached only if there are errors. + +## Test TestScale_HTTPSListeners + +### Event Batch Processing + +- Total: 390 +- Average Time: 119ms +- Event Batch Processing distribution: + - 500.0ms: 344 + - 1000.0ms: 390 + - 5000.0ms: 390 + - 10000.0ms: 390 + - 30000.0ms: 390 + - +Infms: 390 + +### Errors + +- NGF errors: 7 +- NGF container restarts: 0 +- NGINX errors: 161 +- NGINX container restarts: 0 + +### Graphs and Logs + +See [output directory](./TestScale_HTTPSListeners) for more details. +The logs are attached only if there are errors. + +## Test TestScale_HTTPRoutes + +### Event Batch Processing + +- Total: 1009 +- Average Time: 170ms +- Event Batch Processing distribution: + - 500.0ms: 1002 + - 1000.0ms: 1009 + - 5000.0ms: 1009 + - 10000.0ms: 1009 + - 30000.0ms: 1009 + - +Infms: 1009 + +### Errors + +- NGF errors: 0 +- NGF container restarts: 0 +- NGINX errors: 0 +- NGINX container restarts: 0 + +### Graphs and Logs + +See [output directory](./TestScale_HTTPRoutes) for more details. +The logs are attached only if there are errors. + +## Test TestScale_UpstreamServers + +### Event Batch Processing + +- Total: 55 +- Average Time: 390ms +- Event Batch Processing distribution: + - 500.0ms: 34 + - 1000.0ms: 54 + - 5000.0ms: 55 + - 10000.0ms: 55 + - 30000.0ms: 55 + - +Infms: 55 + +### Errors + +- NGF errors: 3 +- NGF container restarts: 0 +- NGINX errors: 0 +- NGINX container restarts: 0 + +### Graphs and Logs + +See [output directory](./TestScale_UpstreamServers) for more details. +The logs are attached only if there are errors. + +## Test TestScale_HTTPMatches + +```text +Requests [total, rate, throughput] 30000, 1000.04, 1000.01 +Duration [total, attack, wait] 30s, 29.999s, 669.782µs +Latencies [min, mean, 50, 90, 95, 99, max] 537.887µs, 711.738µs, 677.087µs, 798.22µs, 844.473µs, 1.059ms, 32.568ms +Bytes In [total, mean] 4800000, 160.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` +```text +Requests [total, rate, throughput] 30000, 1000.03, 1000.01 +Duration [total, attack, wait] 30s, 29.999s, 831.129µs +Latencies [min, mean, 50, 90, 95, 99, max] 650.119µs, 841.329µs, 798.543µs, 986.788µs, 1.046ms, 1.226ms, 24.473ms +Bytes In [total, mean] 4800000, 160.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` diff --git a/tests/results/scale/2.1.0/TestScale_HTTPRoutes/cpu-oss.png b/tests/results/scale/2.1.0/TestScale_HTTPRoutes/cpu-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..f7b8517059672c0f62abfb07443e224dd8db8883 GIT binary patch literal 26603 zcmd431yq&$*Dd@2A{_=GB_b$CT98grK}0~h8$m)EHVq1jN($1YQqo9Bw}8^!E#2L5 z*FNX}#(nR5?-<{A$N0v_@Nj^=_Y=QZYpyxxdfq>ilOn>W!bcE-Lw>}yBs=2E~V zanhFdV!;0`iLeO}q~_;e>hQ~L$y&H-&b#>J2;%)-ArJoaG~hKhg6JDwWrbg^BMGUgg8p73<*;9IJZK|UM7WhY;yprE*PX=-`dZD*k?BO_yG zW@cew0h@rFM%X#;FsilnX{ByrWF(*Uctwg#WR6CGWL*u?Ne*`uDlILok#8*h^l7UU zoyS#j^0|eD!D8zPID^ogJHN-qD*I}$U%%cG$q^hBG+ySI$!Lc0c@@sdSYS|p5rx`U z$y6<(q7!l5;qW?aajRlvWK910^=n1N=+lo@V`aN_1ROg{eJyQmFX77cyiSV@P6|3i zxwX>^3knDb2~XOrJ?)qKvm-c03rywJ)uY0~dIrB6btH<3*-rml>`5yYp6pJMkr&zh zl$MqTFD3~ z8ZIs_iC$-iWsb|t%*>hzd(#d6mo8n($;nAiPd_|7R7!ms&1q0qYCqq)qlARez*XF1 zW?{+9$T&GY9q~L#m5mJz4JBvOG){f2nZ38O*i&HI;kod|FD@?bEfMt(`}y_+5w{=0 zjqUAgAEmAjl{s2yYHFIBXBgP54i~|hybkK=Dk>}M>*_=gCVl3tDYLXoxo+IhZwjJ4 zJ=)#g+0m|a-Hp0yH10A_%YAwSVU()Hym6~^^k72b%a<=)(XA5`=RNXbV+4&wKkfz-;Q0Lc^A>BKd-p1i*UE#1x8B9Z#y-7GfQNTUVzk7zeq*dBO#j1~Z;1*=!u|gM&%%@S^#w6CxuAV2)!4^t08!Py3LF z4wl#&>FOp-MM%;=G%`ve{aRR9SXDJXFi<>e=Hc!hbFQtbn%eb(*K+WNg~3=E`VJ($ zoDiL>==pC9rb~>A8}01ud^O^W@3T>WJ9AD&xtTR}&ulI*%Sbl8|^^ zU45RVQE;|bT#ZNXv_4+>qU$SDf^%Jc{R7;td^Yim#svR60 zV043mgVPi+#&G_=wIJH#DL=X#t>U%a0ljM1-3-;tO2_5?^7SfeGBOnvmEFk!(ZiWA z1qB6v3XZdpi8ECV4UK2dHk!oFY+g6mScQBzQOLg{tf-0-LufIP>vxu3I@n>yqZC{^bYt&smkKI0>iIxQ!Vj6zV z=gn8?=;$E2+%;-k87m*)%u&rWZHq}!Os}Y@K<_MdpT4c4a@0C85s?aWc#>q`6It27 zckd4Ray|RDTBD<*3ryO!c6Z@5*bywMS-(0u)@yPJ#3OI?Ebl6!gps^EJUl!Y7#O)# zM@wF3^IlKlvAyq=Jj6xfRWvjXyJa|Z${f;ja@ZLdjN0P_c6WCP$XP=KDUjdK@{rF3 z!otE39)IsM166ttYlIX)gzG(e_n<=7Hu4YY7PeXu#C0Slt zDw`mD*c{G6!hZnUhNJ4>tDm3W)7ubJE04V&_z?$E^R>6NWm`{FSy%3=Iyx2&y~aY2 zQJ)=bnan=9n0t4GgoNN`nV6cInwSIy%RYaeOu$J?PX5{0DEa6SdJiVxxWkHoA=50e zF@X8k)Qm|?)N^;Q5cmT}D!hGKfLndC)pEE!4?)=P%^N&=b8~ao{k2M)sk;3MuXBuC z2%-OxD=q74x>@6Pf- zM_1QfR@N0*u3?Lzkgp5hSN38&)X*5}{PI96=$kTgyqubX!qm)6Z;sOJ{Jg2DX=dM& zb=Bc*Mn>b~y;Xm5wv6m-ohtWIX$H7K;deXS>Vom@3y(+S`vwO~T(;+6Yq~l+SDYO! z!}|6Q3|w`P1U%pr;(4*9r3E5=#_VGim2ho#wRB}#{&3QpTwM7sj9gq>HLtMXu9d1i zPp_Y7MnCNzFNWjme8gVc2&>Y6OL~I)*6+(h_W0%1)z!H(Ol?T)QfaAEL zS^4<(J^e(sTe-QSR~jhv?mf^&kg{_Aq386za+$d-R;;D!UZ=S#X#?N(We@JiIUQzV zXyByIC8#Tg>?xS7eOYR@4D2oyULNzn~o>{13`cqk1M@L5;fRT{I0L$d+R<4Qi z-@0{+m)8lRC+vDX2rj4XrKTMT>(%GuwXZG{A>NDeI=O3CR=bz)Ms~Vne6S!2ABt(V zh-tQzeefvkpt?ULyDMBf%Q~yCkBm=s-n@K7J8}ox0&)ojyY^#wc@jdxs}iu7nJV4( z#{udbuUC8R*TSueIITpH8p6Ka7cww2TLkoGWMrh4rEX9)h#(GHru`HI^d>ZTp)AIz z{bV>Bwbp>ekqutAmM^{6N-7w#+f_4T0>S0;S(*E^|mz`#IiXerLi3!8A$q;xlxOB^yJ z2;F+pcI@g8#Ui4Zql#ctFFFV&F}y6an{7TiIvN}tl=Fj~xNl=pS+-+%`m3)hUN~5Z zoeE3Ui&4b>CAWVT0RdRe%-iD{Xxhp11DsuUgzjF+4buQ;o*ID zjNIJZfBp5Xk{}N-wu9hUh0At~mk$&k<5eEzPj3skAJ}NMf3B7(hilXyY0puMG<_lI z;Cj?tvuq&MCobhi;j&h19u~KekbGnlS*70=b(aD190NoB#&f8c3=O9PD7lB-61tM4 zijRoO%F5ak#q@FqNrRv{8niUnY92+C^lY{6_QmJRCGDWpjRp!odKa zZ%o!g%Kz2Y#>U3xF&nN%LqijTQs;L+$a{Kwq|`pGkRFaQ*Pf-OrZeE+xvL`M@l|IA zUn9Ou!K1O?=_QQZ|2c^MwmGz3>`sw*_xbaU=%>6MM-DBL7m?3yzfbb(*q(KvzGhnJ zy)o+$UXi84ArTsh{Tceb`f|LeDZH&&bOp21cTeVbtTUU-RX}#LshVw7_zSiO^n%8=GQJg;5NR7y< z>w%_{kLU0!@eWQY?#hNH_C+W;KRj5CZxh|ECxlWsWN_CylSX7lU_4Pu5n;zO3~CkB-hV`uYZxrt7pLU zUAOysw|eGrmQ*U~bTJP}?79vi>-Kw&)A|G$(r!(%+YjEDpD8Z9>27MTt(Tj+8OdVI zRocn36uYz==y)_-Cz)PA{c&5TXjCB;|5;R#4j%nV{Op%)mFJPv?AB}qdNa@a_wxx; zU#{t2BtSYPiyj5OVX`2Q?m8?#U1`lQjDY@C11-wSE2B$ktENfqb({*>Ulp$^@NOqOYQKl@@CxW z%{ZY$$&t7mTzXx0uR%GpFY~0uUE{x~W0=QE#CF$qUzmC|@+u~#3kizJPu=u7+j%hO zMqvW^IqzErHPwT7W_}GVN1Y_9g@sA>0p-OViNQP1bxDMd9`WzH_6}86-zoNSogVS- zvFP(lC>L0@esx>;CDW;Ug``%J($Szs7R-^ml%T+F-hlGG+4H2-eSQl6%3J{e)5w_S zwqizISdkr0w3fGo36n*}03Q9Pai_PEvlLTVHg^XaC0{9xS*>Iz3okbDD>}+z)aow(TTnRGcE*C)}71zU=I`hHE-3r0cP1+YYso)>+Y zzN9&4AN&$fUTeu0xbN-Hh>bUJ)Rpci)~A%@-_MmUz4Ynmsm?B2cHJX(>GI1GzU}+M zrTO24ld5t`(v*U8G?k-%l=@JzB6%XH4mE7C_07)hHPv#08j4D;UBSD{hIs{v#tqZf z+;+XXvXi(+AkaWcN-k086ncFnq~6x4khPFC9@v$9K1 z?SI1FPnY1*GA_NhOi&wo;RQKUIjb*clf5r`ti^@Y&mF~+P8tRG<5x7@f2`FV-+B;v ztS(wJv}-QKQEtG(=)A1@wsJA)-*Ve0(Wf|^{{)WCM~-8M8OMkA=d3zOXVG3e_Uoq2 zM8yHj9WVGf*#_Dbc!fN?Z%yncEPbFxy?Nd;WB5w2x6srC#?9MHAv!y~r2iRwuShjJ zvmc1hEla#Jaq+}sug!Pfs{Luvf@2x?a$mdWo)3ka)|TvgQ@Wo==e>dE<(O6u76~sS z$Bs)}AIxHfqTsGG?K;?J$-mhw8Cb8gQb^qEUxHI++860~R4pZV2Hb(g(eL$o`CYM_ z`W!7wuEk#9xpYoQ+i%|Wf{2kE*2<~L0Bs?up=zDGvjJ2P61}ayu<1NW>m#6_!H-rV zaSPVR3C1A4UQ3*T5p=zlyz-sN-K2@d(&Z@&%EU;qovd=xD2=@l%h?szA`9>7sW*yi zq+K5d>Vq;~1vxeZmf~b$r9E+yF>3nPz}3<5b{uOb^O{xNeEPwOW7f>(n zTtV%w-fh+Hkj!E;9~Jpa>ox@kdCY;QNZ7A&C6~==8J$zIulHUF^S(g81fI<|5^#y9VRpMiW%SnS4Rc>fI9Fs76O!WE&%Zxhy73adS=4b?GwS0` zSEO<_Ro?KsSMyK!riqkS4WfK|-u00Ww-j=}&E2^ps1sR+z7cVP!b~};otVf`T~(WW zc8>3jj7+^|yA+~--Qm{|I>}~#miJFGt73?QWELhU6N?U#CQ{{G?_p&tPjotL1xc*F z)Bzx_l=-0wzrEXRm!Z6FC%krp&x6_eg<|5%$y8l^XX|#(bJ-&$|Chb4#M325=vS0o{EtS3NvGM1SxqzoF<%v?tw)3z1IU#-IJpCtGtEW*ixlM6y zj|BHUTN@0&%Sw2pt}UDhzwtjg>>+VHV7$ue|5YEu`*&AP>z8!hbFl=#8EVVd&33ax z33l63n%foTh6nEBo~~*Qr(Uf5qPz=-G5uER;yX7lPxxPdpi@ng!Xj{xl<5#7kai8!f96~U@E|NY?h~J#z?20Leqon;| z3&TJR)sE6Wj;qMZ;HyZbf1O{VJfEh?l zOVZZ>q7r%f+6kNBV3bcOx2L21+GKCi*cC?@-*s{o3Phi>kVU-_5NJhxc>l=^&A*_F z;Cm-*nWc^MYTNgn=u7Q{w>gk$-@Jf05EZg~CIgM)v(gK-nlX6IJ19v9WB(ycl|$#3 zd8<8|KPNwnF%)qyvWVg2otHGqnV0aXMUI4ay!v&PSiSqE`b&jM{7I4FHH;4Gi&-?N zOPEMjFMJfzrJXHl2_5?A9^GOr1FC$7gsKXT7Wbi@k{jEsx`tG_k# zTP;W1rKT46Mz_rd3K3ypV=fIVE2|c3U}~3Fizlw%dlBOA-{OsdrR#ON+ug0mZHnW) zmh$E6;>=cEw+s=iN`{Uh>@vJXf`1B1MIb(aUy_ppE>s>0%KP_gMM&hNrQZhz27dUU z`Q5N#Y$Be|TG!qEq%n}X&wMvWryQ*U+`I`yQR~SSM4T^lV^p^Ij996JA6Gc!-;2fr zV4AS7uqrDnfu6V$C|Lk>rrUL4rxo>j!ie%?5i3nJuMf2ulYGL;^fZ^<%rBrufo(qB z&Gq8hmItiTkW#{>lT@YV8+PtYkzRnP${xKg@;X18oSe+dG}LFERnV*9&0eFsgh-_IP|})lWUC4RJqrQ_5Ip<>0*+gj zNN1bMX>w^vy0R6A+wJs3_(0D6qt~;uvrzZ}IhB#|ggr7-IfFRS{_Nxs!~ir^3kCP^ z88a|k=Dw9<7~;4eVZ`6~yHDp-!I~RhT_ZuYKne6eGhRy@tv%G%72lzTXVdy|GE#l2 zRj&Iu9@D!#{>~M~aefv6KP1*Wj^v+NpzQtM6?6NSME9#=Ug)Dr4C1RQW`!gEbsF_Zz+-ZzN^CnK(b&CqLFeY9daqDb0-bh+4i%GmT0@ z&yHkc9RpT$fF3q-qO^H5AgGyJ{Z|vR!bkk?=ekJ8V=oLJ z;NT;ZL4c^1b`5oj8h<(BQi?pfp@drycyt7?8Z`A>fev_4zm6_Qb)W@QtA|Pqj zVV}Nyxf;Qy1>AmJU0v0|G=V=hHWH;e7fI%LD=^_p&}pJmBwV(|nvl#M5HB}DJ{+%b z0eSB_m+|Awb=?YQTi~aJoK_ab%J@keOU+)Q2 zQJ_V2dT5U-AN8E89ulfZdJf7!L{CxpJ0*RN{np;+dA#6QT4|}^HVWi0Ke3Z3IJMu<^Jj?lpCBCepb!dtIM1keigPfU1q zB#7AB+Lk-59)XC(db#^Dj6}^GPe)w-MK%-{AK9JYx zedbI|Y0b?~I5=`axqN?x2}CQL3l}~`M#c&yHUJb`No&{B3=;1e^IS`~DXl408Pn#z#_8)mzOh zFn2+LfoK}jz%;A3xAzi*WR%!-q~^lbxx)7LCKXQjSV+n^dJkd$DKIX!8UtZ@4pPJe z35mV+2{HW|g#IVc-xO?`J3p_;t1~9wg5~Q?bo`$ROZYIO37bV8VWDQW#FrOmTzq_d zoSmswn<@Gjc`8l1C#78FQ?OGW%)5aK6_QYtRm=5a2uK#*{v4!6^|UZILpbUF;!F8* zOxDG!TUM~pCG}3mP!rLD!NyRy=!XFv{Dw4lu|9^+BnORXu z$;ZbBe(N)LbaL9;n5qX+th62j5&YB1&F2>6M0K_?sa}VLFC1cS{sGj z?X)`lTz#C~w*-F3f8Nrct!4V&8}TLvhU#lhau;{+_w$}L^vKY{$Urt3{ca?suCCrv z3#2ovb_wULTMcnTtRG;{TE0)sUu^MarN6?V=1VC?wIG-E{NwR#OC(&D7SYk+p-zcS zt?)+#iFe#sj9oh=Q~HC2z9gka0@Y{FI_KJAwTL_qru^>Tzi%Ra0a=LikA3n+cZYJm zn`!vb6011hb9bhF5JuZ#cv$YKtjgLaeN-j{H0^nFx! z&p}ZPw#ArQEc=7&VxI0Gx~It}=H%w8F^3y9257*Fh3v)}(qX9XgI&YxF2Y*=T~5pe zrI+~S34E^qSDBL?-(PHOyL&&{=GDO>GU&~HE`JK8*19cwQvVNKA%dD3DuM_iu!<}! z{ZExMj8<0UPwK!QpF%_PJ&yN4BnB->_0OC%Hu9p_M}DH0Z^@L#WRdKK$RF%w@H%J$ zrw)`fh-szvq)3($6mwRuKAg#ymtzY+JP@a5zqGg5V>$%$6UkBh^aeV3iVuXJ2gh8= zrQrXzk}%bNzvdcxYfMios;e)|&6%wI)eRVYp-gnQwR5?lB98R$(2ZD_vI&*SgIdVO z);21DAhh-?4T+U?v~)Ns5&e7q~TGqxL1oe~s$q?ED~! zU%%r>gPa??M`VFyEEq4BtqLH~&Bf*S?D>i@Ha50Nkf{K`*G?7V_4JCWG-fyXlnM3u zx=)(_#PbIjI&X_CdpJ$oY3%(FO= z6<{sc#;f{&Al?eOFk_LIV&&x(20xL{X5ONm+Obz8TJFd2{~i%P%0m@cP+*^VUrlWQ z)Z;M5L4dY4HhEtzwX!)OQdh6Ab8O9bMKSjRiua8lVS=) z6wp6oK7G3Pa`>K}-UQ%TEF5C(Dt7@0{)~9d&CPE?X|a2lq6mhN4AI zje|eIv5c?e(zpc;50x;y)2}iPq@G9_C{L49F(WAh8)r+Z?-76Ie!||HsHx&`Y?@74R}?%QdEV1w z`b}}^nfSilzF+zCLZjEiU0vTz<$H3;a7jqyWn?S_LZhQ8uU_qaH?f~i09?%LLN9N#{15R$i8XQV4?-ygbiYNjTRGOEze z2CxiXsqBm3%P2DMV-91C5^>v`to5N_RS$`cg`(uBnI)H>pa0%EgX_VDLG)9!@u@u# zA8CE!riC(;u3e)aA{(HZ!5<3YtMKv=<=?>LOSi`e@!ot5VLM$RNwSEF23#`fN@-6+ z#s4?xd#7~1_PvIVbl%1OUF1er-Ua!^E#%Z}RW{RqKJ-ZxHZ1R5Wt(@Dm)SX>wQ&>zX>5i#r{OxvR7j~m_R$Zqy|0Vh*TOfdj zze>ug^b{~1v1kWQyd$a^R-e04E$bx&j;Fcww1g$l)V2lpA$?O^y&A=R4N;G5wrm5Q z*?Qj0i29oqk??XqlZt;rxl*)k2Brd}garIkAKNQj~Fj+wLrvE`WDFKU7 z>pk6o8uj7BhlF6x0H2J+yWQmhu;ReNNfdGGADu#KwhD_KVYN+7TFo!zIY%l_|)op3>7@0<+U z0%OhWA6Z!eP;Cun06}PVdg|n2QV)}POsMjN7ROsdy+y}Y;vJMY2_oylmdju!6LQ;I zIRH;cAhqe7C0YO|E3FJ33mIuyiJ$2qzKFI)QEI@az&*GNK!eb097-FISHY0S>3MPh zI3`+v8c}~7x00XwWB?V)vWo95eT~C5Nh)|8@B%DMUsBNJclY-vz~rf|Jqm;kz&RX$ z-@*$fdEQo#C^c|5VKOUk#zRF=vywG?`3u+*HM5=U>@u>lcDA;jJboO-Z)*r8lDN3I zi%V(gwg&h{77{=hp1;+<wBc(~({Sh-hv>wh=7G0O9nN zV3`8DWii(p4akug4{xa2tJ>f=6Y2sE&BBHEObL09AInT$rtc*3n2yPzFubqut*+sK zRt&N9L8E){RN}w+de|~LI$9$hTQ>0aHMRpE$oD&qRTTO;{gzEtX+kLfoCn4IX1NCI!G`BvAWDrqq@Q$47p^E6=hkI6u#YxN30 z*pEj0m^pxs2%+sx&DH}8$9Auh{O&?mefwIwdFOxZ{HTVZ-K7z}A_moMeHz5XxI&*+ z%u^W5P+z|qc71&Wo+{3T_4RY8|6*W;L=6^ID+}%x?z{C4{h>z_7J1JbDY}FI(}pJ> z*8@)>Z2y5=z2b+G{*&wypM?f@H;Pg(o)%)g0+9g5{|1possBdZ8v=m%mOR%;Nkbwd zO%om?`s4%E*>*c2b944_y@z=EKVcWDyu7Sv~GtCk>M2e;d#;d8Juf#BNqpl%bPO_6{T6*2d zHXrv7Q~ZIZbYN&S{SC&Cl%B<2^P<0wQAWhVKUQC#uM~zlPG5Gwj(*xU#AJ+Q(R5i?t9gA zMr!(fD0=l>{z37%m3zaV@B6?tpa&Jrr$IT+h2laM0$@&qbe)77zh?{1bEXZb_L;WVH7Y>#m4QP6(s7W0|^4?SEkJ ze5@@9@L;*q)zC0&|2v*qO3pgARc(s>Cd(HXqDMy%$E@eE7Xu~#tc)Hl>VRh$sO`D; z7m#>6r^;a-@y!hh4%m|mRRJ7!bfWIgmX?;8wct9oKG>K_#aGbQ7DlaUTU%Shy#Eek z(krz~smGxc^8^nk-FjCNxI>$MePnoDf1mEE-XItEEiOxKB5js&!k?XX&%`9 zgkYZ~CnuZrq#hm}MSS`MP-t>%wgqD5ZRyXzz{tiVD>Ex8De36wM6zmJrlpOKi0Fs3 zym$Qs`WNJ)xt>E{fMQvZIb5sQDxTXkNG>f_2$duK6*JG%v_Dhix*ZLFq!YHd;t?-D zaOr?~z!FX>!5$e*$vp>N>6b1BT9y-4I=CMb608ok_EtwA$F@YUE!Wh-_pp{(;N{wy z{NBC=6Kgu#-Qj~wM8C}(zbJ9{*FlBp+ur+#ItOfkVl%odpopL}>h13*CnxXk?}wj- z&kp{inmYrnM?y?YOhCZxz6g{)q$~I$rm=+4d+~~GXoNa31xueA(umtzf&6_k|2^>Izf`T!;_t8eKU)7_FSN^8vm7wq$_W=T2g^n%}m^%vaVXLYF6 z3=1nyj%Zd^Lx@F&qmRTjaCQ}8G^x-BD($}_Zzxhm$HxA{uG%&3bG*Au0S68VnVg>o zh93<6@f~94?qJNn{Tr{w9e5rT$!}3Xj`fqqP%W=&9j)Gvv7b7!)Q$-if{c&wy~#K| z4=wvLR8aDm5Y;T;Cor5Xxnsu5nK~o~qD{X~WA2#&WeL{sCnn(}kIDG~KW?uSDs)g+?te@I52NtcpNFD84Eh+alm zYn*G*2n{$_O`;$w9*Esax1}fli+HeKg11nMldDnC*wMkk&fdO}%{T7MaOaL0@a->I z)w!ax`rajEOJQ&y+d3*FzMwd7(m8IkVJTJDi&52sSTJXrt;@6|6Z@gPmn^lnpNvn% zn5S?_t6k)LHaE9m+22EoA6s~exsL?1MsVzO%8Ig)AfmF;1H862xEMICOp!fRYUH}{gP^P`T9SrllE3~dNzdjOBumfu;g=-5D<&ILS z`);2aN5#hLE}#9CA#PX`u(X?g{)Flc_NNE1OR!!b*YTbCPipvjKR2^puG(n1%C-4q zx1QG7rR7derdJNBL`5nI-w`vC7h!sdnCjjF6etjyWsJZD@$M|F7Bz(A`qI14W%aO4 ze;ZGybfbCq1>LOY7c-*`k`%TdVRU+&l$8B)3$d%o)u6+x;T=OIb%Cw1dqMRpcxc@q zCCbv`c?Uw}P;oYp@geK&#v{v8Vt8M%J~j?cFf8>hDY`&^|8nO|LnWm!1MSSd1Tim9 zFrEVNz0Pg&6o`=&h=rHL8m|J32=Mfyv_*KA??=*eb8+!njh49WuMH1tZhDcV++EpT zTv-tY98SifS~yIXxok*8u20!lI&4i>$zB}U*7E&hwFu(C28uD?*>zY#;JQBr!#4o| z!5dOo>C6v$eg8;+Fw>FT&PASGSL-jiGv%ihuvQyagEa3L;+j$pUvy@U0~E z(5hP=e5-G=NYSH`nzhC*fh;8VWctUs-MLu3#^y+haB_eGOmL^X`?IK;>HJ?tsEY`1 z@N4WE2~TaE;cp^s6GE@e5n<3?jfsVn^dPVj(VL5nXX16V7-XPX=M<$0u+*(g@dun zOMRJ2X>ygGr)9UeG%rvGVw!AK|MBcr<`wx-sw6+mv@JXE&R!I&}1`f)CU7V{eOU)3tM(1s>`uERv5%0P5d(P*a&O$f!x}9#kSnThd+T;Nt2De z?W!t7kVmRL)5@5M7aJGUFu zyUwZa4cK%c!|KF3eDwYr<=miAlp+8$eX~{d`IJ8MmgeSvSSk%}>DQ0eyvoooi2l3v+zpK2ObkxR4t} zehk63KYx@UAcTkWfDaf4#}67910};gecD00ow;n={CL#8(^qiI zGAyokoOVvIJ);Ng_@Ygdmuf7}-~p6~fA>x_0xIBwVx*wp^z^jYa>#Cbt_{jubQT)D zgW*87m>6D;{TF6hNp}w7VA?1%3YY}7GI-Z!vL?cZl9Cc)^kZr1-@kqVH}n?=2cPL< zbg9qzp2O7?KmK6%P=8*Rb@PILVAd>qU18xpNZhJERaI4BPbZbQfQ`+=%Nuix$~$Ln ztDmb6k;=7^8Yc6$YCpJD_xbZ@Xvz9PHJbli=Gn6l(wkt078V|*`HeUTh~=;|S1OCS ziX4|B3u^)AEcT#JfJ!Cmy0efh9R|G>Amm6$)B*5=l)~ma2+rxRkNjH`uXq=g9~h($ z+;|>r@FXP?r>|1Y{wFBh?vAmT*e4eP<|6A+W26qf5@{yhR>n zZ{tS4dY&b8#4ZH93{u;Xs8Br3i}!i@&ntEmUq~e~`*eYrhD4BUbCkMx69fuOi`r=bn$%H_+ztZDLAfz~^{GE@L! zsG!A*IdhY^{9#Yy+g*KXm7uT8xP52e{Rj#uYz3PIm{;>NS|sNev-$ zLHbr;4yOt<0R;oyIQvLK6O&uL#-}R>8N3Mehyirsf>aBl2((FnesOko28rjrzyAm< z6B4l#{WW)TkeIJ~J7L$DKxt!VZ?6Q6WO8z_SafxDp*{ejJS!)M7)A+p#XqC8{{RX# znXKnT5t*451_ob9Z~hk*cI0~l1XlDl)Bbnr>;KHTh(Ccfv2g7Vw>n&92@p(B>;r-j zJD9|(pM(L1dc<(f5=njt!%7UpdbGC+J-3R`hWGK~T_~^XCt-*aoTu@W-oQjAKv7a$ zTpSxa0*zC-+NIsmKIpzCt5JR^pn$Qh+U?hZj*8S~JO?`Tc>{P?eg4KMY}JH>g!fc1 z!82ploxHNL0s=8acG&39T@9^ILA2~cesK+RPr%< z^7-C~_4@TsEwiGcqR<#en78@#5)kwpktClyJX{Zf5Ljb7DOum zGl`x@iv%1Mo#WR=AK_jDPGgYweX&`{Z{vNpKp1A|+19eId>(oM-PEqBiEb>3kxFox zi-s)(XsvjE5_EnNsO#D9-1!dOyVivGjkLgXW!Hjr4Hoe!Xg8Qpbya&mHZdd#7bKZB}1 z)|r2RIfk){k35~N!d`|!sh%j-b)I?yfgh|sQORi65)rLn;q1F7Dcy?>WMpJ0iYy$u zxWvT7`1owq%<99rSa`3iyVKOac>$n(49K)^KYlntJ8^sm-e4ZE%xYNq7tm)(&h{VG z0^HCJT$F66_}|v1KedAKIp4qALX-zJdS_$988!ywO>$~#i_kdl>}C;VS!gHeS<3V#J`;p4)mM&TXI504j96ELwMxxvH&ZW~u@)FsNL_#x3HADWdl_%v z1}{bu77n_rQsNyj8oYE~OTBkM{DMa9Xhvpz8RDmHY^Cb!;BQ_1{QE}{7IJNLU#>w_ z$e(J#L9jmVnXZfM8_nvsEikcnUwfC?RQG?)t*e4)!_~Q$Li}03mwn|I049LXexlrh3-GAq5Kp!zRUTtSY_cL)d_$lq+N;VtP*W% ztNF?}o@xLK97WPRYX>$CkO9!xS{d&uegiaDs%EL*by#>7D0zjFG8%fPwWEgJY{1Z$ zp^^#h^Qx+uVCTtpEP!H?fI^`A+n)00lohh$xW zg$@%|>Gq60^7!C@kWO^8p`jrT@C`m6A*OfXS~=NItc14RfqD}XKd{{80uKA&*aMep6oxA&2}i?pn^=ev66 zWDs>iLk+jY6%8&D@Oo2U#HjfTwlQi$#PjTM9@@;n`x1r|ijPg8qXR^|)@Q@fL|1#b z31M#)G3KVeK9!`dC|-PTV*fB5a`Y{!Ci!5q+_`h-ufKjJOM`0^`V7Vu+Q)r9!P3sV zyvnW)20$oOp|e~!PydwwCdP|g8LcO=_l_2VHBi_{|8y1F6E}*E9}a@?q&Gq9gybAh ziWJJ~8U|K|wWbtTntlU=8?=;;7VEbqik+|BFV$X~oh75Bg!myJbN8w@Z+T&g^4bl$ z!l*?!>rG&TBO@c-TwOJ92l|3LRY&3F{Xc64LtLfKcg2(eQFQWv7NzG|ZGDf2r}A`f zBq1RIQWAVW-=sV5>g_dNyN3+ldMT5x7WGFT%JZ7$(f!L)kPHmr!2(H1;MxH}9Iftx z>^7k1H5NLB2oHj%^UHvIAV~-a0+V{9s0hnnA@l(LURWtZx8hk4tq{9z#fw@?@`hUy z4gzY`872AIt(A%OzGBB{q+Uk&9%YBJw};N)?Trmicc|zW*VnCOw2F%*Y9%7K2fp(a z7RNT8%O@rn#eu$o=)C=Dk!LkgH8u(+AAnzAGvGy0AupBPbL5nUjOYJK)4}j2bM2H& z0vm^bg08823eK)LyC=d%oqy!Ix>_XAEIsQ+(hy%S4X6_PIgZ-V;G0e5i z$1F$<)?;C?y$H_Id~;edTOaL7fRwGeT!p%1UNj7um=<`(HEa0p4$OdNc7GhWGDcF^ zQe5LFr+k2)Thq!zKiZ@{hNq>kZ+FdFKu8FkAOVZa5ni0U&YWw}%uRKVOco<-eRJYA zQu74Xh6k)*c<=@##GtVWDiK!)$ZWs^SV0N6Hq{-WSnNssR1d>DynJ0S7xHz2uuDF4 zyYHW@0gArKzyRImZP9IC)n|g(r{sy%d`YXbUDR_pt3HBj(dsgXomyreq~-l%u=rR5 zG;z6!QBus3_~|gvc8}0L8O9n8d`klM7d4;N=z2MP+t}Q^3u3{()192GACH9=c+hk# z5>R4Y`yn6z?TtFEDhKrT>(}G$hnO}bhfL8Mz1{4)hQ~Gs08*2FQ8v>0QO7Sa=ky(|zvcwtt0gGXzM)qI7|Df-c<)7PfcD6JMVg8Qyl5M1f=qB?Q zJp9*oEQGlHgxvGNw)Ux{Oa6PEO)E+2B#mI`xJzAIjSVoF?8{w*Z`al9CwqV$X==8ine10zX(ijhd4UBv${Gi82^H0cCn131 z%nM!^h}DdYGZ0rU`p^prx&8D3wH5tvAd3NZOmgF;y5sXW=d|_0#0zGH-RHiTh@|+D z-UKjqV8M@vI&wAzOtw&T;^X5>3LlitC-?^ic`l`=H5OUwpTv!fbdOoifd2I>at9;x z>(`sW_qxgeZvi+G=yTkQUVB5PfR=%MrmlYd%GU8z*>qjDKrN){XSsVy4mQFm(T$T8 z5fM>SBfiWA8lo{*(T^X3f+dxepzXugX-@eX)j-UvO?xYAe^f|Jj~a5rqI)8>)|iW^ z^m&vIRMX|<<*3zRp0~3Y?Zz*bPuCuoKYK6aT*i(3ir&Fs;pbP+9niAwTHZA;(o8F` z_5RL%0Ar6sOauMC(B(~~aSIxqC&;g#6EX=E7eAkl7d6-}RHVQ}@b7L+uF=2)8lFCW z{4Fc1aNKTlx?y4Ag`OTY!Lt=YtCuf%qMrixRy!?*XSs}yYKK2@gc55?+3>plJr4|q zXM1wnVjQD!ZL7J6e!yc#n@Capl;mV(6&17va%&4}WB?J6m4k?@<`dkGJT3xt0UAu3 z$u?YId=CL9)x?>ehj_Bupl~*?_K{Kx;@uS@sxJa+2ap7EGBV}vhfuI>1BwE}0I(md zZlJHGDyE|!B{W5N(Rg)KsIBrMH+oHA!v|elUCGJF8X6mctCp0MI%@BtMkaftIR5<*a-8&(aT+#h>U|=2(cLxSeE4`CcI2wzF{zqUqD* znB>VtYAWo$&W&+5VCjFhX&0C-h#(Ic-`p*l66IjXqZSm&4M;r!lr8!1`Esm{a4X1HsOy0yaQ8)8@&sAX`^hZh_9!!)xe5WvtzH0)IQjL8aphZuz22;`> zepv8>^WiVzBb=ld1lI(*$>7NVnB<%i$p9|&an)-chvXoL6O4x6NBCjyQXbNT{>y`# z`WVDFbTE*&KHk`b6zI=Cy}+uk{#Xt1o?_6)c)$R!(MZ%_z7;RSMEE~=V-G%nAO1&U zR{{<7`u9hhilS6Vh&D+mvR;YyEU9FTaZ7fQlqF+{_WHNlxh0n@F=R`V!Bq+k*^Rl3 z78J%hh{3#{U-!J{{NMBb-*et`I!VUN^ZU*7e7DascSv}VRm7urDzC^{DUikw-11f4duxP0Pv4m@gDf;?+ z%$VTv05>M!7l>zJ6opoOVV$|z5I?`fItqX zpch4N-@muCv}C=>@BP#T6~qX8hmgc_+<6D%L$W!5y)X{TDnb|dsH&;GT_>)b!C;_F z1u+Kmp5d5Q;qD)AoHpYAR^B?$H!q^fajnno%(jk&Egv6Q(7}e%oR_TZg)zLAeMR$bG*qBSNeDn(`Zd z-6&=ITJpG<_}6PP%SiX*!vy_$_bLBq{m*f9gVapBJC%cZIVNLuzm0wLw_IM#>no@f z($1ob?b4s3S`k@W;ntDSMh)Z^4A1J_3V@o9f~|z{EXZN_-RH)!@)249586|@S_2*?J{S~xy&1Wdd^XLzAw;pun0zkXYj>-(Kdtpy!q#7TUIq~*ML)dz#}8|B z^How(@i8$Hl9J4(CSTNnMh-r{!-E~PtD@K}ire&g%({eDVaG3RadD|sTE$@FL+p>Q zVT~F^-ivA|>+FZKiY<*VE4fV68UBe}+2w%%YgGC{+B@})YvkIjK+~4DZG6d%2v4MU z@($&8T;G^Zk<#yCUvj;Nz70>=q}SkTB?W}eC1q6)|9(1B^h?s$BEffohwYY=_IzG! zWk#QVSgW6vwL&pBX?JHMd0KyfL{g9u5L#+EexCIs@vhs^=F|zvUl%66KuN)x$v-#O z!_N;`m?1kGXM1xVDFNsIozD2^_;ji7^g(~+S(l8a0vJ*W2?$l2CtNzoPn6^Gb_;bb zk4Ci>%93+12%CHLvB1ZZ z6)J%X13rfI7p8UpQ%RArkoWc{i-$Hc8up&pD@OVC;1)diMoET`+}mXGd$)?8*^5Yr z?(ALh_^B4h?Pm~&o4*9dD0Ev_uH5|+T=X^S>j=>oZi1v&i|1$}%x$Kb9L|cG-8Ua2 z50TDcnVq#W8OLsK;S&@FAY z6LlJUWH~szbo4%Pi#)V?Z`8^AeK=m#GW}`albDlX#JYv#9Snlw>MoM!@+&G1j?eb~ z+7Bct%#NqFn$j{FZtQ>IiHlLJbue(MW_#AVG(YN@HjVqbjkv#UmDPi`R^OC`N;Daz z%Q8d_|MaUPs^3th+z-;B9le&3}d1ze*oD`Cc#k5gtk! z_$<7}F&cX3gu@bF^7VWA5pT}m4+%gG&}6xf zHIGs&BsZ7kdF^`95#lE=-$Ua(()+ys9POYkr+z)+-JSzT$F0rYuQLa~Ej#mk>t}Xx zo&sr)>0&EyyLYaZCI{5qSpuY&6`KrSrBNr23J`U5z-kGHf!Qo>gmLGj#s&V39aWYRt@5Nl7 zPZY1A54wccoT|NRFXxUP_RQ!?j3?9%u{8i6@v%2f^=VS}_29dp%eNx}2#ZDt(t!SrQ~E)~1lRqtvTU+6z8!9GSJiRP?w{yw9A?5kdR zMI$+D9r(eK%T z`wisR9wU(tax!_&kkJJD})P*KveLR0hep-LN$`ZeG z?8M9B`A2z!?R4Eq<%DKB_sJJR{)e;&%7_U&syWj#Ix=z==#IB<&fXK_U**}Jmrr(o zO-%9dc`%XkrItgxFmz?Ym2JoJ>+QUn*B(8$@^>IZu!|j!0;vfzZ{Ld-LFLj>Z%ax) z71e&CTlbh+ur+LX?`Zy*Z((F)bo%tO@ijoPcE;M++6t!1^TMU$s(0y~F}?qK0Zeag z8u(QuRZaYf$McJXFJKJ<_*JnVbp+i3o~ixYVVjy|(eJBsP*7LBd5>ab_2<6T5fdrO z20L-Do>JQVEb;XMDh||NU^l%eI`zhXhmKBr&wf4Pr7~pw><0x&q{=96^kU$LV%g@TXO>ns%W7Q63Hp}Sve(>@81R^KV;>7OUzxX_Q zs9+klY+c0Q8w8nmNXW@RoV zPk!U3O|Z~P25lN+Qh?bgVU?A$^YR*BLanH&rZ$GU6hka1!U@mV=x9q<*K|g@@S?qN z+JYgft({#*Qxg|D8PN4wnwyt}gpM)2O6v$u;dSePsYJ%b>9mcJRaN1(6&_eZPf0n8lMh;NzINn5pr!~l~m`G_|Ou zK_CZo`WoX3xd>j+cqx>+;0OHiN9U(c!>}Asw#ipOJ47Vo2O-=AS{1e^NV)K7!$LLb_us zjae=`gCbgPA1osoCAbGuy-zTcY&ow6L{M9s*@OEMQuT0CeSQ6bdfKp-MQBT>pmKV5Bj* zduF&IH#fJ%)*{PhwV0UNjKIS@<{ZF5DCW=QF+KDhwo)nA=SBU^8fwJ|hILWLj=iID zck$%8LS8r<1RMzofBx*G$b@}&!IRk7^m>=+g)cx$Y73%{w!?HUh+BU!OAzLvwXtgN zdoFi(2LJm4KQDMe+)nqL>8(mis|;aWDg5`z6DRV(G6hD#<@(k{L8%Bg0rJcj@u+A3 zfq>;(ykHJY&CVVKR?aZ=jPvWw&ni>a$}U7{!H!g|*lM4XJW;^YoPNA-OK|DE%K( zt5FViNlnc**hK?2OiAg+zK4?l!R-Y=!6>SEJsVa6w?HU?6cKGe1b1_Bf!QI!fg{pH zyjS$aq0_^%LAT$$`7O(W_hG|5;fYJ#1tC065!5*F@4j~RDkN{{GJC##g9`Uk4=b`Y z80aoK6)!JpcQ?`u0f94_u4Ath8YcvGiNj%hS-fI*DoZn)<9@*G{Yl8BR~W$WEt@wFGV^+yEy=5wy0M*x;3VpzP6v<^rJr~iW5Ii} z`gGVsz%|xDA&qzk$&2gT+N{jYiO>QCI2RxZFNDWpV*(0^z>~I+C4{X7P>d0-#{7`sPVIktto?rFSF3UnFC11bIfDv3!{oPI&PJ^``WLM`Lgh}`U z#>U6HkBM(xodwtpUtLZIO%q%EuZSfeR1=oV@PB1UK5m@@EgRb`2)O}NBto$R zJ|;+jT3T(;*LDeyda`?dMR*oXqH{+F9VhUZfIA3an6kpnV&cp_Jtyaw>(>uLqX~at zMhV(&Od$Td-R_u_O_mcp^v;Qwm6f&mktG^woz)y?calbpwR~e1CY?ed1ZG2+1i@v#W`eXXo$^YYs)G-{J52l7W29c z;Z{lTTu|v%N_j!aZ_9VChznvBefKlFkY-anseDZbJCM#1ao+Ss$x1oQ?zyBNi6j_6 zd`18V%G(bQfQrB!efezh=!H5xO~f^cVBUsTCgBg;Ra8_EP>D^-C_%_H9SQ+U<|@IP zq1a-Kv)Lrh@q&!@#5tMD=sEa-8s30YJZ}v59hSzEy#D7XJuqyJC;lfGg-es$I5cja zgORR0%CvOTx(tiKl6XP=)O$ZQmYr#)8_u(UogP{9 znbm~NX)iX}f35H}Ob;e$nO2^jo@|f3%e{B=IFpSk4qNH7s3Sp4K51#`=j*!;su@_v z$jd)VN-BS8Imi*2N+IXFfa(7?G)1j7)&qm@nX*rC%|W@<2Q32 z#bc3@b0PJ9=&s@8H@Y=%pY=k92fzRz`rf^x7)K#*@EXzr%AT`4H1PDEV2X4^!poZc0X;S-A2z;pwEKQ=0^(1soH&(*Z{kE5&y51-&99y*jm zU-JC#%bFrXy81dgf#3IfTK03<*+ zH!;AZ@TocXFY_iu+?;5?QllA1>TYEiTLRVt`2!c7c#3(=K7p{xz4OO2=t(fLocABf zy#G=2{r|u5E(A`Pwn!6*r6rlNYyJ8?eLDplzAd&QB{1sh>O3|nDG?leiV9qkdS@O6 zPt}l3V^qth_{yXd%s9QZG0}7P@``@Flq8{zWksK%+#H7ejIfAEDX1JU#D}Cw6@w`3 z=i`e<;15rLsjaPksQQrl3W9l%-^m1iPg)|j8S)l_6PACcC@nob;LFV|FtZ12I0#Gz zlRdM=xj-qA3knMhZL*IMUeh~&qFT%I7#SW0UpNpPXLmQZ=~SOI)tWB2!h%i1o0`J0 zDFG$w>rcrA>vv&+mS`A&BounFgCTmyk)hfY^g-YZjf*loRPbhJWx>Gp0=tV^Iv0r9 zC>UkVwF&8&nE;=e4>uVRM3S0Le71tRx;jn={vKeL@}W^d2oLGcD#Fo0((GP)mV9ga z$I%cs=4n-lf63_CSXveVxI|iiu-a*7tcF)72>UoNXp^wDr{H(rvh|5R>9{Iv=clvE zcg8bN4Ra?ai-Hm!Jdlgf3Z8k@eHP4Yn=Dv-?2-_U+K%J}DjT9)RCHBUm73E>)wOpi zc^%kuQB%tnh1+D+R#iz_g3h_Y%z6-8eFG6PJG6?f~3^r|Bm+U#L1%$lW zRXq;A*fsA_D#J1u@7D;Io9_W0om#9h90pbxqTnDTN4RGI`6*sUj~r3lx^;!2e_&wc zyLYo7Elv+th_Kq*ug&-Ydz-?Xl98aThW(Us93apVIU+BvShYFAEVCIF_TMiL-CDg3 zH6OIC2S+6Zx<;|%PT7HEe$fHLN_cNS95<4Sz-OBnA|^=)UnBSp({vFOh%TRr|ufRa{LRz@G#6p?c$ z|KpN90mN%1+H~+Wo6EMZK?Fd7+LoKlE}o`eJ>mEF`S-Heh7jI>aEXJDs-Fwql=J{w z5B3T8S4q&+C`RaV``E>4#1(z&AIGefq5?!bLKHDQ{I1}7_XSF%>dzcbBARv3ze`q8 z)`Qz5DC6G+wb8`L2#hIKLlkEdUjE6;%Gvoj;uE`uu)j~$cvNL>Wz{x03jQv5Q2^d# z7zw0PYXpQspE)`^L)n3TfuIl)N+xByX}EdK;&VwB6E60|IYKL?4klnx5x+;XbO-jy zesgg6AmTu+Up#J(Hh@(c!Y6KLOUnduIQpBrsX2!qZI*@(5FdMDghY3FsKgIV4Dz@w z`S%4+H{xP$jbd`ZN8e<41GOF;!jK;D!3Q>TH@uL@<25|1YinU~cJIaw`5CkERc`Wq|K`>|$1YH9c z9ezVbO2!P|F4;YP?tmbKO{jlpk!*w%2ttdVx7o$Unwh%Rod*S&B^}l0{Tkam*!86TId4w_b3(SL zu_v%lFZ^#}vZKCpN!Fw0yv6hX#gB1kt9lp52R;`E290lDR*WAW9tKdmFKzllEM)Nhj zZ-x4ZZ><>Y!)SuA$KMgNWUuKr*K|GBOG`?4IinwV9&Rlr`<(AB_Zb#`A8Wtz&iL$j zUpZaD>ui7MMJ74&d6T#R@#P;Yv%VVKOmWX<&H42FWYcG>0ms8r=E;*FwQOrk%UvZI zCnu*+(ev-mGD+V_9ZdOL1kiXdiJX_$opseHw;S`!&d&O52kZ3@3^;jBx6=3|L`AhM z?lLPRxK96g1KVPLetM*%_}%kp=f|7Njg5^*p67Gz5q0OsmNaL$2r=%zNu(vp&`otAb>qK(VvNH)4--o7G7 zZMD#-_2$i+3tjPx8`uo~o=5Z1ZvVda_xEk<&i

`O7vJ>vn#!r7I@umRdxHJ}DZpTI^2l z?(U|!V~7dgfBl*)x7AZoQ5kZGkz0tlW2EbIwl5pa85tE-NmRS{TNa*le75OBLqZZ3 z6;)=``r(&th48_+!^@X1H){@b4Gj%lT@OKkd=z82r{|;f{`L}~BPA%I7QAyk>4N-; zynHGPD?k6=-15oMTCWpWg{KOBe3ycZ%t)ovDxAUaG)y_cycgf)e7v{pw!3gAw)2-CNC5{c>&|~Y)BQ2y zl|l_|Ev?mUxdR=4_nPya`Ht10e3wv7eeUZD>BVEQ8w@U&t-ai2#Kpy*Jo))MRn~-O zr0Lz&2Ob6dR>K9b!1b~6p`oEF+ZT-f!|Toxk1Z{;N31@)f4}Dbyh3~OXzFH2i$$r; zSXs!5VPBd&{50E5h=}8%T}I6BT91~bq|gU9^Y{+^H0DX~8_6B3Nlkro$~(Sy!1VP| z$njpEVyWi(_H3(>kBPbN%@7qa}pmUR(6m(J4x=XG297wq4=;nfLU}E0E5bDqO?zwcu@kxhLTie>IXR7#|?MkYiAdqqBpl^78V!?G_3G0s@`<)8DdOWMpJ#+o3*I*48!7 z>!WW8C@PuC;F#3a)Ht6PeM?FCVa%gb<-8uLuKT>s`%K^410n9wMvxLgmyL0wP+{_` zR~x7842_J;I%5ibF1)h`R_rTapoi!AII9YezP_Ao3AugyHYFi5JG<2n|4THUTjHCW z^V>|)A1Gl~W!jwAf}5}2lDqG^_4&jV^jKFnNrg4C-8fq<*Zx4?$!i_9@tLx+o6zLp z_N=U|EVF#vUK>NGW6jP$wmKX$SVK1m9m^!F9_SP!8?`N?JZO+QO)QH&Q<)x*- z;9!sA<@AfabkSa&%SaD~mOp~{4NOj+cj%q(fDqq`$V^EwY!7ELEp|KFnRgt5GZ6>mYwW6 z^DZzDH|#O54!DA74y{{Zk6D7UGBcO|PH@$o+Jlzjy^){~8+V!VI{CZ4 zYch?Ri124o{Sm9O*t=$Gs;XdQ)YR2G=65oc)3a2vs1-##{;q-jgB`wSHEg%&aq}_LI%J&Dmtscz>9ee8{J(HfvAjA{3*dqtjDUNhAaX z1;H*Qxvyl_oz8RBRIi`}qufRZgwNB{bFpE6b!c&WvUtfZvm`}glxnH3KA zq)|gI1)Y=SGzJhcGc#B9kgZVW#2$NOrYC!Aaz^JrFHXzM%&e*L0xc;mE$tRQNH_>Wx&N*A=L1wB zk0K%?2lfM1Se*nDHFL`x((^;FT)lc350BdWa2k|4o|v8(chdW0{kC$NYcU8kf+#NO zHP{O#QityKjue}rU=rl=f4Q13mPPSFArmmuI!Nqw|# z>(imn{r-^=SN>>)12f&X%F4>sh8uTH8JU?~gp2eW(80Jx^DLcDp}|K_zjf1@{8^f! zms3=%b6kEl#Gsz9EC2ZM(&jlW-M6A59%12{v1TF~k@3k%&alTqwUl=*Lv%H#L^>bf z^2I0EuHiM7s;VmJ?FQEaK|zH?!BYK(*J#?ToSb<@MMbM&Fhrroc(fyGGyZVw;pCj2 zo_2P2LYOer-(ONzmZx12-Z<^}i$wV44CX^6FUq#_wc>7&nOvQ!GT77H+;x=Gff<~_ z?~jW-VI1F$B_a(g{;GlkZUF%SHa0eRSZeA##0`ya30Aj_0~*DZNFOS#4(2lWGcqzh zCFS!u_dIZ+@!IR1Z4K3{bi6GrEKEl??MEcyx|&;le%LB{ycvMn4qShk4Yb!OTiK}B zUgt+m={{JnUWB%ZRv-0u*Bj{M@Xa@x?*A`8()q8Y{d86~aa1Rvhkyds)=zeG*Z|-8 zy5xRH*oLMA8fwMOGSr{i7Z^t&lU_Z~+M=i;_$U0&N2-I?ojB9zB^sa<8 ze65-jGq5V5h+p$3maOTr8++s;@C5YSA2WLm z?Kt~jE8gghl-Cpxy)EU@(LN>hCPNVMmeCD6uIJldHT;Q{BZSXxJU_n6^TB_lBYUs3 zZ1tox@??z4G+qCCRn2dDg_&=2vdTM5HFeznUgxegd82WKn$9PV0e`cc`mg@(W&5$r z`BVLL_g$#UHU@ZoU)mH_o~W8HnIb9Cp|hpxn)4&o@6C+29Uh)lK3+9(m_PpuPoTUV z!DdpX&C5nZ{QacFQ^mRdI6md|{r1_RXBHop^VfOUJ zan8XFX;CVvJv!0(hl^KfgkdOR%$)TP;kg{CS_5|~Bmzd-Lk&|!8FmMsMes;}?j(_O z6HZ&mIB%=InXi2}u%B!NOKC0R61qg7F=nfQ(?}Pm(N`VfkdNGUhZAUsm{{M?=#%m+ zwu4f(mTg?RqC4Z`I!|aOkn5uAjNLOM@_A9grf!2zD_RTkdh~k*0=n@Xd@?&p9Q(&q zAGVN$1}<~3XP{J4%-5pEigRMr{-i`aypxIaT|8OYQiqgYT_$~eevOTi9ydXl?|ezs z&03x-5{BuQCZs<_yt#MTG0RqvxBwdiB|PXKvf4C?R3~&_%-@c|A0(R1Io%!HvC=&u zudyJNxHdD>lPt{5 zzk^3`baWIKf5p{-gCIrmtPK7dPQTI|T6TTRz3=7ih?x$=suDz=lpc@Pe!$8f&lmpq z-07UCOD!>i!Swxwm+@q(@r9z?N3(55n9#K@Z*RTIe)606PG#RY(SnInI!W4Ewh99I zuJ3i8CoAav>&Izg?am`Ql@@G% z4{tm8Z#>v{w^HEpkW{Wzr6TX(&s+~D-4L!*?K$~gPxMGl&^qsp9^;d60p6%-oVV^{ zqAgROWBR#P9ytknpC5D)=sDqgJawH44s#q>cpzya*Ero65D^hEu^dE9Pl}f=AFuZG zX^%(!O7EC$UDxb3tfyLs0YUcG`gg|GxF0PPPj5uonS9Wvr1Sqc*kP&~rle}j+dr1z zoRVF3bH#ege~z4|H^;!C6Lo?CkMRyC|kQETw5kd@>{bs&CHmCF-7 zOJy>rjG*^X{5UTw+$DD@MV&7VFPIyBDn%dTDlOoSva*+aBIN;xelz428(a1& zNv6t*qhP6~wGW1xq@*OsEFfuV8m~{`;YBW+ld9QjH$qwCGAf9&^(3pCIl9kP6wn0uzj%~rImr;Pt-4~HEf*!JToE|c;x zJ+J+NlZ~oS;vEz`3g)UEu6DZ%KGN4^1pk+!nfleBoc_>_q00hSOi#6yd}wYinZaq* z4w`0cT6%cb@sd+8@VHu$82!GGs?r)PiBt<1$*eGZaW<)anjAu{HCUZ`q!mH?wwavg z`)_J=n>}NLRVIhodsMg@7?M8q;qAr%!B$BU6gyP5CRYA;VoTon&i!)E~D9 z#h_BBIasYFWBo;(xc!;J#!(R*T4mEWRvy!wcUv1L$0La}8|UIa^-un%F!A%rv&CPD ztM1?Qf(-&8E#dWYrckiBG<fu2RtCDz~-U#n2mdC?I z3lq{$hZ4CpMyVRjoTg|Tl@-W6cP%5o{9^8KJ$GCTsPdt|cIHq(&aUwkq(Dh&`n>4t z*V+C|<;&#k*XvWsIW(nkZ*y{P2-$CpSG2XY)w1h>2hjUur4--)*FgDAttCQ)xx-HV z;Qe$ke@=_x*NwDNt@@QGq^%0=(F$(Dw>F>ca9K!)fSKCE6klcHQlH_jimTJET&W+D z9>?~X6%LC4Bdh@&Gchqib|$~(?`Rlr9p z&2}lt)jP1bT5nFsv-wFDKExMSNp}7?&S81AT*@TpU0^$z?&QEq?h}j41UquN<5cVG zI$*_SFw0JyF_*ZGG05Y)IN90d6cm2_{23G+Z297afY7?C?qn;fU7jBE{tdPv?!%n!j-q zSn6}vp5nyJ5h6WRE}ztO6v7X@iiS>VG5V;L1YU-jgk-L9=W{$tcs}sC!th2c^NspG zGNSG*{&K-vHXkY-vVI_IvYC#zX z0G~nO+OkIgL73x1+%U84CWiZy){PeI{5L7qYk2kd=^d;wn`xtUcYknxsU5YrTY*bg z^Nmg7u@rXx*WR=$lhS3J`yww`{v~ILepy=;#V5!R1=o1X>d-11?^ZlZyXJCf{Zabg z%7Lf05usFV#+m+Z^vcCLUJXKrdAp-mv1RC)H#iT7oXH{>@D=CzKNDnMpyKGy_f%=h zr$iKm=+-_LA#^rm} zZ3oOX?zdUE)*5GTAsvIb4CtD0oOeHp7!_IlI_)?#V++v?RM*%Ol;R`4)T%rW$Hl zX32AtSD0Tec#&^5k1f3p77AvjYTj2%uF4wDs4>0KNlr({=#ZNuIe)#g`fa5IhT^Za z+1x0XudCZ^8}zS-15|eihBV(S$DdK-5HEztQ<|E`dT18?2Krl=Zk} zAKCE?VITN;(NJ_Y`6+8GiJA$IxiX;^5^Td0&ffzSN{%;7TG__VG)uRJn&J3UStligf0Mf0&`y zsVHo`j?NT(t-&h)X8*eX0(n5@fWh7S?#T(0E-+MF9UlR${s7rc$AQ6f5i99f2I7{Y z0@-0MRMfxar`%y%+<1NVT$Z!@W?RPg$8T*5myL$~#+g*eC{o)g^Lh1A<1{Rf>~Y2xCpD~$ zw{iIXV{x6iAG|pXVMae@hA~{#N0>e*m$p;29?Q>he>YqJjMGaV<*M%qxsH z)B`-yV<^8EGvX+EZ9G7Mt}h!9JSHW)YxzrkDdjn--}i*3;o;3#TpRgC`RUArHV;?Q zh#ebi1|QB|-QxZv?iej$E_Oc836i8AA(e{ta|GY;O+NUxH!3HepaGK5fBaxugG#R< zZg0_CrpU#{?y@jQ6N}9suZ@uAM@b3u6K4$yH!SJrVyioraI^28;o8Xy@JlzFdo3^M*@5mPKg`lf_3jJ9uF<(Gz?5{p2&pCMmc zMi2$3@*G{;di&Xj+_R={WTao_U)0n@_pxhAd!&|rZJ>6e@u}ZTO<)gvyl6<09r|zQ z>5aag%|(5;i`|9Sn zG!u2qbK^3x41eCamr-t~+DIQ*;q**7b ze5gpu{rwZ*o#=5s^g*(lEaW#l>x*tA;A(jJgUWHwQN}7?CGSY8b%~*kd+5T^AfD8G zHS`ZYSmeUtHhm=#0uBF={r5~;;EibS#D`v7tSjzRn@p|6~tih zmVl<8pGmrtn8^-PDQB=l*Y((`4dq*|OJs@I)Ol6<Og5>G_dXDP}tdUfc&OZX=Pw)O z30t2LI@v{58e(n@UDv0fEJ^aX^9A1pZN{*DN_*alf;afGxoW2BPyaO;FVs!!F`V9$ zu&zb6;~|t$v8uD#@5UpiGagp?(x-sG&o4g`db{AS|0_0w7J|J?0xm)AB!O222+SLI zFkypen^dd&031cV|6`mN^0_LC_Ez_T5`NaE*M_w^$GBY@ZCo>f*>Ooh9?#HE|0jP_ zhrAPpo~mcu;~xp=-W#R*`jZmPPyS2y1Ov({JRP*})jk%rh;O*FzHZ<+bY+}$#4~uX z_kau)QgXMbce~cc-(fS6zu-|@vv$zX@h5f&mQ**oTRKcOB4k_haL@Ql=Ez{+3ymcG zCQ3w%#X-?ZZ~aMn)yL1w-80KJ8ZyZgu{VQ5{OP?3K|tS^lB{gXMeA91X>#Rr^mja~ zNWuJYEkD0)VcBxspSY^G{fd6@#Duo>!dA>dDq3d3_Q{lDZV9U<`hmTU0AHgU^}IQgC>QJ>mp{lG!}mc+(Vv;)N}rDGV{n~T*k*cRJ?vR3JD1$uUg7Mg`VV?D6f9ltJx67Us)5YNx{^3kdQbT!4JJu&~DFS9_O8R(suMbu5ur)B`Mt1ha6lj zMfaBkc1Mi_R=LK?f4=EykMqFJ{7>wv_KK}wOwf6gf54{KgCYt*oO;2j=;wyyPXg!@ z@)T+X?x;c@@t&3YV(Y;Kcjo#L83S16ruJet!r<%!ic1v1AqrK&Eob7Q#8SnO>&1@$ zJ+aoOQb32>s07*5$p?*jS0thgK4)zHGv@pemF3hZVeeCD#CH(|V+65G7X8=z?eP&a zlGv!Q@b%bv$*L#TYOk$y!NWtgiABbCN{8&mjG{68U(||A-~Z_aeaii^WXs*+7)m;W zkJzxXVBf>OjQ@ScEVE+lMesGQG!~1IA`_8}YY6RA$~dL28D*l4cb63R51O{6E5BA z!@py;t*x!nQc`Op#jQ|Go~o^BjR2;>l5WG5;7!4#@1>aA_a%0=F^c#y zNG__*YmxbBL-Q^9KOf<;iqfArtu;wHeG&1nxV_S>e=07a*mhvJ0)VB?{q^gc- z3(h;`I;D?7Xs(3%sx06RqYLdF9x& z2fWMX8fq)-8)GGneLfPWB(R&;ShbKFg#Ig*RZT6sFNTS@Z&WOHn(jh*5l4p<5u;r( zFQ7@(le{ByPKHmK8u6crV3?;)=sj|Z^;?TQmmr5fB^<&$+)Gnn%oD4SzUnTO-goCZ zerAb}b^K7C&KRUgCu=;IuC&*)e#zJ%3V|9dMinXI%e6-39QlWV18FOEL*-nrb^}j7j71AA+f2a0ez=HsPr?RX7 zJ;AHu^(x^RD}vOg_ot?9spJ`se_To;wEG7{mIfE|YHa5H?*L3l^32%N$HJ-<8DA#S zfQ(2+R#sLaD<}BvVDbVSKR!178-IYuVc7y zJ0{4(HAxYRCgLADnQ$)vH}pf}@5fOZf88FMf}P#nyLazKbLr_SEBB3#R@%=$Aq?mf zklur7l0Jm8eCQ-S8e*Q#$)`m6hAc;{p3n&Q6T2>Eam`BW7|O_yk{yTA`irE9>KBfz z0q-eBVoi~;$cdK}_D&4(i z@^Uj8f{E?)?j3Q8SUn#8j#ZM3wQYsIg13qUZsBs`u?5?gKz1sR?_!UA!N(&@Ivoe5 zGCa}E=`6?hsC|hg=AKu_<2WT+Yh*!0#lkr{_T?(dw-7&#jyVjIdx00dA@K(XCWT7t zl~>eRvGW%_#OKu)XFgTNMQCv|WaUXQs5a1~{#&lC<JE*kP05gf<(C=@*8Iyh|K%l_UVpt8phj-73 zyFR`D)1!lX>Q5g()vJFub6t*e-u`=!FP09<@nQ-(Wxg{^X%znRI9y;s4d*3^YFO{G z-50dWl_-df>$q|yLUmCJLk$Tx+wQz6E$x@soZ2L#Vdziug^CC!!xtS>GQ{EfSOIxv zyn9>XB~y$q*2KS&OUm$qx!-aq%yGLd*%94`!$_T&F8B;1H>ea{Sb&7wUMaN*>VOJ80 z-;h8)`)n!FBfj;ioP2kNm+WwGMNnwuRdz*_v9*hS6N^|+18S0}&jenk+CUm`P}34C zohqicv=u>4ABV`LA#Rozc-#>mnWbk+vr_9*)FQl{FhNQHI|0cxZ z^sYV2B?av=?RA4-Vi*bbEim{GxrDF2KZ?4+l_8KdB_HXw{ThT+w(Za3SO{3Jaa~5v zr`@ntSM%#cfWre+DGCaTOLV=xsDgGfWb!eHg#MiDfFrJldW?y!d9_E^!j)o{C??9c zFq_Z)V|arPHmf5*@#5o8j#u+3LR!9|z8JsuezzRT8y_DBc7)5MTdVCGbOiG=RC^C* z@?Yd>VD{!@oE(9TpR6pZ>~EU8gWB516HZvGNgf+7%*{0_9hZR<)AE68Y`qGoc4y%D z?%9l^#taX?LUZjBLL7)H>`e{|t{WRC`EwX+k9@5-ddK-9Y?$qubif0#r&X5qKRY_K zicJZUr*@OqfgJaN>cQXCXkDNlMR!|ZAh=Hlom<1)_(+2dcQUZ_7~jndt0nGc^AY4m zcTKtnFI>6$G6iO(p~M*-ym1p9{o%Aa8shb=LeFF221Kn?qSCxCWmOipCHrh+#}XpS zrCSxQ67Fz75z0sIyZD_10e!E->43VUF5B^o8r!K_ zFx^(baU3mq5kN?_^U@l`aRw@azjAD7In`S%MkG%RJ%pIqqc|vAOoOj?O~qm#IfHiQ zg2h3^J00prVGDtO1cSjTNK?Bt8S~T}uVllJyQsnTpw>!gtj3pk*S_gJto=!Q^j~}X z8TvxnAScV7#+&_2x4cRTKtNsH2sP&C=YfRb|MBnNzq^aw`9RhnE^=J{y|ZJVtd4_- zWkaF=BEhxMz`3Oh&*N~F@k3MN)BSJFhLVZaAFKSS2%IHw{p2x~mKxA;)simu-oAOm z$IpN3)-7sL?}TQ<`MEh_i5xYy;5VX22=UJko!MZV@yYp4l3$YC@UjR94_SDIZ+N$| zWGMG{Si-BC{K_U$^6p2K=(rY1>IG>EiQtodg48Yoi!?^SA<=~0xlcnzzyyLtJ7gPi zqoFLvJ;6Jm@EQ9~gHU-jD)#YQFqfB?_w=mp&PqYU4nfD~8+4Z5SMusolH6CSVM*$W zxbwhf45|Q7G5VpcbgJF!n}4dXry3nGr=vhU%s(}0psqu>qw%7M8@tLMnY^aq_oylj zve<#CY{+#%O|E#$4=dTBD_UI7>3>&nN!{%|^w?>#U&x{^zeMtlAF7?qjNP)R)NgNp#uF0$Z0g%}}L_t*MAH)6;} zO9K8jr_IUM#OLACy)6F0J0JBnUvTY~nU7vJCtvX!{7x|K&Ms%tzky-AaUL2T9xflx zzdlvxGuIZj!7!AschP0*UHqc&R=$dU@rdcKg!b9(C$h4QKYk>6{T%_`nr@||Os2}D z+YZpN?%7UO8@Gpp{k*2b)ouG;l3vnu9kU(4gr*?)^`8 zLscW5X!!g_&Xwju;acY{I2WgZK{yw88aa1n@C-ITz#{xv+?kv7*yMmRymLWL4vMHq ztv7ZJLPREi$J#dy`ozJ_C~M*FGXPA?OLPMR13E;tr#l_keqVMwfR-xJ229MMXrAMp zY{d6-kA1sJjNXBQTyw*Cya(evlUCfBUgLgf$wiFo?BUnaGq35%Y4xdhnLR_AUP@%h z_tX7%n{INF&!0axHa0Hz11EEhOLy+5!#Xg z$^jbBKMTMON;7>BA#IWq#gTg>@?5UYqqF8sL(1E3JjieYo8sg=YvD=+W0>D14TP?K zH-r_6bl`U$0B0S*83O}De0+Q;)dOdEY^ca_8ylH9ZyZFcdD7pWW%e!iTa@}OCt6rr zqZsQmGczdSp7;n9$B-DgMmbA2 z4pBj+RJhLfBLo{A8$s2~f4s?k|2Uy)w|llxi9C)>8te3hp#4Aqkf~Brqls7-M>=@~7 z)UUINla-rcBvd3{5+z0U-Yiz(>OsGPOvEj(?dEIjv8V?da!9V{{1BoZMsD-s?{wpe0}ZBk2&1&um#4$S!z@>@ znykBPC6$tV$PlsUG@n?7v!W!b7T39P+)B&k2|5g%ggsrVz$6zNm;2isH;%Cl8|Ov z^>9@ToD@M42GD$J_7~!9QRxT5fJP!LG{n)tQ9Q&7-(_$rp!iMF#ZNpjIJ$7gU%9U* zA5~_)2=@8a6T5O=j$7kNI=pLt;V^yMAE9e>s6XCKzE}$oM34;??wZkg$9cUQ zGA?v}ktG`AYA+xXw%Oxq^biu)F?80{!9#f|GVzff1VPJKBY?0)PStpC5bN^pDr0-X zxVq6{*qO(I6!Juq-8n`Fr51-eS^>qgWnJIOWR<^rbK)bO-xSfZ)6z`$R|am}xbY;F zhk?OpeY6x9(Y1N_$m=&*ZLYM%E61;#CECDbf)jt1-`9@o^EVd8dD1;5A z+T1|RxW6tuP6_!*neg6eLgHsaI5|N)^=F~^Ho09Mm7|O7N zZ4d3HXVGy2&u*d2avP%h>E9mls4 zsvAR5>w|$;?h~yCum8>EO3E0TDEi>0$#3!QQ`9K(mJ|?xhd0qXDf{i2=BB3P&Vwpw z8TkHkc64ma>v_B$z}Y<=;Fbc$N?}y!z}o#Z6nXn-!brSJ$;-eykv2#eSTD=nZO2aA zTP&56GMTIFSVv9wAUY&jWrxW&7tk9Mg2S5iZd$e zQ(e0Wq`d=Y`3ffXC^AD}q5YV-YiN%({k5W$8DA&#K_}+~ho!V1!7?80Cs#rZ=z$ok zc5^8A(<-;2x@VJM`vlz=ar)~bj|$}btrn$=&eyGeH*qM{By@&x?{YGAwAewE0(cOn zL!EDHQRcIslU4Im(BZ;vQQ$%YI|10N_t-D3l)#{OLtd^&7(O zd)02c&>EqosR;z7XKHHBr-$3nymFHMM6{lqPK=B7z_L5%+3g~?%J{+C`K?Xe>#a}s zf%!XgVMX7>x7^(;%<1BE?C~hFaV=q2CV^d;cdRBv{x8N2RZ>58OSyF+*X7bdii@81 z)*WhBzQBM?bW9S|Q6_Qj_DB+eQ(uGbv++u&?7n4V?&|=Vi3)*`?$YNz;%Tai@$$-y zeRCHc#evpCpZt&ET&fGWqHcdoM{Gi}+V0Qq$51P>X{OISb&(Jra6>9ei8OqD8R%7U9Nkz#J`|(YR-(+He+mr>+S*Dhw z(YyX9h>VR>`}-e|L0|8xOdg50HX#{ca+)X{oCM;qpWPT)^JyUo0=e8Bnc}M;qK@;H z{Z#+lm8bAv=q)y6$Cy5A6GlT#1Xl?J;_LTe8cbYau;I|71U)j9RGl3iW8YtX1;In& zU~`Bg*b;W!<$R+f5W>h zg2XpQhBqgV{zQI%Y-LeY6~M-aaQ^*kC_!F=O|*xe7Mt-UyZeHn z_bER>KNQ`)dqdH0&=7(=8gmyx?V{fC7#x3Z*Q$ZMy@5PO(Q2j7GTMw$ALb^HrH0%` z#&u1?LYrZ%jBU^K82}Q@axugd6enAaL_mnW$InkK^Zxdjm-umaU^c*pdoZ~dR)AqM}}tpbUH_xYrF<01lfHn;i0qA#`;Hiw3r4x zOGE{)u_U#n{m#C=R3(iNa(ghaJHli5Q1oJ6@v}d_8h(L}chRF>^Vg*T6ZIqcH~BDQtIy%=e(@FNycXGl((4 zkmAz$oX*lf^AIHbYfm;FOhw}$B936kzTigXBS`hHT|Bi%j~+n_>Y}wDfE=KVK79BP z!1SJ%8}f&ZY_sG}#rupCtgr(EIaDjl{@3mf)8ZGrH|6Yca0zU8@`)wXN?lK-y ze@!UhJCW$=7F4I8Aq?7!A^3!bHX-V6i&79@J7}}@zWtj9B}LLF1gl?OlwY^9kWs~( zC`FJ%tZh? zb#`WEbaeDoIh95q>+;(`tpG>mZZaZ^DCLN4dEb|5eUhsv#9)0mb<;olW>2h$34Q#~5nRF8$=EV$x99f41V8SCfjh-RC`v z5{j?eGNzw+gCO{Hz}pUa)Ms6%$Qmh_7`65dNcjK31yIOUlbuaPBqaYk{*edH39yhJ z|Bv>FXF_@~UvD#a;U$Uy9(cipMT{PIZjv>gUmBlq^_&!FM)0BFMc;i;(S^A=^U_fu zs5>o00#*W`>7I%nE0@-{TuI%#?1+yo$r^cl^sJxiSPQBi0x;RU(YIaV$n~E~$94yl z1^hPShd(ZJK^xx!kA0)4ca zXh;K2)%~{U6Zp!EcV!_MB~tnp(m$=!(=EECf2D2YU117jo45YCM6h%Z0~&kXnx^fnAh8X|K{wO4%k&yK`7LH< zGZT~M=4QAAAVI{-eYn6tIBCu9{y0U(|Iom9il&W6t3oE1UuM1@tZ)k|S-^~&KXMCz z0wu~gYHN>!R+d3y1K1@rETws`J>s_$H?!+ua z9>3b!SXfzCs;%vy$(tuOCnJO96U0O2EI!$}Ung%-bUmy@M?Oa{5|=|G@sO@Z2(e-D z2=C1h6;@~m^Umzb2Q${7;L>s2{z(g;e7~uSwA%~=!B<6L-BW7%u*ca0&L6H5sN!l6 zuYra;j_L$=GX`B1K$#%o@8~AMc3@Uu`L%f%2=;6TS^1m7wG-Xe}1l#RtigW$MWD5=o6{fgc-Gz3G9yC#m!r1OaJ14@1Um*Sh94%LaY{}tqP zH~7!+(_~}X73EWWHvk+!ABtQYZ@W#oVjS;n9-bmFEZ@J!G)|LVyB2zr@29BhFQI-Z9y-0D z#e1;VQon?!`ZcU5&z}wpQ;_}JY-4mLeHq4ZPzxwPI19T15CU{pT3&uq#9t>-|62dQ z1x*ycv|V|6cSpe1D8J%KYp^KA!+dRn1F7IO=PDFhnxu^L4kj)djZ|=qFX479bIdp8r2XqL-rm zI7p%hwT~a0iNX{G+xzWP=4%LI-k)yW1_`56z%Y=iul`RA;{*3bz;zEB0mrA`~a`{{7Fo z`JvFT0JnCSSbM+Wkig{yhMx4oAh&>uck^S^+i|I06+LV-EQD_QN~)av`~!JmL=2aX zzh-y##3rWS`5PPJt3M~u#GzXq)1dFU*DDSAO)oGrLVt&ioU5q1=`pv$glC|>)p7IL z2z~bj9`MC$FMq1S<{st3aFQF|%z6v1M@2f2%_QlJ&(R~b+hKjZ($^nt%c_=s$uY)jqcjHV!a zBO`>=+W#jR$RCg%@!H0y=mVDx?a;4MvQM5YK*!B`IPx~7qlyoD7mba+ADk+Pqnr`9 zh6{lPaDq^EVYq!^W1_0=;@l&kaazQtcmzP*)=#$laj4V6EeDSk6#lAbB6O>!uQo@Kr;5)HWt=ubKN_IL?9fS*Q?)ilfAv$usskfx`c#;K$dlB2?`T%b%Z(#>2c+K zA0QTJI`R&S-c)~hr#+%vc^Tz+9^-!U<&%P1IjVKc|06)8%FAfTbyoBZP6=cy&z7H; zFrHp6hHJ+YNHUmYQ1f@cPO%OYq-Xd=OOEs?`}VIryJt3jKP22(p~d0`DjM)Tm=-8P zc%fM`TQ-C+;w}@--G^w11TlaR^QYC~&2x8|twW(b0+jwz4rFAsy6)7dZj!P-FYJ@B z7`%iajw{Ob$H3>h#;Kk0lqE(k?WFB^e^r$=lIt=C?(-=tb6#jsF**WOaQt865?t|l zAIsT}*g_(_#=dhO4;Sj8{>THOQ)4>gH^k)PccgGgST)lIEjUU^$)Yv0suL8Xdkgz% z=3m?>=Wz}LI+^C^%M7RMrGu;{?DK{3sR~$gO5ez$1tSZ|(QZ%^1g=@4V}{%9o-jmx zS-T{&A%9qXLBE(Z?pgPFoNF<`Bk%4+A#6wKdu{z1xO(H=yLWJ@$iE)@1Ab1u+EeIg zD^MYZ8#%!HI=Hw*KW3DTVy|%9O&dwgq!foItZCa}?f{dU{T#e*Vd& zmK8PxY2~+n=!Y%KAx9vgBA97#IkJF{ovvK3kriCLt&1??0X0N(A9N zfeV6INrQmP^YiD=jEoGB61cr*nEoaD`w1djK3D%Ov*wP3RLV*t=)h;YSy4Z;dj!o_ zXE!6Cq^elNj&sFVcl|FPs#Yw745d(H z7E#7Lnah-r5E4SBWQdANMHwm?%ak!ge#gCf_q*S3KYM@uA+6TB*L`2td7a~N9;bLj zMaUP(+sU-=U-g&MoUZu$H#arS7e~d!Nb$1xX;SS5z(3(F{Rsa7tjwp6A9Yq=Hz(b^ zxkB*s%z@|{>Us9hmo=pBsv-8c5cD8qq4974fkI3f@!X}cZXFf&>u`pikS;@HWaMUp zB$+K+{^}NPfBiZ#HdbKuYD*m(uxR8hN=ZpMVgD{(6x9u&tzOIwIXP^coIU7RBuk*O+w}6~ z^z1C>s#THAebCp?^5BHpnl|a^J&DtF8`hm+J$b z-ciS3h$jLSzn=bv)Kr9+#xD3cm0|cglnCIW%Wc^bui@jZs~e)||A>*_{+lDC?}18# zob1x}q4NEU;~WOW`Sx9KaIO>kwT*#pH&|oJ%RPGP!JcJiW)`NC_WBGS0(Ds8^Sos0 z@vhvRV$w~_Ar20!?qC;5bIPA66Z?`ROeA@Mn;HJ#_PKh+Rju93TV!R~IXH@SPLnQ; z7;EJ^#7uhrkYOPy$c1?de8CZXpL5)K=0^vpZsg_jz*mMx1us@2q8cus1b%{*=(vVH z$>WXjn^PAn{d-@ye`Zvs>7q5Ec2PeTe@%jrsLXxZ?$|Mb1Mt?1sQe;b|DUuZ)u#9 zfH)#SyCM;eeG-u-$ByZO3hSCq8iWo;=Y4pKwIQ`e@W|<`ywUptZcfK;&!iE%E68&= zgLzBv*Yhd?T%{CKLqn>AjI3K>c7O#~7j*^rHivT_20t$Aij0iprT0^-=XiaBX>9Nb!ot7LKU3+icr1GL`Hj*qP6R9%p5_<4y$dhGbkcK`J~#%5;nT+EQc(_4?DH5g!&cXnWYaJ028I25Ji zt4O96KZ*0mT^{BLzQF3<9Y)wcDudo}|Bd{FN4|<^DyPUPZ{Hrpb?2R3DMg))0mxXX zhi$nfkH|!iV}*{~-$3<(ZtFwN@taXmyhu55F*A!_y?Pbdzx?T1dTLpq{TdsgAnDVr zn?Df|Q!qH@Y+xTB zQzvl`$*q(;an>AytBSh**2|gkaks(Lpgj^lX6ZGh^s}uvRm%11dM_aG6$q5cKbmK{ zvrW8!d^;{~Za6#d#O4j8a-+y}B|&C>07^AAwE4-PsS|DAZ)D=-wql3M_Whbg7YWRXB2J_dtpKu}Mn1kwC^9 zQE-lg@*h@OBWeQcX=D^>rM)6wp6|F_WvKtJ-4Oi77rESZ76nJMiyS0LGkY(e=z6=? z+#B8n)7HZ3rj`~s)BIr!)k!X$Z*7OCWjLC>_>+mf^u3@bmk*l^x9e+fucd`W4mX$Y zDZ`|rx|uu58F$cZl)~#9j7O^y_l8LZ-;oUF0z1@|XV3OX*E3c-K%{n_XmTu#8`Z?M zu482YXi&(Hd}-Z$`eAEpYi5#rQ}FH;3Z`|oisH{WS@R)13RoO5@3~ajUQ+&g*X5Ef z+{)N1bLZnUG1fcXuf$I3Jzi&9bTc4~Fy4Z}@vhu-p*A=lYekc8&?A@jl$qbx_QY~} zx(ieI>PY?CZAmLg)boNhbP9*|#+>-tFv(mqgJZ6+A(XlzF5~N?6WJO0BrIW|AGZu? zwV``$#iVG!jprc+^iUdXwvBY(fwK{5Z?rDlsjd!cJn_i=r(fP93Euzu=%aJ7=3rPA zlHgPoZPU&FbK|A11qKE}Ggw(!A&-xg?HJP7NL*RFzIye_dmzyjxnnr9u-xGC+Q{>w z-`C3Ibdj?ggYaXh=W#3;fkw%XymJpm1*QuNYi8C1b05BwE>T|q%zp!utgNi4BEYcY z904`^1^c8k0K^Uzd2`~RmpY}J<{9YfHotg5L1v-7mtkFiq(L_OP9{b|8msfkO#U^Y zB@i*6rWY@sfU>fE{oJRX-^HN$1WG9-WgWqz(g46dYEpBf4WaL%P~v0pBz#eH<24^7i;>*x=5>^~I%@E3{){MSDt5B&T0@A@m(xg>b5 zqX+^Y63O3$gr!hilZ)- znqr*Qc4m9VB{@k+W)6<-a@Vn_Er)L>Ci-8w0vx|r2*WB(=B!3zSH)Q>y(`2cGG1A` zZ(u;0mnCFRYiFkj56_#Dy;9KtD1H1W#l@^QOo4xeBWPx}3^Gwh28O%o=|qYpF)@*# zG2N?mbwV#QV@;kbH~+*cKH5=JNPNDYEGsKZ6poNGR45Tj2)J{P`=m}s{2j>(Q{?Ek z+Po5h6Z`U(avr%rV#}825*MDTWUA+0O0H{IT!+J2e`7rvN{L>0OYm0y?P$H&uc!BD zKf~5|y>#R0vqo7a4odK>6Fwf_bdy_4OIzC`0)pf{`BE7qh4EXhnyy9WlXJXf$uk@k z&~`HXYscA0R2wGK&a;+{boM|8(F=n)Pj3?|JG<9#R;CQ!?(^rzLGSo4=Qh}H(trIW z4i1h=G-ULo)v^V$2RN|=8eKSXR)I@hd?l&6lI_XkPZ{6VJglBa*)YtEAigUtJuZI* zw&vz$gP5qOsnI7l{^iIHL`xrAixNF-Br;=4#gtN~y5?s4?X|~9wf7cG*H3*>z24y| z6hsS;IM_;=vNJPn0MR~o?%dY+7cXCqOn)#N8yYImVF0oyUeW%jo}L~=2B2sM2bqWl z-TnI&*6wufXA7yDhf}2U_7|vySU5Q&A|k3TjQ}k53BcLPc`8F6uIx}e?>76&b${mM?JgCHUp(h1 z1C;%lM!M#Mvut$jv2cc3qWu?;;I7_4?(h=hFRe}4x_0iEL5X>tviG^&uV@d#uQ@5< zN-~r#I-zKl!h9dvSmF5%#u)ufqCEhSzQ%YfbRNNao2YN|vYIrQsopiJ`tHC4Z%he2 z$=5cJ;y;ayZT<3qWCQWRl zU2o%S3U!B?8eCwt9qis0hek&)UATas#nui=SLvF+h@R%-)|%%tsMyQb60Pm(i|t`8 zF8#_`%G6w2+Y4u0d*q$>!pvDtPR{JTj8t=h)pnbAiW{rTuDZ;)d=9%Z9QY(eVf*%} z)>Lh6(VZ@XhG)*)y9hrq|J8}5+=!DW&s|JI_Mh}g(22pGK2h(`L4iUAO3#Twd};bhQBMkYX5kuQRq+Q)dvjOoMY< z?lbDT@6jt>89PXT2Yl9?fwkIGs=ehYYv>XN_f3Fa>_+$my7hKfM>SW zt%PHxz^ao^dg1a{s`b*mMP` zPH28(eat%AyEAH;`K#|y4&IA?>BO;EAxww_sWXU<^~Xuw1Fr9WafEOC?k8Xf?}2of zDkhWf2=V+idb{E8fn>|YQpXsk$0HAjkP zbaWJS-v9{!S})=;fFf!EIR{YvZdGymm&h<2_4(v?3mVNgeo#K&MfKF4J$q0CHaAZ- z&YBt@XJ%#1&dL(f9U#gi(Bi!l^5Q`1k?)>iSWJD+2rEdpEkZ#rq9Uy!guPYcSK z_)-x6A{0fw+}ib=on3H5gu%gsT7G>u9&A(;l>Azv_d{5YmR#_yd2L1oRWdCBIQaYU zw>=U@Zf`%YCg_)s~RnFl}d z2nyaaky2a}CX`rMScuFehp6i53SU1RGx;ZJ#={CbkT_!7=i~RTv-8K-umA1s*xA_> zoe&iu{wRCQIAqteJyH=pE`ICFlW#to)UFRMyAsmQHZO0&yEm+TYtt+Es$;{$Ky*E% zx>a*&{7yfRdFP23pHx!)VMIEMRn$Ke#T`eQid)%67 zNFs?mBW47sBz;Yj6+NQbLI3Klw@v>Gd92O|HXG4zUw{An!a`6$Kx5y}`uch>*8=w) zR$A*#@xil=Gtv1W#Y~N~8FrG`j9g!Jh2Lsve(Af<$Apmby2{R#N@cGJrRDovLH?3h26Mdj z;k=eOqgNI;fUJN$4*kU7I@pYMB|rMPXpYscYZrO&VY zqM3Kn(u<(0`)1AA`A1wt+xD$KxJtZWgp;N!Rb+B% zu1xenrEg&A-ZqfYO5`xB$#|>6(`eC)locKa@47wh+`aZEJD$l*;R@qacGLHJFOC+r zpPms;`tzkL$ZjrT@2Rf`*JWSh`uR|t7Ccr@;3A={9Y)cs`&nWW|EL7tI%r(gu7i&6 z+PQ);o3~# z^X{GMZ*s=AyS?OZjJ-zFxYbYptlinH?1If+?m{7lOwTaWPOzYv!d_+$X|?;tKfVV% z-;KJh36#=%@6Mh*?a!1c+b1q?6NM2HnX$iaw3avZ>^RgEB_nlxq z9PruqVVczC2O@eLs3Tg|)+W_lg02|f;P8v5V8B8BwGiY=2s$(}=FR9=OIeY%_T48} z)3UMEWw-&Qzbo#eh3!r zqZ=)B@s-6RXE%r6zdQA9NQ9B5)7lAr{oqQj;@?}IWJ#ZbH}mHT+%irprSDg^UXai8 zH~dy3JNjpT)Y>Z-cm4Qwj=e!$mwE5|ZkEp;=V>?R%XRY9#9w=v-~YXAQ6$s2W8Ddw zjMfVyd3nSn$=304#ut{3Z5CF4u49jYJi9Uc{)T`jtz7#F50$iC(~mL6_0p;6fxKVa zzMiIt2kuAYuKskIQ|8CavHS0RY#B{Ehh7`g?k{EKxx{i#SMC!{yN`1J@#F|I#r9O` zm}e-}Z==<|Bl>aDluJAYE=;f!?2P>67r9eM4^^0|hACf+W~J>^>#9kMS@YoYp;L)% zf3+BEHHL`(5#{O|Sm~J!YWLsBHVWN@DJL=D0?%Hqe>t!3|G~k}^LiZZEDQ!+E?7|5 zd#3n7ebUsBm5kEmRPk%H|Itwh&tL}H?|tq`RFpt`4YlJm*?(wKwWq?v710m4^DtZj zh!Fxx4JOj*TCp(*MqQ1m6P&vHu2LbL0?EtycF>yLJEo+S?vD?m~LxYCVnD?T@r{U-%p@zLK@g))4SmOsoGEf+h&H=rmK;(jM}crW?Xtd z#BYnY+CcNa%ptF~?7sU>Zy@Vb5GaYpG<^ug>5>#8pYXp6c& z1!X87KRzL$<1k#t#ulF7VIXQnLPEBt13HTGZHgZLO%|(eG$vT^MegG$@ zT4B&h|`u=^~!zX^;6WP2uv$Km ze94#myBwTw->S&6tWF%)V(t(Tiy${lTD51i%|`@#kF{n($wIV~+P)%`TGNR0u}WNi zJHs2oviN#IU#wRtf6z4fVNvM9)(2d@i8!cfS9CYA4g80`@OQ}J#OwY~bDd|u$UWUn z3%*R17-)W_uT^NQSH5onuDtmLpT*ltc<15N>MJ$>v@3}hnv$(+x`D(S4jE%(6Wc1^L|ox&~8CcP5p-u zv-r0Y#`FeHW8}F#{&k#uyR`in@1{R0pChvdH6+ZwXP{}*^9*qk4F73ZNMt6R{Q7cf zwc&v7&gUU@=luS}{GZnuQp4>3X;^wS{S+VI`;Fayx`baL622r67R1fjRQs^gERMqm z1+I5qrzu7e7XH$R!|w!CNBb^v1*<=<`{PxJymafSeDcBV)AOY`n^mceA5X6E zXztV|AjjxOSx84{iX2qw%cCBrzO;vm~iJhlKBpYKD|$S&{lM87*CK~)w;&) zCq+fyBIf3`TJC(6S2E!kfMmt3WX^4o!kn&bsH$yHlA0NEXDUFDEr2VD^^-@^d5e3k zn@t*>>mH z9!BYwZ1llHXv)fBa=LqR!wpvY9eNTBr3!pb=IeqE1gIR9Q__U(5fSkuPFF5A zvW_e6BW`ZmeAAkTL>KN^p=hBGBE8e}#9CP#LVVLKtDxdxPuc6B5-~gPw z*!>M_D*tPfc;@$^Mucr=L(oY4!hs?N{`$vm_pf7&(Mh|!yfll69Y)vppn5e4asq(X zX1&yI0|bYLbJvR(F)RsVM{1LE{};(9@}G7pMPnjbUxAI;!gC!ZmSW&D0VYs;Y4t35 zjkA-G*F8-2!Jrr94Ai%+7GK{78tEPHFDS%P@f3cBM}c29r|VNAI%>5 zOQ5$Z+q?foyk$fwmlhEH|3E|4-VS@dJb@WrpDBfy43SYDS zuat+^%IyA!-b?cssRHCY3QeJ*p~!k8b8EkSjmHbCxwOzGtEg0OwBn&>Lo}j6xZi|r zIaLrVC*=LUwUt^`>PcXHFzE|DFo67{Ec<0-Br!hTHloyX`rWa>U8rK|G9Rz>EZy1v z6C<0DWi?4PNZnz_Wx z#uj?*n&4DLXj8hGLO< z&|eOzhG*(M3=&oQ#>T{Wc~5&n;7}r4`29}JVrBDiY%|0VUiR2)&`9uTMIG!*8MAVe z+azjbBIh4iX4TApRciuMyf~Ikbv9~=%xmb{*+~IPf(|X6Nz=fAH?cZtJCNAE!pQ19 zoo&WGkJl_bcjUL=GA43MJf-f_!$1?G+iao_6Zv>q>Ym@+9Dlpf@Lwx#!IRzp)tB)- z03h(8p&3yb)OlNV=gyTniwY#)>tg{wU$J6^ml^{TlT>t5x9wwYHFE273 zD}89ldxS!9SWNJ{&NgXpH)l|iM+vlPrik3Hc89nfmx-asX~3VxlP+PPkjjDoM7j|% zhNK$#*%>EWJG+B=dQr`N=!Wu7dM4*2)MpU3s+5iI{)yc15aQ1*!1JzcHrJ9kJxFm= zC&t`iUK}P4U~(H;tk6NP+_qIFaKQM~DK9kAppu3|n^Rf23%v87C~`;XW8|;c$~SM{ z!gWU&7NokW))_^? zy4-agbSXRm>iG|rjO3N2B8bo2S_w#e{`%C6w&+ItyowAHDHxKr z*4FdL=5_zIx0gZkEsxOe4{hVg=gdmkT4G97O#JpTe>tyGHUBOzTufthWCY|za@$_5 z`&VGs`&0-04NV*|TRr7)fE!y{P!$&*malpp&~$^MGkMr@zZ|`G1sD=wy#Ky=6LsNz z&P;(Dv~*_ACW9FW2n|eVTe-7ooN{`rkoX3ahf2T$eFi&?J{_hczb~aza09T~NLz~a zv$3^U5x3giy^?e7)WpOEXXj7Ije_AJsO(FKcqv;#Bf6>dlhiNwHSwXU50)it>uIPT z)I>Wv;%%>o&e=EJHGnK{DzK9aKS~w4pmN*S*EcoBn^Rsz=R0AR_^iCW`2%B z@d%fY&`@8W;vm#;h>@-B7V!;#{dHk(cB^`9YpWpw)Jjn_iJziSn7riEoP>UBG^6O< z?r;f6SzIXknt65JmYcg0@sM|xg2&b|5|w5hoxlrzU+})8;M@S7f`w)NqVUwGvy0B( ziawZbs{~%K5Wq@h$0Xw{2L}gAp>-G%F~GGsF5}QB#v-GlwO>o?Y06j;6b$hgI=?ty z-0NAsq_c6Wg&Z)C7>ssIDjKT})DJr|^Z4|1ZeCtV0|o6|C;(_`Rs-wQ`tf7J-+w=~ zF62ZuKeH6PD$3n%{%pld(O!K&flT1mf)4{s6>&O7K7A;$J8dFYyBXY7(ctrljg5sj zgIqH}&@h?Zvsr2BIP?DhhY;s+Kuw;MIo&_Wht%P?%o13;G=Cu#~G6g8ebZ>*@C0wy4MC!e92zJC2lblLB8kBTo1b+hWI^6}BsBqg^b0}S9e@~V0d z(;9LV+vLzpG^_K2IT`;N1qB3XC|BIFlygGujg-R8LKK-utcY&$7u8&n<|xXr{qO!^ zARUtAr0S=%8WxEx_0ddoy$I?GI!Bl@XBOfCg#P>%>jhF6Rf2u zTLBaVO}#FFXkUYONasgIhbvV3_l22c@A;v4nvuGDOAUi? zO`#YmNaz<}9{Hq?A|!|t5Zr4tF)@Lb0$dY6Va%5SKsoz!iJqh?2pH-+NA{Q+YI~tg z1X)JOJMqR1P39dQGdUAhmX-uCZ+7;BT~U1uTHU}GN~}aPx&~IRb<@oIFq?E1lLqT2 z?Tbz*-AYVIP*n)5WPERkjsa$IOe|DfuV6UP@?Eqgx+<+Wypg(*Q0@gWer0X!Q_M zhGpTxa>kl=iw)5SODUu123QDtH!F8L0cdQ1QfJ@42UCy;wD|z&8!<0Y+lwG5!fcv! zFe82XHsDwz4{OTg52VFtqPB zYD+lg)u|Xu85x5hg_9m6ox-W!mr`ujZg;)G$c59W~@gerW&#U7EIhbMp{0@xLRP~E9Sn2 zSn3M^@CbmwU^vQGHN>1-*p|GkETUB;pBv>mXtjT9GvpNUPv5IRJN*ACyJa!KCw>QC U{5VsCcaaY4)!*|#i+bh%0sgK3tpET3 literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_HTTPRoutes/memory-oss.png b/tests/results/scale/2.1.0/TestScale_HTTPRoutes/memory-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea868fc7ea690e9b8a76a81fdf155ad7f5b40f7 GIT binary patch literal 22998 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_HTTPRoutes/ttr-plus.png b/tests/results/scale/2.1.0/TestScale_HTTPRoutes/ttr-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..c3ffa9dbab636b10b5012583f40a3057e2761fdb GIT binary patch literal 31557 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_HTTPSListeners/cpu-oss.png b/tests/results/scale/2.1.0/TestScale_HTTPSListeners/cpu-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..52b299a1997f35e7fb7ea8b78d91234589ff7a0b GIT binary patch literal 25062 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 @2;D7mJjG;lF$d7>UAMDcIe3iKQlOB|HhL@DK}< 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 P7sya-owt^deUJYOQUdD` literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_HTTPSListeners/memory-oss.png b/tests/results/scale/2.1.0/TestScale_HTTPSListeners/memory-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..9e70a7cb2d73b517db4ba7bf110ce3c21d8dc7db GIT binary patch literal 23408 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 P85&LXy=plsqznHKs3JCJ literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_HTTPSListeners/ttr-plus.png b/tests/results/scale/2.1.0/TestScale_HTTPSListeners/ttr-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..afe5382f7f8d3ca38612be336a5bacf01996fcda GIT binary patch literal 38034 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%0Am6iL+EhiOeS89s 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%0DKy#@5G|C(dFv&S&k9B3W7ccmk{JF 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˨i`G#;+#d1Ez6|I{ z9KK5ob0Rs-=~)5|IsU?o(9vnkvlCDYu8gv#<`iHka6}mvoKY+Y480`tF8vVFyFrZg zHEwJ{f$yV=&rlEsS#}VNhQK7$;h0Y~`rM|u&#bG>CVw+n9KZ(?JB9K+l0N`pP;E1W zZJ`n4XQ?-ReT<Sege`&Hjg=joRu+`2zR_yS|&qo;j<5Xqr-_73uk*>8+=J zC6njsB@JM+9HHYSq`WMMB0V18ym7P>nRp264#O3)Srq^zLWYcu4S=cYB+ zsYY-xX*bA+{Oj6)Ak+a7PTGB86@HAtEVk6yPR%UUJ>Ph+A0gtRtz)BzEDh6L`X^et zS5-O4GjH94rcE#*+(B%p`aK{j`b_*AsQj{{jvRb&&4m(acy#cE; ze7*nvK+6KoKW1~=H3p<+pA9z>XhZ+U6Y~iLkSF#T!Vs4lNZ5?Km)eT1<)5Sd$4V9! zgjuk;!}k_h$WC130Q3%A;QRmFnyeed{-s1PY!EU;=&V*J>)L;Ff_-022fFs37;@ zi^m4!+kuA&D0Ovpb<05yK<^;1GdrxxaV=R4m|4JB{6k6q@-mTpIBW;CDputlpa=GT zY^rH!OqQ4jKA$!yw|dYU1u-s!)v3O|9wa_kPMc5&heQ*=EX0IIKpIP%jpMJKM&BeJ zgxu-NzyuD&(jE_ywo?@qUm@Yo*Az5ZEm&wzFI6r<Z`BXJ!|&czKy+|-ceknsAzX)kP&>dxz++M`QgTY$QdPNv67dTJ{l;T|Z8Zc+ zq4FSA+V3am3+Mz3Jv7taevIWdUh=IfDbd0NL5@HjLnGwbf=vJV21>qoOzA%(t0*{1 zh+G162u$KqQB__ZyMTZI8ylOXfcKCy;bkUPnY$K-Q^qCf3~GJsS}L+60jK-ncBX9GC3b?9GKg(TEEcOFYEgJZCBib z=7fw|CGxl0ds0)b7dX#LJm!Dj804mL1hy^YE^BLe>o3hnK=9-Yh!xceo&&)8Tfrab z`WgI#&vYmca1$e{FVM9eKT}hbHfDW)BKHORm6v~t=5P>Ibs>4riI9flE)>Y`Ab=qF z%H8<|B&z%aB0kD1W~=`#7m*_b0+4(yiy@bw!ExWerg1d4bn4T7UZ2Mt}qATigGy)-*n<3vF%4P*!2G?TiM|wN&`}YgJ}_c zg&rs`?;NR;{8Cs^I^$z{96kSQlV#rq-l2wm4caI5`p_B24|ER(h5YzjtsTxd8$KBB z|CF#94Out99#+PY{6q6G2ZihUIkJ0n(u`gHvHtDrKZbjd;|7C0d<2(*Y4xz0JhHI= z9xIbPn11J@#Q$0V5K3&)Hp-oYk9;aGvMc?ep8Fu)hK86iY-;oQ+X~3i9wk8Hr*i*u zJQYHoH8Zm#Se%i!4P|Ml*t3{6P}OzWoRh zFuSgd_OK{+1BQLiCdb)y3wa!-o+CgnK)l}Xd z?vS6P)_~SDRh0;bUCu`_KcuDYfpJm^>}Ta8ipoAW995$Y?V$$Y%AmQ@oJ&q>$J48I!-S!yvHjn>;?s} zxVX4X^mwu8iGLxJQ?GFc!MhHMvHlSejbL6zMypl%9cQXgbu8{LKt*NFjaUYko@_lv ze92%J$cYjuJ`6d$;Xg$FWR zNI!nT{y$|nhWH3>EbV`R?gS_th2Rh5nEHX_1}uO}NU`Wr2V%J{_3WR1RC+Load8jM zl5#vD*FhduG$3_2G$|<#m6ssfYb;ljA(ib+=!}V^50r(WnW(9$0~mMb*rY%1@*=p4 z4AB>N{zqTXL){|80Dx7%I8_tih6hiwtzZJ<%Jru&In(7&Z2ktd=8cr*FDv|J)6acX zLNhhhxSTkRw4AN0>KhN^-4!s9(6UrT1Em&nb(%A%wCVIRPY6Pv;D5dGHZ@nqE65JV z`6ZCho+Tj@1@_dpWHFt+X9MLV{)F@)GifwMj5e*3$KgGToN&#^49Q&&f3soy7r;TD ziD0&0b^@NHL7V4G6Ol|Ee)PV157GKx(#Vx>i-Pb1}aqBn2|If+bn#Df#dH zEeHVbhw(2v#~+q^#OJ~H@6RiKQ`v{AI3p%{;U*blNU<=i% z8G#LWponb6jn=8atEC1A|IQ<+A1|kG0FeFwmBG~fmdfWfz76&SEZ+^v42tv^2&`Do zJ2>$*d5bMjDFy*YPRIe};K+HM%ZD#3?zkmvPF+YBAV20j5=p~Jg=j9=pgs$q@+1XH1lf3W} zGD6hU)HG8hMmnP|qr1J$vJS%N2L|IWdpRu6fLX%xs|}#etq91M#_H(}+gE9%5FvZT z{Y!}c!@VNz!4DsuulYk>E{h*D%r1PR>a-Ac-mwaPV2I1Ivg9)FFEk0 z|LvV@AXkr_6obl-cRR|4hK7oYcU#OB=Q_`(eMG!EvZr6G1^t(w!*@Xw4?ai7@tXF2 zbPukx@`Uw^9#qUJ*-t_MeJ^Z9|EWe4zes z8K~d#F8$yut+?Wm$X9Ww92^f;!0bR1pbirqNYV5D>CJHGQ0S68_W#hoq^l%O<{(oc zK&_^(PKGlLp{}zj3N{W9B8E5zgRs4Uz5ORJl)f)!J{lYx^i1_nLo*2{u51pO0<)G2 zn0yd>_T7j|^@c*zNjAppK_JZKMz?~uu%4KiUG^ow={t7WIXUpl=z1TZl|txq;b-8s z+W#WG{{;dtDY+Q3?P-Qfgw>Otg$qINv)^qJa^=1ig>rvzb0M`5p`p>y(UA8Jk*7Oe zM&{qzDNUc4G~$WT*J{{>;S>kpm0DA zbqvD7!lzkSkRq+=ljPE1*{Gr68hw@u>61VjDtB}!_CBAPv5jSFT)nT`zn`7yfSHY5>3+4}FWH;qJa|SH5@W{xr8`H8|B(Snz zEl$E#{n%W-EPW@fe*VJ;+saYc*6ze}Ymm#ZMW>`n52b#9Nf2foM<{HD?Dv*Hd?aBc z#hOIV4$u~);IFE1Rj1{^nR!xIR~Hn7vvvv+Wv~NKe{|#6JwJ4JE?^DtS7+tsPJusf z^%VNm*#CH2cQ%(7q#i~~aGN&PLk$Q-mLF2_Wo*L1xsdy|2x>|pcnmx)a7kb|nTiiK zD$JQ!AHit=cd+AV#Yg0H<>wpL+?dW#2>batSh^-vL96KcNLjm$;3W7>Q%=cT$X}*3 zC@AnpF<=9V3jXESU7c0#yfRXD)$N%NlxRr7Lmi;V z!3Q#D@Q%|_F)&Dj_hMzN`Xb~AJySTUvyo9y&^7M~wQ=Cw7;I~6Q)2LO0j9kaP09e< z7K>6q&EU@PSzljI3H&vnKWZ4pPu84{;xLk%VUV?3fulAKpd1pcpb51`uMEyWfMO;! zuURt;7J};AkYid$%*0x2CG9gw?xG(gM10BUY&v*!4K zo`6EB-r5wSM~JY2Yic$v7eA{f#uLgeHZ_}HScr>@V-R zDNSyfgBKs+L!4<3yDV`h%{%hyHXzrOLG7$L2zpdk)`X6gUyw5~p_kFRF5*0=jKvN> z?aTymMC1!t;0x$&@LxzOLHKeCE-l~eH@=K-NSyoCIVCD@=+(Xmzlj9M3>`O)e4wUke&$& z6ZW#&cWZ+&vaaPYD-GBQd_ora2yL0Lh9kdTnjs&zzUHN*_8 zuU_@p+Z+PYCm<9oU=M}D8h7OSAxUa&b~|St9o!`@)sOHx>+XcB{EzP|&O-O>(a|RE zf*PaZ!GUj3Ixfk^C|Erh^*JaUI#AuxIIk7`24pqd9GJD~(;;gstDXd*u5zbTTAhu2 zh1&`wWZ4Jb0MP#xzLEPD#$Q{_u_bkg!$VL|kjt<

Wf?;pQ^Y4^0@^e*G+(^lXv1lp9fBn|7D7r3ZCK2WWUi$53qelFalb-3XtdF%6g z;8|$c`vOT!?Afr$njq_;eow#HhYfo!F>~Dt9k&aL3!K@*z4})Wlgll?JTp1)>7NOD@bkRAQ2S<+{T@4OCev(GO zO5MoF2;_~c>n8Y7!58~J-w~pW+Th!T4|H|EbkI7&NM~UHLE(_I1PBlkBuU} z$lP8S`E|`a9;HV;KjL4E4;~?m5$Id@-mN4lpHbUN#PhMHhIfpH1s%|72}!5@Fl`8B zvTix$zO8j%n}oVkcu8+3_`*Tu1YwHw6JugFXTo@Xt~mNVbNLv#fMXa76mz_=JiQTf zb92xL?Ft03?n?)-heCAjn|C$h^n}XQb$U5#WGN0#V(}6D<4}kTY71Dn${nW~eNAU- zLvKLG1eoLQT$JYc3&>{!oDK~!xo#m{8jOvTcY>h!^~sYbAh20jSs&0#j!w+!nVLQ= zum#}QFqHunP~dVdI+RziwAW|J-`>_%(*&7b?zKj6mhJZnmTBoxE-J{?Vefc&a=Dnd zCskS+R!#;3^`AQOR5^Qz(LAjqjxiG+;90SitOZL%#j z(0bn=`R!)Hz5%WPv4-F_I0Bkcoh+diVa^3PIS{pL-*c6fmA!H$bE_Pj4O_l>Z$CF1BlLdrA0M-Hgg5=2kx2ZqB!j6&3!mR*-PzBon zKnFm36Wp8Q!Kcohi^G)J4io^GmHzpC7D-10I|C#TkIEb1P#SmSyZJ#qu4@y@XiVYg zjyX2%L1i2GS>E=9BQX~&R_IE{eNghIjou!x(+J_0gr@O}&!{v)0taGAlsq5QBvMjd z)YFsa@Bz@#@O0KLYzrGiFYdm|5(Kr&w5!2D&;Wbn2R{eIohB0q-uX+$#w)%{uv|$J z9?lS&mX&P<6rS>fiFVE+d)J0A)QJd|_GPfoF@E;qY3A zIVE&|*xmJx>a^s4d|ETbNJnSJW9i`9-#^cB%>4o4rt8Z#JBUI4e`<%4ec~xULPsUj SO;30TN<~3KzF5{Q;Qs-UxrzM% literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_Listeners/cpu-oss.png b/tests/results/scale/2.1.0/TestScale_Listeners/cpu-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..5ca95e980aea6c52c29d1c4e58b27438568e3f22 GIT binary patch literal 23936 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_Listeners/cpu-plus.png b/tests/results/scale/2.1.0/TestScale_Listeners/cpu-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..35af944b175960c1214c5bb64b0e319d45f0f3ec GIT binary patch literal 23239 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 D2Ga)( literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_Listeners/memory-oss.png b/tests/results/scale/2.1.0/TestScale_Listeners/memory-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..9a21bd617a86181f0385ad367b004d2293ae7e20 GIT binary patch literal 23437 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 T`-`2z-;vA@(Tt0z&fokFY0EJY literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_Listeners/memory-plus.png b/tests/results/scale/2.1.0/TestScale_Listeners/memory-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..1b6698664e740d34a1b87c551f5e46205d813e03 GIT binary patch literal 23415 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_Listeners/ngf-oss.log b/tests/results/scale/2.1.0/TestScale_Listeners/ngf-oss.log new file mode 100644 index 0000000000..8504b5af91 --- /dev/null +++ b/tests/results/scale/2.1.0/TestScale_Listeners/ngf-oss.log @@ -0,0 +1,22 @@ +{"level":"debug","ts":"2025-08-12T18:15:08Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:15:57Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:15:58Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:03Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:04Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:04Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:05Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:06Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"error","ts":"2025-08-12T18:16:06Z","logger":"statusUpdater","msg":"Failed to update status","namespace":"scale","name":"gateway","kind":"","error":"timed out waiting for the condition","stacktrace":"github.com/nginx/nginx-gateway-fabric/v2/internal/controller/status.(*Updater).writeStatuses\n\t/home/runner/work/nginx-gateway-fabric/nginx-gateway-fabric/internal/controller/status/updater.go:112\ngithub.amrom.workers.dev/nginx/nginx-gateway-fabric/v2/internal/controller/status.(*Updater).Update\n\t/home/runner/work/nginx-gateway-fabric/nginx-gateway-fabric/internal/controller/status/updater.go:83\ngithub.amrom.workers.dev/nginx/nginx-gateway-fabric/v2/internal/controller/status.(*LeaderAwareGroupUpdater).UpdateGroup\n\t/home/runner/work/nginx-gateway-fabric/nginx-gateway-fabric/internal/controller/status/leader_aware_group_updater.go:54\ngithub.amrom.workers.dev/nginx/nginx-gateway-fabric/v2/internal/controller.(*eventHandlerImpl).updateStatuses\n\t/home/runner/work/nginx-gateway-fabric/nginx-gateway-fabric/internal/controller/handler.go:373\ngithub.amrom.workers.dev/nginx/nginx-gateway-fabric/v2/internal/controller.(*eventHandlerImpl).waitForStatusUpdates\n\t/home/runner/work/nginx-gateway-fabric/nginx-gateway-fabric/internal/controller/handler.go:273"} +{"level":"debug","ts":"2025-08-12T18:16:07Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:15Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:16Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:18Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:18Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:19Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:21Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:32Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:33Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:34Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:39Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:41Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:16:43Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} diff --git a/tests/results/scale/2.1.0/TestScale_Listeners/ngf-plus.log b/tests/results/scale/2.1.0/TestScale_Listeners/ngf-plus.log new file mode 100644 index 0000000000..1cb1e2d00d --- /dev/null +++ b/tests/results/scale/2.1.0/TestScale_Listeners/ngf-plus.log @@ -0,0 +1,11 @@ +{"level":"debug","ts":"2025-08-12T18:23:14Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:23:16Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:23:19Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:23:22Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:23:28Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:23:28Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:23:29Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:23:39Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:23:40Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:23:40Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-08-12T18:23:41Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} diff --git a/tests/results/scale/2.1.0/TestScale_Listeners/nginx-plus.log b/tests/results/scale/2.1.0/TestScale_Listeners/nginx-plus.log new file mode 100644 index 0000000000..a94dd0d21c --- /dev/null +++ b/tests/results/scale/2.1.0/TestScale_Listeners/nginx-plus.log @@ -0,0 +1,172 @@ +2025/08/12 18:23:05 [error] 125#125: *47 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 1.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-1_80/", host: "1.example.com" +2025/08/12 18:23:06 [error] 126#126: *48 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 1.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-1_80/", host: "1.example.com" +2025/08/12 18:23:06 [error] 128#128: *49 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 1.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-1_80/", host: "1.example.com" +2025/08/12 18:23:06 [error] 129#129: *50 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 1.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-1_80/", host: "1.example.com" +2025/08/12 18:23:06 [error] 144#144: *62 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 2.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-2_80/", host: "2.example.com" +2025/08/12 18:23:06 [error] 145#145: *63 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 2.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-2_80/", host: "2.example.com" +2025/08/12 18:23:07 [error] 147#147: *64 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 2.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-2_80/", host: "2.example.com" +2025/08/12 18:23:07 [error] 148#148: *65 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 2.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-2_80/", host: "2.example.com" +2025/08/12 18:23:07 [error] 162#162: *79 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 3.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-3_80/", host: "3.example.com" +2025/08/12 18:23:07 [error] 163#163: *80 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 3.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-3_80/", host: "3.example.com" +2025/08/12 18:23:07 [error] 165#165: *81 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 3.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-3_80/", host: "3.example.com" +2025/08/12 18:23:08 [error] 166#166: *82 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 3.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-3_80/", host: "3.example.com" +2025/08/12 18:23:08 [error] 181#181: *96 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 4.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-4_80/", host: "4.example.com" +2025/08/12 18:23:08 [error] 180#180: *97 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 4.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-4_80/", host: "4.example.com" +2025/08/12 18:23:08 [error] 183#183: *98 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 4.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-4_80/", host: "4.example.com" +2025/08/12 18:23:08 [error] 184#184: *99 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 4.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-4_80/", host: "4.example.com" +2025/08/12 18:23:09 [error] 198#198: *114 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 5.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-5_80/", host: "5.example.com" +2025/08/12 18:23:09 [error] 199#199: *115 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 5.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-5_80/", host: "5.example.com" +2025/08/12 18:23:09 [error] 201#201: *116 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 5.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-5_80/", host: "5.example.com" +2025/08/12 18:23:09 [error] 202#202: *117 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 5.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-5_80/", host: "5.example.com" +2025/08/12 18:23:10 [error] 216#216: *133 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 6.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-6_80/", host: "6.example.com" +2025/08/12 18:23:10 [error] 217#217: *134 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 6.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-6_80/", host: "6.example.com" +2025/08/12 18:23:10 [error] 219#219: *135 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 6.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-6_80/", host: "6.example.com" +2025/08/12 18:23:10 [error] 220#220: *136 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 6.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-6_80/", host: "6.example.com" +2025/08/12 18:23:11 [error] 235#235: *154 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 7.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-7_80/", host: "7.example.com" +2025/08/12 18:23:11 [error] 236#236: *155 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 7.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-7_80/", host: "7.example.com" +2025/08/12 18:23:11 [error] 238#238: *156 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 7.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-7_80/", host: "7.example.com" +2025/08/12 18:23:11 [error] 239#239: *157 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 7.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-7_80/", host: "7.example.com" +2025/08/12 18:23:11 [error] 240#240: *158 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 7.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-7_80/", host: "7.example.com" +2025/08/12 18:23:12 [error] 253#253: *176 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 8.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-8_80/", host: "8.example.com" +2025/08/12 18:23:12 [error] 254#254: *177 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 8.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-8_80/", host: "8.example.com" +2025/08/12 18:23:12 [error] 256#256: *178 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 8.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-8_80/", host: "8.example.com" +2025/08/12 18:23:12 [error] 257#257: *179 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 8.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-8_80/", host: "8.example.com" +2025/08/12 18:23:12 [error] 258#258: *180 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 8.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-8_80/", host: "8.example.com" +2025/08/12 18:23:13 [error] 271#271: *199 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 9.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-9_80/", host: "9.example.com" +2025/08/12 18:23:13 [error] 272#272: *200 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 9.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-9_80/", host: "9.example.com" +2025/08/12 18:23:13 [error] 274#274: *201 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 9.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-9_80/", host: "9.example.com" +2025/08/12 18:23:13 [error] 275#275: *202 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 9.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-9_80/", host: "9.example.com" +2025/08/12 18:23:13 [error] 276#276: *203 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 9.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-9_80/", host: "9.example.com" +2025/08/12 18:23:14 [error] 289#289: *214 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 10.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-10_80/", host: "10.example.com" +2025/08/12 18:23:14 [error] 290#290: *215 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 10.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-10_80/", host: "10.example.com" +2025/08/12 18:23:14 [error] 292#292: *216 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 10.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-10_80/", host: "10.example.com" +2025/08/12 18:23:14 [error] 293#293: *217 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 10.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-10_80/", host: "10.example.com" +2025/08/12 18:23:15 [error] 307#307: *238 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 11.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-11_80/", host: "11.example.com" +2025/08/12 18:23:15 [error] 308#308: *239 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 11.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-11_80/", host: "11.example.com" +2025/08/12 18:23:15 [error] 310#310: *240 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 11.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-11_80/", host: "11.example.com" +2025/08/12 18:23:15 [error] 311#311: *241 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 11.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-11_80/", host: "11.example.com" +2025/08/12 18:23:16 [error] 326#326: *264 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 12.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-12_80/", host: "12.example.com" +2025/08/12 18:23:16 [error] 327#327: *265 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 12.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-12_80/", host: "12.example.com" +2025/08/12 18:23:16 [error] 329#329: *266 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 12.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-12_80/", host: "12.example.com" +2025/08/12 18:23:16 [error] 330#330: *267 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 12.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-12_80/", host: "12.example.com" +2025/08/12 18:23:17 [error] 344#344: *290 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 13.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-13_80/", host: "13.example.com" +2025/08/12 18:23:17 [error] 345#345: *291 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 13.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-13_80/", host: "13.example.com" +2025/08/12 18:23:17 [error] 347#347: *293 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 13.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-13_80/", host: "13.example.com" +2025/08/12 18:23:17 [error] 348#348: *294 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 13.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-13_80/", host: "13.example.com" +2025/08/12 18:23:17 [error] 362#362: *318 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 14.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-14_80/", host: "14.example.com" +2025/08/12 18:23:18 [error] 363#363: *319 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 14.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-14_80/", host: "14.example.com" +2025/08/12 18:23:18 [error] 365#365: *320 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 14.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-14_80/", host: "14.example.com" +2025/08/12 18:23:18 [error] 366#366: *321 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 14.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-14_80/", host: "14.example.com" +2025/08/12 18:23:18 [error] 367#367: *322 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 14.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-14_80/", host: "14.example.com" +2025/08/12 18:23:19 [error] 380#380: *347 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 15.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-15_80/", host: "15.example.com" +2025/08/12 18:23:19 [error] 381#381: *348 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 15.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-15_80/", host: "15.example.com" +2025/08/12 18:23:19 [error] 383#383: *349 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 15.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-15_80/", host: "15.example.com" +2025/08/12 18:23:19 [error] 384#384: *350 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 15.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-15_80/", host: "15.example.com" +2025/08/12 18:23:19 [error] 398#398: *376 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 16.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-16_80/", host: "16.example.com" +2025/08/12 18:23:20 [error] 399#399: *377 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 16.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-16_80/", host: "16.example.com" +2025/08/12 18:23:20 [error] 401#401: *378 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 16.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-16_80/", host: "16.example.com" +2025/08/12 18:23:20 [error] 402#402: *379 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 16.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-16_80/", host: "16.example.com" +2025/08/12 18:23:20 [error] 416#416: *407 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 17.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-17_80/", host: "17.example.com" +2025/08/12 18:23:21 [error] 417#417: *408 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 17.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-17_80/", host: "17.example.com" +2025/08/12 18:23:21 [error] 419#419: *409 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 17.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-17_80/", host: "17.example.com" +2025/08/12 18:23:21 [error] 420#420: *410 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 17.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-17_80/", host: "17.example.com" +2025/08/12 18:23:21 [error] 421#421: *411 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 17.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-17_80/", host: "17.example.com" +2025/08/12 18:23:22 [error] 435#435: *439 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 18.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-18_80/", host: "18.example.com" +2025/08/12 18:23:22 [error] 436#436: *440 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 18.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-18_80/", host: "18.example.com" +2025/08/12 18:23:22 [error] 438#438: *441 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 18.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-18_80/", host: "18.example.com" +2025/08/12 18:23:22 [error] 439#439: *442 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 18.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-18_80/", host: "18.example.com" +2025/08/12 18:23:23 [error] 453#453: *471 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 19.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-19_80/", host: "19.example.com" +2025/08/12 18:23:23 [error] 454#454: *472 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 19.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-19_80/", host: "19.example.com" +2025/08/12 18:23:23 [error] 456#456: *473 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 19.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-19_80/", host: "19.example.com" +2025/08/12 18:23:23 [error] 457#457: *474 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 19.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-19_80/", host: "19.example.com" +2025/08/12 18:23:23 [error] 458#458: *475 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 19.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-19_80/", host: "19.example.com" +2025/08/12 18:23:24 [error] 471#471: *506 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 20.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-20_80/", host: "20.example.com" +2025/08/12 18:23:24 [error] 472#472: *507 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 20.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-20_80/", host: "20.example.com" +2025/08/12 18:23:24 [error] 474#474: *508 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 20.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-20_80/", host: "20.example.com" +2025/08/12 18:23:24 [error] 475#475: *509 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 20.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-20_80/", host: "20.example.com" +2025/08/12 18:23:24 [error] 476#476: *510 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 20.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-20_80/", host: "20.example.com" +2025/08/12 18:23:26 [error] 508#508: *571 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 22.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-22_80/", host: "22.example.com" +2025/08/12 18:23:27 [error] 526#526: *603 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 23.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-23_80/", host: "23.example.com" +2025/08/12 18:23:32 [error] 635#635: *810 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 29.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-29_80/", host: "29.example.com" +2025/08/12 18:23:33 [error] 654#654: *851 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 30.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-30_80/", host: "30.example.com" +2025/08/12 18:23:34 [error] 671#671: *891 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 31.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-31_80/", host: "31.example.com" +2025/08/12 18:23:35 [error] 689#689: *932 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 32.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-32_80/", host: "32.example.com" +2025/08/12 18:23:36 [error] 708#708: *967 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 33.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-33_80/", host: "33.example.com" +2025/08/12 18:23:36 [error] 709#709: *980 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 33.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-33_80/", host: "33.example.com" +2025/08/12 18:23:37 [error] 726#726: *1027 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 34.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-34_80/", host: "34.example.com" +2025/08/12 18:23:38 [error] 727#727: *1039 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 34.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-34_80/", host: "34.example.com" +2025/08/12 18:23:39 [error] 745#745: *1072 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 35.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-35_80/", host: "35.example.com" +2025/08/12 18:23:39 [error] 763#763: *1118 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 36.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-36_80/", host: "36.example.com" +2025/08/12 18:23:40 [error] 781#781: *1157 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 37.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-37_80/", host: "37.example.com" +2025/08/12 18:23:40 [error] 782#782: *1171 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 37.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-37_80/", host: "37.example.com" +2025/08/12 18:23:42 [error] 800#800: *1212 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 38.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-38_80/", host: "38.example.com" +2025/08/12 18:23:43 [error] 818#818: *1256 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 39.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-39_80/", host: "39.example.com" +2025/08/12 18:23:43 [error] 819#819: *1270 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 39.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-39_80/", host: "39.example.com" +2025/08/12 18:23:45 [error] 836#836: *1304 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 40.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-40_80/", host: "40.example.com" +2025/08/12 18:23:45 [error] 837#837: *1318 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 40.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-40_80/", host: "40.example.com" +2025/08/12 18:23:47 [error] 855#855: *1357 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 41.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-41_80/", host: "41.example.com" +2025/08/12 18:23:47 [error] 856#856: *1372 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 41.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-41_80/", host: "41.example.com" +2025/08/12 18:23:48 [error] 873#873: *1411 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 42.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-42_80/", host: "42.example.com" +2025/08/12 18:23:48 [error] 874#874: *1426 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 42.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-42_80/", host: "42.example.com" +2025/08/12 18:23:50 [error] 891#891: *1465 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 43.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-43_80/", host: "43.example.com" +2025/08/12 18:23:50 [error] 892#892: *1479 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 43.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-43_80/", host: "43.example.com" +2025/08/12 18:23:51 [error] 910#910: *1515 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 44.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-44_80/", host: "44.example.com" +2025/08/12 18:23:51 [error] 911#911: *1528 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 44.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-44_80/", host: "44.example.com" +2025/08/12 18:23:53 [error] 928#928: *1574 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 45.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-45_80/", host: "45.example.com" +2025/08/12 18:23:53 [error] 929#929: *1586 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 45.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-45_80/", host: "45.example.com" +2025/08/12 18:23:54 [error] 946#946: *1625 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 46.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-46_80/", host: "46.example.com" +2025/08/12 18:23:55 [error] 947#947: *1639 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 46.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-46_80/", host: "46.example.com" +2025/08/12 18:23:56 [error] 966#966: *1680 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 47.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-47_80/", host: "47.example.com" +2025/08/12 18:23:56 [error] 965#965: *1695 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 47.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-47_80/", host: "47.example.com" +2025/08/12 18:23:58 [error] 983#983: *1738 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 48.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-48_80/", host: "48.example.com" +2025/08/12 18:23:58 [error] 984#984: *1751 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 48.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-48_80/", host: "48.example.com" +2025/08/12 18:23:58 [error] 986#986: *1764 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 48.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-48_80/", host: "48.example.com" +2025/08/12 18:24:00 [error] 1001#1001: *1798 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 49.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-49_80/", host: "49.example.com" +2025/08/12 18:24:00 [error] 1002#1002: *1812 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 49.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-49_80/", host: "49.example.com" +2025/08/12 18:24:00 [error] 1004#1004: *1824 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 49.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-49_80/", host: "49.example.com" +2025/08/12 18:24:02 [error] 1020#1020: *1861 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 50.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-50_80/", host: "50.example.com" +2025/08/12 18:24:02 [error] 1021#1021: *1875 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 50.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-50_80/", host: "50.example.com" +2025/08/12 18:24:02 [error] 1023#1023: *1889 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 50.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-50_80/", host: "50.example.com" +2025/08/12 18:24:04 [error] 1039#1039: *1921 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 51.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-51_80/", host: "51.example.com" +2025/08/12 18:24:04 [error] 1040#1040: *1934 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 51.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-51_80/", host: "51.example.com" +2025/08/12 18:24:04 [error] 1042#1042: *1946 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 51.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-51_80/", host: "51.example.com" +2025/08/12 18:24:05 [error] 1057#1057: *1991 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 52.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-52_80/", host: "52.example.com" +2025/08/12 18:24:05 [error] 1058#1058: *2003 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 52.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-52_80/", host: "52.example.com" +2025/08/12 18:24:06 [error] 1060#1060: *2014 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 52.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-52_80/", host: "52.example.com" +2025/08/12 18:24:07 [error] 1076#1076: *2048 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 53.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-53_80/", host: "53.example.com" +2025/08/12 18:24:07 [error] 1077#1077: *2060 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 53.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-53_80/", host: "53.example.com" +2025/08/12 18:24:07 [error] 1079#1079: *2071 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 53.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-53_80/", host: "53.example.com" +2025/08/12 18:24:08 [error] 1080#1080: *2082 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 53.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-53_80/", host: "53.example.com" +2025/08/12 18:24:09 [error] 1094#1094: *2109 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 54.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-54_80/", host: "54.example.com" +2025/08/12 18:24:09 [error] 1095#1095: *2122 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 54.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-54_80/", host: "54.example.com" +2025/08/12 18:24:09 [error] 1097#1097: *2135 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 54.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-54_80/", host: "54.example.com" +2025/08/12 18:24:11 [error] 1113#1113: *2182 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/08/12 18:24:11 [error] 1114#1114: *2194 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/08/12 18:24:11 [error] 1116#1116: *2210 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/08/12 18:24:13 [error] 1131#1131: *2251 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 56.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-56_80/", host: "56.example.com" +2025/08/12 18:24:13 [error] 1132#1132: *2266 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 56.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-56_80/", host: "56.example.com" +2025/08/12 18:24:13 [error] 1134#1134: *2281 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 56.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-56_80/", host: "56.example.com" +2025/08/12 18:24:15 [error] 1149#1149: *2316 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 57.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-57_80/", host: "57.example.com" +2025/08/12 18:24:15 [error] 1150#1150: *2330 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 57.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-57_80/", host: "57.example.com" +2025/08/12 18:24:16 [error] 1152#1152: *2344 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 57.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-57_80/", host: "57.example.com" +2025/08/12 18:24:18 [error] 1168#1168: *2385 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 58.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-58_80/", host: "58.example.com" +2025/08/12 18:24:18 [error] 1169#1169: *2398 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 58.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-58_80/", host: "58.example.com" +2025/08/12 18:24:18 [error] 1171#1171: *2412 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 58.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-58_80/", host: "58.example.com" +2025/08/12 18:24:20 [error] 1186#1186: *2454 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/08/12 18:24:20 [error] 1187#1187: *2468 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/08/12 18:24:20 [error] 1189#1189: *2480 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/08/12 18:24:21 [error] 1205#1205: *2525 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 60.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-60_80/", host: "60.example.com" +2025/08/12 18:24:21 [error] 1206#1206: *2539 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 60.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-60_80/", host: "60.example.com" +2025/08/12 18:24:22 [error] 1208#1208: *2553 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 60.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-60_80/", host: "60.example.com" +2025/08/12 18:24:24 [error] 1223#1223: *2595 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 61.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-61_80/", host: "61.example.com" +2025/08/12 18:24:24 [error] 1224#1224: *2605 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 61.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-61_80/", host: "61.example.com" +2025/08/12 18:24:24 [error] 1226#1226: *2616 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 61.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-61_80/", host: "61.example.com" +2025/08/12 18:24:24 [error] 1227#1227: *2630 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 61.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-61_80/", host: "61.example.com" +2025/08/12 18:24:26 [error] 1242#1242: *2664 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/08/12 18:24:26 [error] 1243#1243: *2677 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/08/12 18:24:26 [error] 1245#1245: *2692 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/08/12 18:24:26 [error] 1246#1246: *2704 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/08/12 18:24:28 [error] 1260#1260: *2743 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 63.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-63_80/", host: "63.example.com" +2025/08/12 18:24:28 [error] 1261#1261: *2757 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 63.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-63_80/", host: "63.example.com" +2025/08/12 18:24:28 [error] 1263#1263: *2771 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 63.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-63_80/", host: "63.example.com" +2025/08/12 18:24:28 [error] 1264#1264: *2785 no live upstreams while connecting to upstream, client: 34.168.158.112, server: 63.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-63_80/", host: "63.example.com" diff --git a/tests/results/scale/2.1.0/TestScale_Listeners/ttr-oss.png b/tests/results/scale/2.1.0/TestScale_Listeners/ttr-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..9d6a6410fa3f19ffbef6728f98e5cfa072b53a5e GIT binary patch literal 24197 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_Listeners/ttr-plus.png b/tests/results/scale/2.1.0/TestScale_Listeners/ttr-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..1625556986626e966f23dbbd5cff7fb83a257c9a GIT binary patch literal 35927 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_UpstreamServers/cpu-plus.png b/tests/results/scale/2.1.0/TestScale_UpstreamServers/cpu-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..35c15b1654034808416291ef82bcd5081351daeb GIT binary patch literal 21506 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_UpstreamServers/memory-oss.png b/tests/results/scale/2.1.0/TestScale_UpstreamServers/memory-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..f1c217c35bcb18759a3b72db0a54cdfd45b1dad9 GIT binary patch literal 19837 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

1ZzEZ! z9m2%L-W(XmQzT$PIG$rkzN`9QPwuh+d9n*$cti2l@?NQW2^xa1q7t zoBT@d>pL<|@VyVcPTlMD&YEvo)6&rmvy+UqH*p(Le+mGK58rwv5!5ppCUpiUGgN1$ zo|}Ct3UGewz>><#%lF6Zx?tPa60WV&m>A`}jA_YujG#u8)FO*O+8y%Pi8_1op_$bt=Ny?`}gmxAgTR3b9Rt?HeBacF@Cpce72AasN|W*_X4yk|`t~>1CfB8m zSQ1vPzGG*|<{OUZ*a3>F7wOfR_cIBY_zL{cHG7#G{h|H>%ARQ;mfFMJ9UvhtmN>vp zkT!!ggOV1KN2msA>glb&kKzp#LchH?qPsn3-DPpozi+gs3d@WV62300hyFwie0OwnX1bZ@$)x57?4#qG@O1OCd2~(64Z^)z;9ytieiVy z#|yk1x_{K-dzE=yU*91YnBm9tP}K!VT40H=FP!jP*;uxY51dkI-L*SCvK_v88bzMd zK@6)2*9uvkGL)#YpCQXdw7mEr{pX9V%}vvTEl`;%DJeP18o8}D*%s%jgq&5KM9I(y z*+0-iaL(}$1T-IIYgI5)`&pDT^XUQRsR;Z$DSnEeqemE!oZt)pooW@0mbr2J_H97b zb8|*rsy3Fpq#X?d2;~bHMDbBg=?f6$>gSg0sWcuZHCMm8 zt+>i} zzrUXc{{;gvOQ7b8hXjeC<0~)xBD`@Kpy{M+3l#`IgLZv-?()*rlxk9-`j$wCtR{jT4WCr==OF|B7$l{LVRxtM-WkccLayZtT)w1OjL5k)5pDW%Er);D`FFfl zbYP!JZZfiUHYCI>WB(*XOHNXbAOaKQN(Ms@`~is5AlrUQT3y6>JF~vs9mu0#spWIU z4Dtdvk2rXENg`gJ&}sr}x4%BV;w@)$0|qC`;VLYMje2wofG@OMC?p9UfM>A;mItD6 z#h7i|N>PKJrlwgK7s4(As)ZO>TU!e-4C3GEXNU*?M}BsV@FE2i!|-dB9e?MIXp>-` zpQVMK)aT^jf=~Co&i3JWK+_ByL`@JD!?!&K-x=?ItO76WuXIqe&H5%~^7TA)LlTUzy6xgWc zj3q1Mx*N^&* zpn`zac_l>`17$OVzz~c)~o#< z)Lwyq$eJITLmKD5EAkJB(Dwn_jR_h#s3m)yRz0P;LhbkSMI66_InWq@gSA>CzZ;s_ z4M)@1c#lOxUgh30S#y2@7>w!+5at)}M|X3+W+^l#L06LV(ON|XE*2J+x|&*fJqQzJ zGL#RFoEC4sl8zX8SG;z@pCDJ%bC^^2g$v4NNbcA8_FRg%OVJ9{KJ+k@U;J3+y!Dd- zI1va(Cyf{J%P1QT=HtVtL?&Ek|0e~T;*O~uu+9bE=V>gM$>t*oM=?=lw+?NovgMJCP z`m|%I0C94Kk)^~e`;VHcUukD0)u> z`iKF~Ll2X(@)mUAfXJn&;j|jzETmm#(06MIcQfWgPC{jw{$#&84}g`_fIKaxzXbs& z3M@YkHnu4xBRhLCk7b-*(HUqXR?l%7?{wZ{(sxJ8u5vqMTlVL{5bjhiK0ZDMiSQ(Z zlL21<^lw5!0OyvO@MwQD(B%!5_Uv7GLohuULUGtg4@&cPO`a-V9v(<-Ka=h3?OB2~XnA2yGK@2wzi;OjN0ev^v_3fn-7ti)w} z@)KxN0Jgrwq>B<@rgBaIK2<&BQQ&-fF%Dk(3!w*1Jcg8p?`Bdg&cNyFMWNOkVc->z zE`SaiNTI+o{TCT)| z^l9vGEClXPx#pARBRxwH=Rh##_=ub@2)qTg^w!UL8cJ>=`LvEC(Kp@efkL< znlsBV4kBdQ*_MisXRm(I#DO!Qp`;WJ!uPtgp&OWaH1)2BV$$-uUDBZa!#M{Gj=$f_ z7+A+YNL_4-2J?g5Nt9hnbMBBtmQU;2aAl z+QvdCLTr~9X*6rW3Ub*%d%TwArr``PLRziI)&6|j{U!ofm5%@`nlHC19<6}0^o6SaRw4$B6cmkMXl269<1cyGwLiZE(rXVFtA=@4Lqo+hLiOVj+WLH`>iO)1 zh%K z#4r-|+txQXpEQF0`P@8T-B!86FT0jvP_C}g6XmEdr&JjJ!*(^2V=Vk7`USzDY;C*p1gUm48E)Pcn~nu;D4?N3gwYjg&l4p_#{` zX-P>*Dw%R0APiRUQq4F~0qWG1atWAR&j3OSHKtxew_e&MEDL`W6iCIO6Wt7O5o{nU zubbn;c7t+faWBLeZBw*NJR+d^gLj5Fe(XP1HjXUb8K6)U2gvsVj0(hbC>6(1IA^TB za8>)kdiXc?D?(OzUw|p+C-@rOze(vl^%_ZlzxZDTuRGe{00qFH&V{EuFjK|lgrP}#>T^wmyyx>WaxjFOh*Zl zQq||ue{b~y`!u9mgV|>Isc&Ea-U{XIr)#=1Q(bdr|1T<3E48Lj*%D1>e>Xoo&hzuO zKWNpYRcahUV`u-(vI3D6RB(&bLw_WKWq}Q?-D+h<*wB)u1bun)9D=Q1B3KAW^_EW^ z_u2hB6DIJW#R0%f5Hx-Qn7>@qur)7|IQt?$!o#8bF?~oZ)3m(&EL3jUD5`doh3r3u ztvE&SJ7grNrUfSR?>WioW1#pG5mcCI>#%d1g~1*&oqyZ+m?^&Hs2x{);;JZ2&CeM; zNpOcw3g1fQrZ~WH5L%(o`vD3g;8ex{2><^58+Zp*{#cc^r`)cOoox`;8ak`vw8$CX zLH=}9tqtL^0Q!i%A!3lv2hs$Zg+V5onwkpM4c2z`>dG&nUH*kSY>VJ{p6{~&Xny#g zo}WoZzV97Ln?~%7iv#bulQw~{ z@GD68@zC&WK9?iK(lBecERuEF^CueVWf656)TIirT>XRIeN?Xgf#wmUlVa@#zYi&# ztMc3Kb^U`Df)p3kg1GZUODqfBML-V5D7Hi=sU(MS8e&`)Lx#&FL^ zq|xdgLqD`2I2DE|@?)b=iNu&~;|YILS_$&^mgj#DN}Weceny;_8aOgM{aV)tY^;F- zAfA!gzw4*A@LB(Q$>#bz;e);uB>eHS@SE`1Iw!*vi^s$)U-d%yk}i5tgY^)gu9c|{{3sfA>P~nUc5_|?-ek6CD?frT_%h^&s%hEa-u6&e~7eRyu5gPw1jL& zegi5&g$0LXw6y5z4fE8nPee8Pm0S6uO$dx-?W|X z`t_bZPQs4+REC~>2ONANZKk=(^IqC=)>m@r^36)W;~xYiN{4XhpJ>&SHPEl|y*p`E z#0h%(#PI#25Fc_`&a6A?8;>L|J)BxUYU$XoCw+uhSvNX5cks7u{Ag^#ZL)OBrDJ`< z@`Zb~@H5+}o^n`&XWfjtkGueG10@0OIf`}(_?r{G^3k}|Cq6C5b!e!i;JAPamWmU(FHKqUKoJa37HgMzmDZX-VP8M0B61RWIgn`rKhJu zp@lE86TXPx*C5#gZhuFoWH+8HsKqNrZ{ncE1>FDIK$A7}^a}-J`91@}4vI{z>Nf;q z>sOac_9Z1`i3*Ng1yCsSkD1;MfS`lFPuC!FEaOs;sxhi5EA|tQ?Ec}G2Zx=)Z;pd5 zC@45#qllBEk8J}1Po}DLlii%0Q`^s5oq2`YR1~x3&`^hMVt)7mE4FRUDa5#sc;s46 zc<T=WhkuP5Gatx#1VK6h|7!yH%kcU0!0o-_5S5ECzLuv!^=lk#a7GFKd0pyd zdN($1y-5p7pW@=Lxo~y26+Az0{t_POR+tpvA5lT0aw9*mj&`XI;4a1?8 zhA)Nqu%K3_r?01%l$e+pA0Hnc{@aER>XrPjrX?QB#^_sy&lsvLB*sVlyAl!U9|a;W zP)jcl^)}oP=sf8vkJ@ONIEuf5Y`Zs>KmGM=8pliWtQZ#7TV@s7f(`@MBZ*V(S;4(1 zn%;dKSN}NMC2OMUftA)yWrArBguPtJMjRUM$Br6dZog0MGp>T0z@Rqp4-VKbY97B% zCL*1D|Dnv177F#~5jOhw$Im||M(2{wYPim?e0|rz-+$X{{U7@X4o=(SeZ#0iaBi2F zYCSJowC6IG)wqrySKb54r%zVBXMqWoDG;61oQ8mw{ z!4sJ(3?&X;iLepyE$3Y-8)Z#0FaGwP2AP;QhaV?8POTxUUr@++tnYl8<0KlDA6bTf z?O*ZS+$TEU%uARU%zdY)6aAG}!kckDz7!~(pIsjx?;GajkM}0n_Al1-L?H*@(p3!R z^v+m^#k(1P+BA`N&;MQKVELsB%`tIzYw}uz+(-cp zZ2p}$*yvOh?H6J1BG+e;wbp78LR0s+=GK(g|1WF($cC_3EdBE@N?vN)L)X$Ce^~w$ z8Uz0?yH|xmZcr%uam_KFFZTIw#h#{)zXEvZyP3Z z&tFW8jTVIjO5wnBHU04)8B%agViLAB<1&K;I1%YXN$YR3iNub}Oai`H8$vU6*)NF; zod%d1YZjqpE&L3BW%-gmUYVy-;>>aJD!J=dDGd*-g#*%Dk#)oGBUcQRTa&1u;D zG?*T_G7|=oo%!SUx&u4QhirRln0h)kx@l|QSL2!)ta2R(^S{RYgs|8r5PG&LDL2H{I7qS?#|xF7HRK%4Dl+T=rPw4XOPF)3Z$#G|vJHOGv$ zrK0lsqt>PMq?N*aBgykuwNBAHeds3{p0Nr_sGrD3M*oQ863aseu3auQ$0vk6QCV{T zzA3F<)=xc8t!OYSGZU1s^N<6{#BNi7)qERG+n8Nv1_S2-{|AH-;A8mGqk(||_%% z3k!*nB;UI{{W+oO(JzNU;zH`OH=W;)_VzL~3qr0RhepwwP06_IpEyq5G2YRiTY|UXOWLp<5}OWxDtH=}Yk}b8bar+Y1fn3>u>(2XEuNQ()oe-? zHQZ+E?_9L(%NWJZUB*_QJ^p~m>7TGcJ+}f#{Bv>`>FA6={;6GI1$tzPPB&jyDQ)Qi z-a@@U?8#4gjF)|Ppt=4L$=EDg)|A8c#+k?Nw|LfOxs&OOkv^aPM>FRh4|TrA@tHxxZ8_^p4|CPg`yt>++lmRY{>le~k@`@viHozKad7bLOn?eYR?^og#(J zKM8yL0<#wEO_}IT{qi^E$ZpTEa{Eu^rpH#Ne?BP2gDNF*(+P*a3!RAZyP#rCf$={t zP3%}2>xsKXeR=F2k!&Q+@9&odaPn(4=Ha^uUdg~BNL!Tbaa8_K|G@Z1a)oD3`mwBy z8#esiWvlAZU+)(d+V)(+_ntC07k%vMISNf12!45Zq>7#Qo0?`HOGWMFaGt8qwRL-Y zmMq;(?H1f!z!lJ|gASURi&$Q*qQUm^@&3l>n3$LwH-1AU_fhRp8=Dj^2cOyUH^f9p zOfh2n#Qf1&d5B8|&tJH2|Nfh)I1qQ&;8=plM1!+MQ&(44D=sxTdH<8^_=nPm%tfvq z9*}*Ka2&V9*r-}sTgM&x78^^u|4`83{cI);zdvYmzh?er!M}$?mE+3YB*tAzuyQq- z#ikk=nULK;-J>in;SlLBN=_(p6b<+Yn+=m;q^){yxEH-9hdRJP1JfQ;u?5$kbagvI zpl81x!Ac`aPrBcj0zE`WAF_aaAWst$6U*)VGxGBx-q4QJ_;B7<*udPQhZ(>3q8>NRw!Q!KCKm!RHGYQ-hp zyN4cBKW7q%JkfVU-4Cv1nbAA0nDp$veJH2!g(f@(} z>g;sZN`H%mEmdmvQ-IGg#OcWC%joJ%&5UE z#^Vk4x~s3;xN!sJ!1D6)@#!6{8TgNjC~rT_PM=>4w0KB`$K|eDw{B)Ax`_7l%+aP4 z3fjoM-Q5yZwCffyk*!EKhqo}^_*3&ec_J6=CN=CdwaI&p^f!srI6{);y=GgJ)Ji?| z=PgIXe0Ef=p#eqK-3}W#wK9)lTYQ^N7+dLuMc`>LE$V*IpaTd~Lqh|O!l;S@?E+d` zH*VdM9^DbvXZwVS0brOCT{Cy1J@W@1X6r8Sd_=Jg0%=e;EasZeI)2ziksk!XlVt?TKC zwj1M|$T|it6F3_PH&vV5*6A7?TEGVbvGMVEYH#c6H1l3|Y?+}$VdUc6bcLccSMrwPoIlao`5%`@+6asdC}Fhk;I>|aXY%%l1$ee;EInnSHAL#VT!26uupo4v1g9 z;!ba)yI@`(A~wS_e$Z7RI$L6KGpG~5-};+4s+L9H(`>#zTiVBlmuSCg@Q0TUH2)kO z9rZU&`~0;{33M9ED%6d-b8)N$?C#j;XoGt;I!h`xxe`pg%Wjhhx*kZ}gD*2A!VR#U z(%ND%y)Q$9LCd5B%&#FYi!Yu6zJgf`a~qrZ+qc(GzrY~}?P|;6^m81w;u;$p&y}C? z{8=N$_}9QG^+iP#AU@kMj|1~Ah%$zrcIp#(X+7wt)9z>Vv^v9rJPuGxdjxi5AA22s$);ZHi}t3%l$2Ne4_<}4bPj@b zLflmlvB@&+Rb}NE<63mIw(rmfHjl|J?Gr&QE_5--z|LyxVPQz@fS_JXzrDF8h$$WB zKy5PAqvfN27<=<(2ZvUQ2NTrhzORw7;)e4>irp;T-A*Bq?!V|YIo;lvx>3f8GJi;8 z(d?T#Os(Wu+WM9WovR0&p!CBO#dc^ur6fi@zwk^_oJV`$j+3ojCp;uHLa^y8R z$2csg9J6v5CcvH6$4RjB=}MVIEqs zLn_+=w}M`d!E-Yw_XglRP1?^D`HrEO=QV9gwTTG^LS8jOTWZ8&_y)x0yOYd%wvgGTxJ8T63~Aa9ONIe< zaUclk)V+UdG(AusN~+a?s)CFV!F;v@=1vNE{joJiNP>98Y)d=+E=nK}y3fR<0J4yv zv~izeD8*nFt&-;$^-@R7@b29^V(1H2UU<>~rj6);g%8Esm;tNOc%PJ!F-RcBCMLK= z36c@B5r`hk)B-ZVIb>&RRcXFN$HG^7pjlX-sjR4|sG%|ZgTa)Uqhk`^TxsJgjS28; zvic*}itUk0__s%D2fs5UwS@`hug%Z3Nkicajv^k?7?=X9s;Ed#N!bPv0(S_9!!b9n zg?z;TV+No>3l{$Jc*J5ccs~xnBomX!t~!EF9_pxoZ-w1LdSo0Uk!qa05s;ejplB;s zY3@6DX=?ClVBgVpF6-)Q-I}JRnctPJj*N~*rm06)jG|k=94#VkZM?eU`c2@!U$A$M z6iU@5g&r)zn33l=Xc&wg=+9MFRV_DyGe0BGpof`0s;I2wu@VwB!S2@daG@idSOym7 z0B-!8oO)r_b|DjQ}E$Y^- zPV4VT9_=)Ffn*8r)vROsb7=Hzi4*gieWGpC$5S$_R8*sTXC{Y@!qK!#`r+z!C^^c> z$-U1(l@LRa%uw5OsE(mBg_iky9F*ArPd=aT;LwI=4vCd@d*vf`$qWL~zH(2U8EX2- z56Z{|1LyFHqLhbLqYG;u`#kKXB%;B6Y>_cG8vtTqgi-j|7>~Kr%`LgM$G<$smm{ZN(x<`kT%!yAjoYS0DLE>51`zp6Jo~S>u5rm)BtEB_7vDDoRYyzo2%-M_?Y5c3&&H0!o{m z98Bu&!FUtIiPttt-BrY4+-PBACKiJ8B+_GpiDKE%#hW030~-Zg+c~Xgg>?z}?Np0i$Q`3sOE7$U99RjS2%3oW zdH;UD(K<^=2MuBhS2|xvI=tg^IS2K-p_=__1@H`?lc&X`OP?L!Um0Ti5+;!@>V*84 d+_5i^Y~PZb8K!%v5#E!ucbDnTG$Z@qe*u0>SlR#p literal 0 HcmV?d00001 diff --git a/tests/results/scale/2.1.0/TestScale_UpstreamServers/ngf-oss.log b/tests/results/scale/2.1.0/TestScale_UpstreamServers/ngf-oss.log new file mode 100644 index 0000000000..877962793d --- /dev/null +++ b/tests/results/scale/2.1.0/TestScale_UpstreamServers/ngf-oss.log @@ -0,0 +1,4 @@ +{"level":"debug","ts":"2025-08-12T18:32:05Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gatewayclasses.gateway.networking.k8s.io \"nginx\": the object has been modified; please apply your changes to the latest version and try again","namespace":"","name":"nginx","kind":"GatewayClass"} +{"level":"debug","ts":"2025-08-12T18:32:40Z","logger":"eventLoop.eventHandler","msg":"failed to resolve endpoints, endpoints may not be ready","batchID":25,"error":"no endpoints found for Service scale/backend","service":{"name":"backend","namespace":"scale"}} +{"level":"debug","ts":"2025-08-12T18:32:40Z","logger":"eventLoop.eventHandler","msg":"failed to resolve endpoints, endpoints may not be ready","batchID":26,"error":"no valid endpoints found for Service scale/backend and port 80","service":{"name":"backend","namespace":"scale"}} +{"level":"debug","ts":"2025-08-12T18:32:41Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} diff --git a/tests/results/scale/2.1.0/TestScale_UpstreamServers/ngf-plus.log b/tests/results/scale/2.1.0/TestScale_UpstreamServers/ngf-plus.log new file mode 100644 index 0000000000..f052b05b90 --- /dev/null +++ b/tests/results/scale/2.1.0/TestScale_UpstreamServers/ngf-plus.log @@ -0,0 +1,3 @@ +{"level":"debug","ts":"2025-08-12T18:41:59Z","logger":"eventLoop.eventHandler","msg":"failed to resolve endpoints, endpoints may not be ready","batchID":24,"error":"no endpoints found for Service scale/backend","service":{"name":"backend","namespace":"scale"}} +{"level":"debug","ts":"2025-08-12T18:41:59Z","logger":"eventLoop.eventHandler","msg":"failed to resolve endpoints, endpoints may not be ready","batchID":25,"error":"no valid endpoints found for Service scale/backend and port 80","service":{"name":"backend","namespace":"scale"}} +{"level":"debug","ts":"2025-08-12T18:41:59Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} diff --git a/tests/results/zero-downtime-scale/2.1.0/2.1.0-oss.md b/tests/results/zero-downtime-scale/2.1.0/2.1.0-oss.md new file mode 100644 index 0000000000..df27ec6087 --- /dev/null +++ b/tests/results/zero-downtime-scale/2.1.0/2.1.0-oss.md @@ -0,0 +1,287 @@ +# Results + +## Test environment + +NGINX Plus: false + +NGINX Gateway Fabric: + +- Commit: 43424f7eafc27e3fed07cef693614a7f389a3359 +- Date: 2025-08-12T16:35:50Z +- Dirty: false + +GKE Cluster: + +- Node count: 12 +- k8s version: v1.33.2-gke.1240000 +- vCPUs per node: 16 +- RAM per node: 65851524Ki +- Max pods per node: 110 +- Zone: us-west1-b +- Instance Type: n2d-standard-16 + +## Summary: + +- Decreased latency in requests across all tests by an insignificant amount. + +## One NGINX Pod runs per node Test Results + +### Scale Up Gradually + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 1.177ms +Latencies [min, mean, 50, 90, 95, 99, max] 271.226µs, 1.208ms, 1.128ms, 1.442ms, 1.565ms, 2.119ms, 248.605ms +Bytes In [total, mean] 4832720, 161.09 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 99.99% +Status Codes [code:count] 0:2 200:29998 +Error Set: +Get "http://cafe.example.com/coffee": dial tcp 0.0.0.0:0->10.138.0.14:80: connect: network is unreachable +``` + +![gradual-scale-up-affinity-http-oss.png](gradual-scale-up-affinity-http-oss.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 1.136ms +Latencies [min, mean, 50, 90, 95, 99, max] 236.862µs, 1.285ms, 1.181ms, 1.479ms, 1.605ms, 2.314ms, 252.017ms +Bytes In [total, mean] 4652901, 155.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 0:1 200:29999 +Error Set: +Get "https://cafe.example.com/tea": dial tcp 0.0.0.0:0->10.138.0.14:443: connect: network is unreachable +``` + +![gradual-scale-up-affinity-https-oss.png](gradual-scale-up-affinity-https-oss.png) + +### Scale Down Gradually + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 48000, 100.00, 100.00 +Duration [total, attack, wait] 8m0s, 8m0s, 1.376ms +Latencies [min, mean, 50, 90, 95, 99, max] 642.962µs, 1.144ms, 1.134ms, 1.288ms, 1.351ms, 1.652ms, 35.611ms +Bytes In [total, mean] 7444806, 155.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:48000 +Error Set: +``` + +![gradual-scale-down-affinity-https-oss.png](gradual-scale-down-affinity-https-oss.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 48000, 100.00, 100.00 +Duration [total, attack, wait] 8m0s, 8m0s, 1.04ms +Latencies [min, mean, 50, 90, 95, 99, max] 589.239µs, 1.086ms, 1.078ms, 1.241ms, 1.302ms, 1.6ms, 35.636ms +Bytes In [total, mean] 7732850, 161.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:48000 +Error Set: +``` + +![gradual-scale-down-affinity-http-oss.png](gradual-scale-down-affinity-http-oss.png) + +### Scale Up Abruptly + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.166ms +Latencies [min, mean, 50, 90, 95, 99, max] 635.472µs, 1.14ms, 1.131ms, 1.287ms, 1.346ms, 1.604ms, 12.365ms +Bytes In [total, mean] 1861212, 155.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-affinity-https-oss.png](abrupt-scale-up-affinity-https-oss.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.26ms +Latencies [min, mean, 50, 90, 95, 99, max] 602.076µs, 1.079ms, 1.076ms, 1.233ms, 1.285ms, 1.445ms, 12.338ms +Bytes In [total, mean] 1933235, 161.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-affinity-http-oss.png](abrupt-scale-up-affinity-http-oss.png) + +### Scale Down Abruptly + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.148ms +Latencies [min, mean, 50, 90, 95, 99, max] 657.765µs, 1.151ms, 1.135ms, 1.298ms, 1.365ms, 1.715ms, 62.444ms +Bytes In [total, mean] 1861272, 155.11 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-affinity-https-oss.png](abrupt-scale-down-affinity-https-oss.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.35ms +Latencies [min, mean, 50, 90, 95, 99, max] 580.673µs, 1.068ms, 1.062ms, 1.217ms, 1.266ms, 1.417ms, 63.405ms +Bytes In [total, mean] 1933160, 161.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-affinity-http-oss.png](abrupt-scale-down-affinity-http-oss.png) + +## Multiple NGINX Pods run per node Test Results + +### Scale Up Gradually + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 976.371µs +Latencies [min, mean, 50, 90, 95, 99, max] 595.016µs, 1.121ms, 1.097ms, 1.312ms, 1.427ms, 1.887ms, 22.787ms +Bytes In [total, mean] 4833005, 161.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-http-oss.png](gradual-scale-up-http-oss.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 1.557ms +Latencies [min, mean, 50, 90, 95, 99, max] 650.263µs, 1.184ms, 1.146ms, 1.349ms, 1.477ms, 1.986ms, 22.968ms +Bytes In [total, mean] 4652987, 155.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-https-oss.png](gradual-scale-up-https-oss.png) + +### Scale Down Gradually + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 96000, 100.00, 100.00 +Duration [total, attack, wait] 16m0s, 16m0s, 1.199ms +Latencies [min, mean, 50, 90, 95, 99, max] 584.14µs, 1.14ms, 1.116ms, 1.331ms, 1.44ms, 1.887ms, 52.98ms +Bytes In [total, mean] 15465773, 161.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:96000 +Error Set: +``` + +![gradual-scale-down-http-oss.png](gradual-scale-down-http-oss.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 96000, 100.00, 100.00 +Duration [total, attack, wait] 16m0s, 16m0s, 1.031ms +Latencies [min, mean, 50, 90, 95, 99, max] 634.745µs, 1.196ms, 1.169ms, 1.374ms, 1.471ms, 1.909ms, 39.725ms +Bytes In [total, mean] 14889673, 155.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:96000 +Error Set: +``` + +![gradual-scale-down-https-oss.png](gradual-scale-down-https-oss.png) + +### Scale Up Abruptly + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.135ms +Latencies [min, mean, 50, 90, 95, 99, max] 664.466µs, 1.184ms, 1.173ms, 1.35ms, 1.418ms, 1.738ms, 10.866ms +Bytes In [total, mean] 1861227, 155.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-https-oss.png](abrupt-scale-up-https-oss.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.245ms +Latencies [min, mean, 50, 90, 95, 99, max] 628.895µs, 1.111ms, 1.109ms, 1.287ms, 1.346ms, 1.633ms, 12.711ms +Bytes In [total, mean] 1933228, 161.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-http-oss.png](abrupt-scale-up-http-oss.png) + +### Scale Down Abruptly + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.302ms +Latencies [min, mean, 50, 90, 95, 99, max] 658.812µs, 1.227ms, 1.176ms, 1.351ms, 1.42ms, 1.676ms, 152.248ms +Bytes In [total, mean] 1861205, 155.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-https-oss.png](abrupt-scale-down-https-oss.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.311ms +Latencies [min, mean, 50, 90, 95, 99, max] 635.464µs, 1.167ms, 1.119ms, 1.319ms, 1.4ms, 1.684ms, 150.548ms +Bytes In [total, mean] 1933174, 161.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-http-oss.png](abrupt-scale-down-http-oss.png) diff --git a/tests/results/zero-downtime-scale/2.1.0/2.1.0-plus.md b/tests/results/zero-downtime-scale/2.1.0/2.1.0-plus.md new file mode 100644 index 0000000000..5c692c433e --- /dev/null +++ b/tests/results/zero-downtime-scale/2.1.0/2.1.0-plus.md @@ -0,0 +1,288 @@ +# Results + +## Test environment + +NGINX Plus: true + +NGINX Gateway Fabric: + +- Commit: 43424f7eafc27e3fed07cef693614a7f389a3359 +- Date: 2025-08-12T16:35:50Z +- Dirty: false + +GKE Cluster: + +- Node count: 12 +- k8s version: v1.33.2-gke.1240000 +- vCPUs per node: 16 +- RAM per node: 65851524Ki +- Max pods per node: 110 +- Zone: us-west1-b +- Instance Type: n2d-standard-16 + +## Summary: + +- Latency in requests remained consistent with 2.0 results. +- 502 errors from 2.0 results still remain, but have decreased in frequency (success rate is higher and number of tests which have errors have decreased). + +## One NGINX Pod runs per node Test Results + +### Scale Up Gradually + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 1.125ms +Latencies [min, mean, 50, 90, 95, 99, max] 645.849µs, 1.172ms, 1.161ms, 1.333ms, 1.401ms, 1.687ms, 22.886ms +Bytes In [total, mean] 4628916, 154.30 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-affinity-https-plus.png](gradual-scale-up-affinity-https-plus.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 1.213ms +Latencies [min, mean, 50, 90, 95, 99, max] 586.397µs, 1.108ms, 1.098ms, 1.279ms, 1.338ms, 1.571ms, 23.119ms +Bytes In [total, mean] 4805911, 160.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-affinity-http-plus.png](gradual-scale-up-affinity-http-plus.png) + +### Scale Down Gradually + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 48000, 100.00, 100.00 +Duration [total, attack, wait] 8m0s, 8m0s, 1.204ms +Latencies [min, mean, 50, 90, 95, 99, max] 662.632µs, 1.16ms, 1.15ms, 1.313ms, 1.37ms, 1.605ms, 43.776ms +Bytes In [total, mean] 7406590, 154.30 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:48000 +Error Set: +``` + +![gradual-scale-down-affinity-https-plus.png](gradual-scale-down-affinity-https-plus.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 48000, 100.00, 100.00 +Duration [total, attack, wait] 8m0s, 8m0s, 1.295ms +Latencies [min, mean, 50, 90, 95, 99, max] 615.262µs, 1.104ms, 1.098ms, 1.271ms, 1.326ms, 1.531ms, 26.719ms +Bytes In [total, mean] 7689520, 160.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:48000 +Error Set: +``` + +![gradual-scale-down-affinity-http-plus.png](gradual-scale-down-affinity-http-plus.png) + +### Scale Up Abruptly + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.09ms +Latencies [min, mean, 50, 90, 95, 99, max] 596.91µs, 1.104ms, 1.092ms, 1.262ms, 1.318ms, 1.472ms, 75.02ms +Bytes In [total, mean] 1922425, 160.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-affinity-http-plus.png](abrupt-scale-up-affinity-http-plus.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.477ms +Latencies [min, mean, 50, 90, 95, 99, max] 659.422µs, 1.16ms, 1.144ms, 1.303ms, 1.36ms, 1.568ms, 80.463ms +Bytes In [total, mean] 1851563, 154.30 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-affinity-https-plus.png](abrupt-scale-up-affinity-https-plus.png) + +### Scale Down Abruptly + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.395ms +Latencies [min, mean, 50, 90, 95, 99, max] 687.681µs, 1.195ms, 1.189ms, 1.354ms, 1.415ms, 1.589ms, 42.939ms +Bytes In [total, mean] 1851631, 154.30 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-affinity-https-plus.png](abrupt-scale-down-affinity-https-plus.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 91.67 +Duration [total, attack, wait] 2m0s, 2m0s, 1.068ms +Latencies [min, mean, 50, 90, 95, 99, max] 398.026µs, 1.092ms, 1.119ms, 1.304ms, 1.362ms, 1.495ms, 42.972ms +Bytes In [total, mean] 1912272, 159.36 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 91.67% +Status Codes [code:count] 200:11000 502:1000 +Error Set: +502 Bad Gateway +``` + +![abrupt-scale-down-affinity-http-plus.png](abrupt-scale-down-affinity-http-plus.png) + +## Multiple NGINX Pods run per node Test Results + +### Scale Up Gradually + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 1.146ms +Latencies [min, mean, 50, 90, 95, 99, max] 665.252µs, 1.154ms, 1.141ms, 1.299ms, 1.362ms, 1.716ms, 30.787ms +Bytes In [total, mean] 4644007, 154.80 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-https-plus.png](gradual-scale-up-https-plus.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 950.679µs +Latencies [min, mean, 50, 90, 95, 99, max] 594.605µs, 1.106ms, 1.091ms, 1.268ms, 1.335ms, 1.644ms, 31.101ms +Bytes In [total, mean] 4817925, 160.60 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-http-plus.png](gradual-scale-up-http-plus.png) + +### Scale Down Gradually + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 96000, 100.00, 100.00 +Duration [total, attack, wait] 16m0s, 16m0s, 1.243ms +Latencies [min, mean, 50, 90, 95, 99, max] 592.946µs, 1.116ms, 1.105ms, 1.293ms, 1.366ms, 1.623ms, 49.022ms +Bytes In [total, mean] 15417717, 160.60 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:96000 +Error Set: +``` + +![gradual-scale-down-http-plus.png](gradual-scale-down-http-plus.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 96000, 100.00, 100.00 +Duration [total, attack, wait] 16m0s, 16m0s, 1.229ms +Latencies [min, mean, 50, 90, 95, 99, max] 635.568µs, 1.18ms, 1.167ms, 1.342ms, 1.417ms, 1.684ms, 50.865ms +Bytes In [total, mean] 14860641, 154.80 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:96000 +Error Set: +``` + +![gradual-scale-down-https-plus.png](gradual-scale-down-https-plus.png) + +### Scale Up Abruptly + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 91.67 +Duration [total, attack, wait] 2m0s, 2m0s, 1.23ms +Latencies [min, mean, 50, 90, 95, 99, max] 427.612µs, 1.133ms, 1.127ms, 1.336ms, 1.402ms, 1.562ms, 136.445ms +Bytes In [total, mean] 1916585, 159.72 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 91.67% +Status Codes [code:count] 200:11000 502:1000 +Error Set: +502 Bad Gateway +``` + +![abrupt-scale-up-http-plus.png](abrupt-scale-up-http-plus.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.151ms +Latencies [min, mean, 50, 90, 95, 99, max] 709.412µs, 1.247ms, 1.2ms, 1.39ms, 1.463ms, 1.662ms, 149.538ms +Bytes In [total, mean] 1857573, 154.80 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-https-plus.png](abrupt-scale-up-https-plus.png) + +### Scale Down Abruptly + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.559ms +Latencies [min, mean, 50, 90, 95, 99, max] 612.804µs, 1.127ms, 1.124ms, 1.317ms, 1.374ms, 1.524ms, 17.905ms +Bytes In [total, mean] 1927261, 160.61 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-http-plus.png](abrupt-scale-down-http-plus.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.342ms +Latencies [min, mean, 50, 90, 95, 99, max] 684.64µs, 1.197ms, 1.187ms, 1.367ms, 1.432ms, 1.596ms, 44.068ms +Bytes In [total, mean] 1857584, 154.80 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-https-plus.png](abrupt-scale-down-https-plus.png) diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-affinity-http-oss.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-affinity-http-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..8c1adfa112bca541796ad047e62eed37080d2f5f GIT binary patch literal 9885 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-affinity-http-plus.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-affinity-http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..b8c1d1e7274050353a3a661d10900055417c86c7 GIT binary patch literal 10353 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�zH%AR^%gHe)VRfGj1skdc7!M4iLK2PW^X@Dr zk_hvRyq3D$s=^@jiKCYy_X!Bh^%PB1FSQF}arF9Mxqz(4pqfmbYvldb=M~(>=>rso z+0wTb7nXW?lmxX=XaAH0uF1%p6Q@u{n`@jf@ZFBln6(hq3BAk$eB*DEF`A z`QJ8A{u?ZUU&sjZ%}QIlomxf_y{n1bT+b_JESqUVMiBG(lnhURp1|a{!|C~HTK#cl2eLX!Wrg8cpG@m5@)gFLu zm{eJsDmE~+%G$PzD7t@*lr|Ohohit&FmHjiL}p*U@6mHJN}p)~9XvI9ys?^|vB7v|;7Bih7SegGEP38YaSA4Vz`c@N?>B^9yLR z-Lg(%aMv^kCbf?t% zXB*_0)ZrMv?LG2T44c?%YHrRJSYS?Y>MhPJE-nT#1f7++J`y%vB!IjeYtAGPl&8_4 zw*^7z_rSnQ9$;XUQSX%Y z8V~LSQbvJsWRY~=5#+3A>n}Ux&#B7+o>hAFE_X7MN?GLG0t>gJV5WQUGMA_g$7#rau}v+rr0d1hQry$PCR9lI$k2 z+;GCIQbg6SeCpjEG1d6EI8$9+-HAcPvC&bzzAMJYG*C#6YPj|}mL1g?_U!DtknW$O zYRiW(Go)I2Je|kXW6rp~`LJNq7Q6EGb(kugKYNVrq+$l#NdVG7{A!jXL3MP2{xny| z!X@}l3-+e(6mEw}ARN{7#QNh%Qx}=a-KpQPzINRohIzI)Ck7IvJ)CY6bO^Sn2ogog ztSHEJjExmu32g$={2S;;Jz!2IF(*M5h=x%TOMizY_p=k@_UC*Ui?JZSKs%_OtK9@C z<+Sr4{a3W#D|Se!ySj{B_HrQ|hWV$wXvghF`3Q6VbG{mQ$Thk2U}yhn)65#^6eo@! zpX$z|z#!_gHp|YC-NL6+HZxaitbaPsI{MvNF8n0rvGn4Va7m-k(JTB&KymCix}vP{ z%3dSnO^;n{@Ne`>vj~D>GyM4fu&BSu8u&M$a(}Pa@xNn3J=_Es_}JzHsFqaF<$-{) zXG2>TLFC?##$1HO#YLBq25NtW8$eKMYAQ@f!YV$?AH)LUbG#8G*;+auFunwO#aK&J zz(R<{OmE3FNeAl>6CKb-8wb%p-UGr_CTJsoahe0vkFVZEpR@x1=lNgnD0QX`LSM-; z-N7xWYhvO|eP;+<)*tNgY3u z7RIrsaI9u+@RD=ILW6MG?Vd&E=3FNr?Uq+9a%xm^d&@sjNsQQHK&kC5nIv5VX*c2hT_=Pa1e)>Ie<)4=6Q68xy*>ak zs)B+-83pHCLS?ta2t#wWsts}>3(Z^VO6pU{`9+U5U@ z@qFeK#*TvMmgKkC1k!6YSSZl9s=)^{4`8f(J|xU~n7gFglW+%0LxE+uHalP?p-c_W zlBEXm5N~&B{62Q zvUAyr0?3qX`!9eN6_7c$Gse9AkebbympenE^=oju&Gnk~;SjJ2?O{gBa%2th1e}4< z2mF8~=;ghIH!p>Wsz7bI^&Y8S?R5YJd%wIr87w88&3pg6n)|JJ`T6;CK}4PGNChPk zyqQkmMc^R0KrLo)ss;KD{VH(r(j~C~`T__KDJdx^G}@V*ahb)Sunx#uk4O-fbla@! zL5bC84l)^=TP2i9;VkAH%iLHUEK@uR^i8T=nC=93%$d;Lu`-hEcRa}$%;sHig6vF05IsK8FN@F~DJdsl6f{7-A(p+3`R zMOA#{uvpf84$)hMoNW36WHfCq^2H03MjF?=}^?5!ulnAw>fjURa` %!j|Dq@d?aM{ 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-affinity-https-plus.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-affinity-https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..f2be515543552e8f1e1563611e392c8d6d2a27dc GIT binary patch literal 10249 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 N^s#4hez|hzKLC|vqk{kd literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-http-oss.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-http-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..968d5535f79ed7f8f7ba1c79524c9e49b2293140 GIT binary patch literal 9670 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 V=c4-?_%I8>D69RH_2cb_{{h+=X(|8! literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-http-plus.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..79318170c6bccd0edebdd914096d9050d90c01cd GIT binary patch literal 10247 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

oGKZg>B2HzUW!`_Dmu>uqd#Y$fmg(3h+ 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 Cd%=+a literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-https-oss.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-https-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..968d5535f79ed7f8f7ba1c79524c9e49b2293140 GIT binary patch literal 9670 zcmeHNXHZn>wmrxwCSYa|Q4!FQFoJ-JfPi$5!=Te5Fp@JONobPf+y;a(AWoBGi>Tx* zIW$2sl7qw+kPJ<1Qq$dU_uRR+-mALr)vY`CRlQere^69)o%5aVe0%S;*IN5L`9k!{QQ#!g0P-KkUe_)_rNdQN4Q1c-vOte^<5Bz;{)@LC0vYy7eP)Tn4hj{ zdB!b{_`KA9>{qqoqC46i9(0ENYT&7Atz(z8UhcQMRW1DM!{hbua`rX|KL3{0z2%qp zmn?fUp0O9&W`-s!w@SMtZiu^Ss93MKhwW8`^{ zP4YWJyQxpR+-4k!|MGD5^r*4stgAc=a!T!1A{&Bi8K22PkcS7(A@^_ZIfR^ws@j9> z7ygq!-PLSIQSIhrOWhZDn$-PQvl%AYF4K<+YDwcZfDp;@GlR_RTBYDqfE>%(;Xcz-0s~DeenW51Vb?f~2 z2ECJnE*%Txjk$PjBerxttIT_oObgHUoy40PwJAG(BeQvAlCE&T2oFa$M8x4j_!W27 zXF~;>7`yF^n^ETzb+b)|iX3rE6`SPZi5Ei-W#YU?(Ys@u@K&_#b{xGUQHiuwFB>6g zYNDyx{UPbg=-R?Se#l8V4Q*|=FO9!V6L9oiT~kHhEhoI7DPyN!z;C^Ce0;n$RuxXv zu6X)mtSrg7MVuLlyW2gfno?Na_(lA6FB+x4Aw+;6*wmM4$jK-F-l7S=;8)q)+^hf_ zspoavg{N2gQ8)6f+tpy7bUQaUw`eK`a=dsl!jKGU2G>&N`yC-t5d0txK7(Q>GqLuY zF6uSUk4rs$_N+hCFw)pv`+96-u`HvV{2=h;6pAE#6+Ca$LlM&&Go4J&1u4$-Eya5LWM2S>Y5rF z7tLw{7Sf7Fz0*@t?!uu)2f0kO9#?R;qnU??g;@|{&D(h-jJ_8YHORO6D8!aUK(SjM zbgX{3mt8j=jjM#4AP-cJXOG=_cQg9poe#h6uv!NTp#9fpItPLpUhvI#CNYg&jKKT z#Fd?ND%l(^ahd++%(V=olGRu!oos(f`cYp6W#veE!&t7<`4#rUR)`kxIXvWG;x&FftkjJa385ow6N2YukLgO6b73@1p=#P}GI| zr0XG-01Bwx-Hk;AWwi;GiIQvB6~FwT%PEUf!11Z2viT}y^kZdt#3B4XASCpX`pjrJfj^jrI%El2V=OVne9Pcr@4d9TlUD~N=?YcBd+Zb}hO@`~j z0}COeT5I?fy^V^UPB-KOLZ~HNDRG``-Z|7BCzo&An+AOhM|L4#UCRTn&kh#Mzrlp| zWt)0A&Cj@kLb#*7JLk{?ll)4cZ zyVLmsPaVgP*=LV%>{}!N#FoKcL~cgqz!L`t2es36Dky!101E?U9!pRj&G;J55e(*^{MQS{jW%!OQnrMK%O{V(L( z);;Bh&6|{au0WwPHgSy2QJmoF)2 zaPfA>Xu*c&>JKhGjI%Wvt$wM{EKu=k%#O@lL|fOmH`A~P*hfToxFxRRT)Y}?-jH-c z&e;MoxBdkmH6Ku>aLA#Be#A^Zp5Bk6^}`-K=KJis-e8~#t!M(>Efv#CzS9aG!}l8Q zv#n+8{$Jn&Jg1xc%hsfLSmx3s9y1tx6;$n&Ntgl7R1WwervxegI*B zn%}k;_tn+aG1r1fto>Nd7+X zij}lQM;`C55&vgJ`&s_ri=*Fth3uc=IEwsm{=r`4>zlV(kgvG(5TyF6fA%MNZtwdM zKfl#@%+G?%q;$=?R&sWpW)-su)$Be2pdYUuCmcb>=XZAB!;9Z7N z;Ya%uj^FJ0yU)ii2~db{HW*w7ksqi%GTdYT${qjHuWG=n7aks-N|JHG8A9w?<3#LlG6UOu`2oSiyZkuhQ2GFL*tKUtC-~9_6?5h!YiM zuHASALH70xR?T(2ZAl72830cj|L_EGTt{0Q`a6nxA%oYU*le;noY{YXI@;LS+`82n zBaJ;_ycg+6dnd>PKvjLxq|28sI!}XdIJIuyctvh$8nnM3>OYobo|SfsVS@Kus*p;A-DtVj>X)X1f`W;L z5HuWMyZ=T$@Y!j--mMPQqrJ%cpBuIg_jSEhfohNkmElj@0lw%6|i(4fi15XK;9lHS(Q9URlc5!#_mgyFV$l{*|)r z|MObP`}&|rG*f$ax7S!Vp?Jmu_V$Tom*=_7_emI+{MEatJLu6X z7(6hYh=>R^0*Y46CeWIjMq%EhgJqouIdSOdIVNFEM$={kv5v)KfzaH_`NsE1s=gK%p117x%<wuq0b=T2)$VYHE7An7Ftqt)97(?@FDP zD229!L+5{lW(EDhbs|`nJY2Fin@q@Jte;E=Sjy7b+XuMQMa%^GwKnxpCAk|O-(sf; z3==9IHU$+b4nnv;%XlDpS`T31-sC1Oe62@QU0X{l!?1|lES7Bq#3mU{CeOt@O|Aw{M9w;FuT zcF3#GfFG;Wqo69tA-(zW2Zf&A%$ zeiLdh=vd(96xqw(>oZVgRL~>9C~UglRRB>}H9Z8BqChm~hKh=;-KQK77-z1(2#bt# zgw6-l5vW5;MrLMayu8~Sokj)M$HdrJ@pjdHJRZME!V%A6SpW^RyrU9w={#svP!&tG(WMa_gQl)X(MrPd9+&S; z%dJ(69WuKPFoP1FZBIbIaQ;6WWQg*bg5ykkaIR$F;c zl#hMTsZ8XR(p_rgLQa)DaBrYI@)nIR_4BPPBS2@r2A_;lbXGzlD?L3uHPyz|o|>G6 zykfPP;32D>_DO}afn{^e8)WPUdqDoS)|8f(K9fl&3T_$z5{pf7^p$(971|A~jz5zG zF(+4+1M*8mJt2cQ02=xkVCA!Cyv9Q*TC5m+`FfX%WW~CM)uVF%#SL!6^>X_=ck73V z>|go5^j{gT17pO0D%zSKSpQDT5;$}Kjg=tT2800Inf`^sQhE2x;I%*pHneg|F7nE} zY4;~Hwym=@f*AUgBi)KJ*Bhd^@k!YY6g-$r8%rdj$I@tPE!@uJI`z+wtLj5W+$#_r z2M3it2@*t1OpIDaq?QGOS&IcTUMKF1gSv!QsJI%V4c>N*RDUd*R0hDiR)CHx$!*Z}hgt%cI zEezt(vFs7af-L?rM6@V+W_a~uuNwKbWl8v6WKlEGKh%dR8ZK<>2-?E+2;XP%9}(ol zw|`1r{L^Ip-#7kgY4`6V{D+TF%;GkmqPHs$F<^O1BW0WKZMs431n=QsMZSJ}`+>Hh zA=Bq&Qb1B=MQN#b)qNHrA)zHA!#{C~1^HDYr%F^(k_12nLM^LgDhA-3xLk7xEMC0= zTkXGI;|1YbKN?4R1fg`_=P(^(S-g2p(qcsQQ|e2 z4&4Iqyf^+60p&L*`8TjU+w(JmoQAu=`VN)=_5Q0o_gocihoa!MYC#hM5IhI^OhUq; zxf@8jvP#$NI>29;U=x8pOAyA4V@;`p{goR9*?uGEj}2ZEjaTFOQnfkk(heieEW0yk*+Mulc;3eO!f=cR%k@?HtYH(@RHfD92YEjnX>2a88jNRuB9DPmtqOOAc#Q*`*^a_K5%h-rT}*Tfyp4Z zaLx;UMR~ANA=hBU;RAM*WBJN8_g=t%h%kM2D%KIy^d?x}WEdSWeZ9ybbxoPJdl@oO zIh7FHcN(dnS%PjJyUa8i=8D))UOsQpD2$qSwtlByCb|^>GHGqPeF;WDqTxGW_;rq( zPdYaKw>0Rq(lu4Rmtv**Tr!puHEL1B7P(EXSm$A@k6-(rh*dC4$eKwxu;wAh#-R^a zmEbz`$Fe*3?#}=-G*vU144yP~V-YN0Fb%#xd)A9V+myl*DVdJipy=0HrNEB6s;#XJ zW`MA2%(^LqVj4NDoy0qh(&4=sMFGiUH&R-l5-IUfUdNE51pLx<$CHZQ?NjI9rDkMgNH;XkzXT=7oEsL{_JY~i+|nZJIC=%9H!jm{1U>G|oKe+-L5Q4+rvVOp`(d zF(H0GDmw8b%Kuc3)yEiVsKXr<<^&B~P-Eu_P}}ZvJvOslZ&e3eYJ+3lGImuj z!&o%dq4aFLn(S^Zb|4^ENoJ@20xtQ&-*!1kmus6BaCHf4^#uKi7u3(aqbwHGN(!*| zVxH!*n7mWX72~#GRIYxu?cS2t=B(+on^E7m$xXX87M8p=Ja2|FN$Q?;Wf}c$7 zyC+8053H@9h(Gd0N>4;BZU*K8G$AmLVf)h3(gQ*;VZ8ZP1GpIs?(~TMH0ge$Q1c); z8HeWFRrxU}hQIh057luy-Qp;n%Ake6Zx>e5WBVYe!3oh;e))R|ITX^5yqrwe|GI#m zYvaq)Fk7^pd^yHdxWYY>abV3=nN2M!xuv92M8lCLeuR8-1rj_1D6b6PC1xe!Q{-Ul1ZY$YDa@(2{SG?W9aGBx{0$|k9|`VDV5F>^?VKV4kpc}3hB zK&)veTUDpCEiN9#?F7m6KuxJlNTHEW1OvGiqqXMn#~g*7oKzm zE)V_5Yo(4SpV3-i)#!WklhyB8LE?@l5})3Rba5ekS}q2_F=5O)GzSFRqPgl#+PqHW zoyzVER*UNIpLuiYfg8-Yi7)`7M3%$ILn(+OlQ62U3nnupds=#WY~FMruk5_u7*}6U zPfu@ectnI1jN5+zK&jMnz9%1I}1ZSzGl7vZlae4W!0DVk=z7@i_ zY|*$IUoTVqI#$|@o;CA=u6w~ZP-ZK+EPSvjU@X!F71%1;h;`-g@`KpBuVGJstLxen z+)hBFVU`5xDDwwa4c@L1rtiO-#5LvC2s3*gZf+PsWrQoq%90GZNT(>MO zZ~W4<8wT=^!JH2fKv$NQ?f@|`-Kyc)clemoOh;ntAbd=c4X+7PC2-wGpzn=%kVar= z1Yp=Ycyrqd*C@4FAIzW5E?oX|ExJ5H^_apJ+9rwUFj6`Hv1u-x!{P9J2$RF)sn71eh>Pb#^=fiM=J?HPye_HXH zRiw3h@}z>r)vTEa+EweXDz7CU`j$CYXPW;~)@t|e-Ggr|-l@eKFgCRppy9#5A4Km$ujpNVTBz5BRKzTg?N19=BngNBJXMr7ssTYw?A*)B`iFc<_3 z@b-8vT67b7XVMLl%0w3em>(h34%Nb&Inn|iD4D>QE$l%s?KGPYdLEN=>i2C{-1CV# zkBf96i%g*$eEymfe{IYu{WDfH?F`8cY58!6wsutn=}4*BZBJl9{Db}(*J}f}r#i}h V=c4-?_%I8>D69RH_2cb_{{h+=X(|8! literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-https-plus.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-down-https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..79318170c6bccd0edebdd914096d9050d90c01cd GIT binary patch literal 10247 zcmeHt2T+swx_%H9St;uxu%N)QBB(S4LWj7^q8n*S7X@UcS837{3k$1=Xb=%XQBdhc zigY5N0mOh(rACB+)BqurkdXUkch9}^pL75B&YZJz%go&wXPr#U_bc!FyifUVoi#np z|CRVx2n2#3{qs-e2n6?c2*eKCJv-nN;r+sL@IT%wKc5doAOv1>{%|G93miZozC)mY z`oS_ZZDBMbD48DhYFX~S(RW{eFDh90+iyQV5fZQye!7QG_>p0~q(I=KtXAv0=DRw+ zJl^r!0 zoZ~N!C4`lT47o09ix6RwM0K?`G&J0SIGHwYEQmlX86GM{Aa3v~Ag*27u@~{(qgOi+ zdu0E~kKE18^yrrTQWZYKYaNc;D`Yl{oSc;85?&m`peSR*TKF}B=K70#hF^->2Yt9B zrn*KYXU;rHwR^7A{Ni$JS*P!(SJwqm%qy*TCGeNN`Of6h54-EP7VCtCg}2rgB9@wX zq{6>E*`!Uog=dvBh6$|Uz%IQi#^pvfi<%&*7ykb74+k`Sbt5;fI5~~S@E_PMC|Q5G z_3o<(k127?zF9>LjjAl%;%FT?sK;amf8nLK$2`}y{GB4s#yO_xi#5|3UL_4{DQ+3< zs|xgW##~8PnpWU8a}!pyv^kwge(5tTZ4k3xSh&)o$My5;TPYdEx728H$3qrJ4xPU1 z9RAhD#P_A&wJ=s^EbQzUb!3)OaA3znMUAo03Ha^dV*9$1s0A+qqp#$c6qCx{rgHD* za~~)kwX(6NuMPV-hKvSlj9fAB9FPbZ@qZ(1W2wK`j#c&pBEgZE$=rT>E8LVwW(*g5g8#1@K8L(Nd_>#i>J**K=-@xyr*IS2ge zU#w*Rgr(bH`?60bG(@bAU1{N$(7DR&L9u#zGgos^teIEWxrZygLP*Gg$c^#XB)PoS zq`W!9(3xk+Wo2ci5yxk`*vu~FhSlz&JNLH@Mnfm!IX|#gMTjDv=$xv^*)tb@E1&K6 zjpm{2yTo1wPIs;?3{O)ihtVqp_7tWwIpRNqOF1_^;<|fU^$jB>9xi2#e?gr{bUP)=J%8#ttrAu4sP^OO7X`pdbEPIPK zMe6A4GSeHZfCJ5UbExtiT^euUY+`8b#AV{swSLWEF)C%DiY%!eGA-{$^8r zu_l~8TXdmnaj@KNsKSH4UM09;kC3c!TUVFki(d@G2gVvA;%?uTHOsh&KVgo|_2_v{ zO4Fjfe`3I1HDg;&SQR-eD4&bJ$>nCvrS?QFGg4)<#jEs;kx?dwF(ZTKENe)|_1&YA zNQyjM<{2r}FRy=Fo%1*qFOKy7Sh`xgJ{F;@qZ7g0SkA*I%9%AXS32a$1G(q2yU7Wp1EE3WZ^6O{XR52lVEi zd-LW^UWtbH$15!QKu(B#Q4wj>3OfZAzdkqM_aVy=#rTk*&syyXXZn|wcQG~4 zVPRoto4pqwYHmD#SqHo-|p%<}MXkVuu9Jskc8E}a30hogQ zMr}hWTcHdV`c}T_b3Oj)4q(tphJ7?#6%`(XU5;~O=e3|{;Ku|(E z=m;8jlSeQ^)Bkflt+OC9qsKQxmQ~QeP?bZMdG_VQ3WWFX4_X}A%r7X`9+r>KpM~3W zaBw(gZJIdrvD~doytN>|qGA<39jyyNO%$)JtmF@jLl@8B({)0M5AKAA}w|{C+CN&N>;>< zk>7Q6=!CDjQyMZOSJ1O@vt4O2?a2ftMT))A`s~@W0-F+OqUopT#BOENk`G@#WXHwD zq2QN$UY49Mm#wTKF6W=&k0f$Kjg*&{%THV4WB>=|pbZ(WeLRVsYfI+6NqH2*N4jAv zZ7T+ADDDyycvhXO=mFO56MlDe_r^0Js5so1O zP%$7NU@VeG>LmisW$K2NrBYM10;iy^L>28U!zN%1iYPniy1##1f@RGi@7mBEhF<#U zKuagd+gM9f!xC&9!YF2#mBiJDWY%H`Ost{b_8rO>Tk#eTa5+{$F+6hQh-Uce7ucXp zp{@V0Pt`NW{f-?cQXR@A_)<}TvR6lg2lxT9pb4OP;zX4(&{2Rt_0S~~tqIhRFD8~- zrP!SzjfvVTFvb=+V=)A~9>OCiIno%l^)5wK831rK%$LAgv&bJ)xeeitDd88RQZ1M5gXo9$*W z#0Dz82I}kUpBTi#SSVWwg^6!7-I<;!lgE^;?g3_Dk7d!J4SfMrGxehu3G8h%{msdW z%lT3zvkl%u6-VhayEivCVFC?T`(I{!LVES{9Z*-0lao_c_5*|;e(7VxDJa+V#Zh^( zA9buD$1F3WvBs$-Mh1O5F75!vW!8V6Ih!kO`HZ#dsXmk?(vzmttZkn)%f|2QJW`OA z_5IB-9<|rO1NO;@iL?nRwr0;w#1cF7_Sb)s#Hph{0%w$L`V08tpWM^7z*z9C)cN!0 zQzW?%?s>iM<=d^7P?d}IS*vuD{5C}W>@B$A?n!bpWj4-lh7nLz>;`@;`S8_N^a zI%=cm)nDInBkujc&tC|D_YSX7QeC|Pgrg%_Sy@Sm!+IDlw#g3RGg*dll2NN4plU_- z?{{`{Q?{?IAlf4kigp|^@oDCz_n=DX(kEaxK#^N!;vLzHfq|k6A<*SenHK{|$fSf4 zSDRo1w_OSR23-x_s>o6Sy@>#JvqPx zBYv{4?wPZv~hp{09#x?GIXHWot4~X;OHN{O4W}F2Z*GCI(vH{K|)9U(yMEr@E#;3J$uPyPNPuJ zYZ>9Qd4KB{uIu!-@+JF4L^!-L$EWK*?lEMfB;wjTPxng_P!t>*mSf7AwISFAQ(%Z`TjysVfv_{p)Mu4-C=G*1oJc@9Yz`Ov(L_f|WBA0( zm)XHz-aEa0a1?|%=xGxPi+`u>X8cNA;b9$p)$D?_R>_D$So53P!oZsr0Y(~El1hwI z)n)*J`l!&zAH+|Tj$yVII8BqH>NeSSAC0R3&RAMn`t<1}2>n7=n+Xy(;=NiK%mWoY zgLD^{%C;9=*Y0?w-gY0!*~5j{-t*6u&0l7F{I?YS|E>Nnx3B)!+#~Wx=~e2O9*B*i5vuc08(JF)c{l5^5%|$$B!@dzJ3EDC4Pg1D^dmvvf@^geC({Lr?7>kBFv~b_Ducc&p|d83U6BhRN3FxawVoIg zkLk>(eKd3NDVoa^K)8#qTV3pSUbjlPog2Gb?*HQ$o-|_%+ zCp>*BLqGTnJt8}@31f#?+O=lLD3TDd

oGKZg>B2HzUW!`_Dmu>uqd#Y$fmg(3h+ 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 Cd%=+a literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-affinity-http-oss.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-affinity-http-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..7a79ba9128d37cb2072cf25265dc3807f42de48d GIT binary patch literal 10170 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-affinity-http-plus.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-affinity-http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..97f4c7c5b7b0d30c073c475b22797a4ae212e6b5 GIT binary patch literal 9834 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-affinity-https-oss.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-affinity-https-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..7a79ba9128d37cb2072cf25265dc3807f42de48d GIT binary patch literal 10170 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-affinity-https-plus.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-affinity-https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..97f4c7c5b7b0d30c073c475b22797a4ae212e6b5 GIT binary patch literal 9834 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-http-oss.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-http-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..d76fabb53718534d4a2fda08868ee92077a539b5 GIT binary patch literal 9646 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-http-plus.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..635024f01b4a89bd30ed53df4195c6efd39953bb GIT binary patch literal 10004 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-https-plus.png b/tests/results/zero-downtime-scale/2.1.0/abrupt-scale-up-https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..589db89cc35aa392ce95e0e62effcc2f38e2e5a3 GIT binary patch literal 9865 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-affinity-http-plus.png b/tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-affinity-http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..78eb7b85b7844dedaf19fad14e6a4c32684a7675 GIT binary patch literal 10446 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-affinity-https-plus.png b/tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-affinity-https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..78eb7b85b7844dedaf19fad14e6a4c32684a7675 GIT binary patch literal 10446 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 Z*loV)PPM*B^ebEl*39xm!JjVP{1;4_g#rKo literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-http-plus.png b/tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..2f0c82170949254316e1b402439a2e24ca6052b5 GIT binary patch literal 9730 zcmeHNcT|&ky8e)1n9%{ob$}5N97Pxlpd!6Q#{ms>MnF2~AfSdWy#(9fS`dd83C#vb zM|uy4ib$^^5E8mTfKUPO3v)`XX5W&3&vd!kRZSaoxSK^BB^107h+iM6S`iB22kZ@R38bS6V z=)r8X>U?0l{Fy|SoB_c@7!{x?q1em-~m$f0xhUk+X*D`(CODm}Ms zbhDMP4aA-LP(7Gq??BW1%2wSa0CzEO&lUU+bH)AI%Ei}%o74?zeLN@kogGZ!Oqg`O z_|i;tX}{v<>7CA6boR7f=W3KbYcuUy&rQoi2?+9K)={b;f?URYB7vMddP4~L(&T~w z^2sh61Zn(N-)g@)+mj&_+4c1Foz6(^DsLl(XJc)Rqx+_2J9AfX8f2f-bV{9$|IAWW z$VvPrQqk)(_u^5|Lh~Q=NbOae1XxCFbj6 zBx`u<4+|n@@y;X2b%yc@!@l}oR8z{-8560FZ#S&55_nJ^f zVSc#6yTWUvpmybh9B-p}b^&5(SLt)n)6;YFZRQS@+NC$ksEyHEZ{NNxaqsl1d}WMN zo|>9UR`=YTHIE#cTryif0=uuDO0*AUE{@cNF=+)gi;>)qk;kd_j*b!iR@MPEGEyDDEUkDfX4cLTYiv4!>LZ`! z>uR>PPnSJkA|xc#JYur>!MfhBh2AaZ zC4VAy0Ag3}IXqBx?c@0PxICK6jN}FNz5LO!CUB(aVw133_|c26Z(|Co6n04vwx(3F zOp;d03L`w5AMP>NXH9OgRxudNweZAw_q5}#9||061`3@C7-B)QT;x{O$F$+9Ywoe~ zR34Z4u|3)P+__lntJyjxMQ6DUKC?$J)E`db;jlh-YlA^iXdaj;sf8oif99b{?BrWX zXYwnT=6OEXw(_Pva9$t^52r>M3w=HpNO;pkeoPT`G<=t+lB#XMw;uK5|9Xx1T<>%@~>`2wg&B@6$OU1Vy z?TN!5b1@7FVZlYXQ_kFsmR!8!BJO3&4S{H5f%X|;)W)fmJIo9H0|WZ&gD&XUwlqDR zx}dF%W#^68k`MRjBx+&X9v@3$_QoeBK9o{BR6<**pei3ZlA`JR)8<%TwuMT~d~sB# zm7N`)MLFWGAIi9V@#0vqYpc{ApC*RZkJU?==IPk+0@(Ri5)x*R=D4xcjU#-3ow)o% zlYsjJ87;q!rLm+tVe9j=yKxJ?p&;0?Z9$2T?6&DmYNoZ%Gjf~#PBkPZs&5X3p?~ zeoPH=nttEY)3Zh+W)T2BxIzMVv#sF1N`3HX!;LCk$8}XmVrYpZGCd;7F-1GkapWCNkQd1TU!#G2c%1{n020wZ@U_iu`pcG za`93J3i5c~<-OxW+_yM5*FV7SlFWBf0*H=~ChWH=*k9yZ;QSxT>TN=N)VCgRZVK&K zUl_*8w@~WBV&DK8g(OetcKV9N#IgF*IBn?IJg2%)*qE!Ut6nH$qX$>-UmPTr`Vue< zEHG=MWftl}z;f_1l)G0kn3z2}16k(jhC%&AVtVkN^?6cU$l&ucF;S7DZVa#je5>i6 zZn^^t6&92AsAN8m(Km|xg}Y zUh|k?CtKSj$}sR+ysXc2;rRG?$XxZdYF}N?$-`A(hnvC0{?fADDT1`g5oZGa_Ij^8_+7RhC`CGv?3K2`Yc!R|QMM~c@JtTUg={F-!)w}h?p?aKV7 zJ`_eQV3IW6e$;$0P5eptQ>FBVo4Pf?YGmChurEIZM=nokTUK+ zj^13s5o%#ALOUe*b(BuvakJ8~n>1%$C~(@DhcY36$7_(boyC`0V)y6-nj{^cf~v0V zGkP*0U`>O-YG)L{mpw?ut^;|tIzfwD3*M1owET*43~{j%^~<9gKJ)nQR0d4{vj0p+ zlBzpT?FHRfkGnCEZ8_JjL9JaIuve)Zy$K)| zmDR1Rt<_yURbqK)txdJ_3;5fm`613Rkd#|k9}3XEq;K%pD1$qJ;<^CWz&d4A-P)jV zla^dUNu66;tDWYLk3O|7bb>4gYIP{PYSlD0;@b>`hjBLc#n_$EhZa^=0h~1=6B6U) z%gYVd1(@V(ooD1C{K>~i{9N!LS03XKMU0G$6igmN*@ht|3^@tgb(5{%T4@D}a3*lu3frzY+-9Jz8x~$lyqKbyeZ-IT)!0GD zXY)LT8;0U9&SmRP@9|M6067BN=1wZ2T9_x1jr~shK0!WHC_<2%A$Pw-_CD76Jp|)# z;uC|T3#2@}dGlttm;iD)|6Fz-348DSZX0xo13vM|lP9AxNmu-oP1ni)%}aTRS8wpI zD{9#G+X6p7f?U6_Z3nW~CU@(7L)9u;7}+n+tNTvda81IxFt1T@pAz^$$E~8`TDRnh@c^*(B zgQyWfiH_e)2q5pDtBT}3d-g13bvoaffQ1Tn_{s<}s-BEBmQZopg8Bmx z#w8?(OGqf&m*=%OB1pd7sY40dbw{S#lg~W(`WS#-ST=ZX$#SkUXKttr10c7vwGCP8 zx7N_rZ!Pe+rTm$!I^y&2a@xJmuwny{xtnV=Ch*`1vL=utpy3PPoj12X6z@QuBxuvp z_mM#Ywk4^m)G>NYlhyfjq_wyWxmjn*@SzidgG6OVxHI^)sH-3GYBOmGUR_Y~ThV%Wox{qos*ZC$IEoM(wlIq^)c>uT$kl)?U z4EWrjP~_H;LIQq-rq5nPLsr}W^7}{MSUZKdIyyRrw(|Se)eaqR=z?qme|`WA60>a^ z?Pp1+moHxi&%bJZI7|T$-n(}%T3Vwc9fd;2j?@GJNK8{Smltd39mTY^W>3ftIJLiJJz5hQ09K_6$cJB`0o6Z$Cy-a@CmTBR zG$$t~;jlGdsqm%tYsq>asK~PV;hJn^K-;YWkpEv{I2+?xA%stREvrxO$X@mH-gQe^ z^ZCV!lg2yBC&NBNx(3LpQlaDTrnCR3T74^k$6>n99YV(n2!1M$K4)POhur`bEFz{T;)bfir${<)Ed>s9|4dN8d&Adq!-p;672rN7=$gAd23D^u^`MH7#03-|zq>*=CVIgX&SXxquD=Gm^Sg1dX($gamZJC#ovYLW*Z&C$k|;bJfAgN8cpQ$$cN_2W6G0hFBCw@U97Zp+=XD>`!VVoitl>r8Na_sF zY^gK-qS}<)XheRq?Ydj{lGsmWH+5{NYzi}09x@Bv#Qcu$@0rm(K~=iCPC@erI?=b= zKyrap;tnB7!hWb{%5=}jofJg2O-)sJ=GKb$xh-CBtxOO?##T0PWP8`_(mIgz_%nz3 z^8Wg+zo`1he=GF={nnpbo_|N;|8yj#REq-Xln8MD*T8EA4kZGC(+UY`&5a21eT)5t z{{H@GITRM)3>MtW?Ce<}^D9?o@5o^v7lK~mf5hrfeIM8%>703Y@Mu|YcA3k7y$vFf zB_)QOjIR|MxYnts;WOF*&E*R@Ao4$RDlr&Ao=qwhm3xh7U+#JmW&f#|tb>KcHL!cb zMLtLNeoxuPw>rVX5UBu{t&d0~4h&3V&LYS+D-t$qYip)n(7{I!P0{X#F=k#x^0-m< z{CSLxjScwitre1AeI-+IAi+p)tg#)jF%AjH`L~BsaqIAJ7 zg9cR56d(Vma17@^0h6m$xh4-xDsvRaAF3W5W&s~Qd;sN+omNf1vJy7ZxD7EgmnPim z2hSD$b3;)0A&icm-B%uhDhk6WzwE=vb%}z%v~ZqV(88UxKft#`{ul95uEF7NzkSdA z65m;+O1kEr*-~}luV1v(Np5@p&XW1YPk78&JnMxZ;xmN*25aXEW5Lo(|7rXDqkY=Q zZp(!*kH)Mmj<73ToPx)Gh88`LHn8w|hsstmft4&MESfU!0sdkALisS?_Js<~pE*G{ zkLnlfNK1g^L_-BL@|r+iBDI=F6C;2NzDd!ynk$_C{ycEdI}zuhP8?eJj6 zdlNY8a1%(yEhv;aaj(jjk`!zehuL4tTOgvuFb(Pb&0F`5PJ1!cd4i3YT?tkSFD9kefk(48*AE^rsSIOnVDJ`l z8LZj>fM2hsm9lV(r52G%F2y;_F^mNddVTS3B8714>KGvPUK5mmqr_5zut^d3H@FL;olC0JHJCxSvPp; z!t^LiUKG*AAO?S1Z`BtUKru-=_%u$$peQg~0OuriJ=<<2rc5c{*i`gMw36u+G1Qh% zth}0sp_A9^(Y_ zKy)k_`Xn$e?n@|bb_CVO$+x(J3j!8{mQ_Rq$5#>MWgI7*VnuS_1SmnFtp`BDD#6Wn zs1IlT$y`~9_72~F#Z%SO4#OCz>S7G(ZgpH>UV< z_cKHOd6c(AHh8)@UiCvfJ+6Fs1^}qSNE=&7D7ia+;87c;pqm5x)d}2QMw6^ws66_3 zC}XBg0Q^P@9FcbZ zUf`jCYVIb@d_C!piKyOrLCuV@vL*g#kS0_?U?%Uy3a#x@auc4}7mGxnF|^-dYUXl=(?oaYK@ zxUITx5*Y%X7?|-Mhj6O(&0HFWKLe$1^rxt{pT5A?ScTlVLjJ=o;BLc{6%1!Xuiys$ zX}3M@2GqhV0Zv+d%lLA$BObM}Q19I2*@Gf`+219$X4}ojsP#v| z5r5j{mY4|vNZlYb-`%A+eY|`?t=H1x*Gdj$^ZZW literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-https-oss.png b/tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-https-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..56840d272bfb9368b36d1cdbc21bbf86b07b45e6 GIT binary patch literal 9687 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 Z*loV)PPM*B^ebEl*39xm!JjVP{1;4_g#rKo literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-https-plus.png b/tests/results/zero-downtime-scale/2.1.0/gradual-scale-down-https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..2f0c82170949254316e1b402439a2e24ca6052b5 GIT binary patch literal 9730 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-affinity-http-oss.png b/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-affinity-http-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..95989cd931738f18e2f5d10fe1977264d4d764fe GIT binary patch literal 10295 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-affinity-http-plus.png b/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-affinity-http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..4f91b46d92c6a5c9a1c21538d02401a2311e563a GIT binary patch literal 9790 zcmeHN2~d;imi+}06&1T(&_+R96orPgA|h*Cnx-QSsO%ubwNVj*gdIXeP@ke;Bl{NA zMphG)eM>-}vW6(TY(ZH9gb*NXA=}*advE4V)x4Uj*RQ5(YKAHeB!B+@TkbvgoO8eX zr!CFaul;5%f*|WLKmBkPL1cF!h>XK(8F**Q<}K>*vc~HtM?8XT__Oriia5;;$_TOx z!TfOCCLop5Pw;A=Ppg^1ej9Nt;7_+UoI9icV72jub|=#Zk58JCO+zNWKc|Qv>u%g{ zJMFzgKD~?A?ych5VSPPq!@YG+UIo>C-x(FZZ%5BLcVk8UVB||Bgj(GR}KhLyK*aX?E5e| zWaH20S0F1l{lT|gNXbM`DBnQcN5g)?M{(J^Qn-PKogFTM3ZiGD{-`BDf-Ow zALl1O@nX!i13ATA)OO)8TGWQFUg&YxQ7X)@^5`w0Ek)9{ z83lNeObF7UsEViWjk8(w6n}2@;*rCLf5YA|7<#DV)FP>oRh;AW`iq5pI^{b}&Ai;) zp0b-m(L~`;>d;PZ;f?_c57vhJPj=tzu(h8bZ(~`Bhpk!{=jzbnnX!-0gBK%;I_(?^hzh)4Q0*Kma{u~j zT+MBx-U?rLifi@q0w+bSK_cc#qLlT>{@ej}7ez7{uK42TByZSPw>MwjDPdDh2+Lj6 zg_j44-6}oRBpF{~hi-DGR3Gu1>{i3L290OJQy3&P znrDRd@ZiKAu+}acyp0u2*h@#YG!$L;NVzMdVcHqWkl z`i(-09&Uh25Txqk4a#&l{SgosaR~{ObLEHdSL>p7>gww1xV7A9+BR;e>(-K*o10r5 zyeMYV#O^IFbTY>|7XN*Q?}3a>#>->R8@SByjt?ISe8yYVFry3-$;2RVb{G}%S-~t? zg`SGO@Ft>Ja7{x)%UYwGWl2w|4F5%{AbCQy4zy%(|_RN`I%RS=bqIc+@ zJ$J6^#;4bI@}B7?TA2#Cg~?A^iaSk0%F4G=jNV@`R&DvefT2y($e&2v#1>yY#|Kr%a<>A@7|qzw`m}0 z!SfAWk7;zd{&Dludn!TM&ZVBJA=AfO4j%HqK0nd%NgZQ2YV43>Gcgd%<@8tjk6x@S z*)KR>GZU~%VfOrR{jU&CBO@b_(Co=ig_3cS_y8v6{rmU6>`sd`gZWr%%Z60PGiT1& z+b4*ZMiQ{%Mtf?Ez7OoYqN+)i7D-#s2zOOIc=69)-bE6Z-l~eH{Aq?^mDcC_mT77h z78dFSPBChvkl6-vRJBjPZQT$k(y=#(z@Ac8-6|$=ys-i>tD}0mOD}32@uz>nK zG@?WSRaFqYI5qD6J+&smu72)uXy=2z+4jZ+p76a=L9Y11(JkM!o*DWS1#87x<}Dy`WTP-ipEM0 zUYP2Kq)0ao-k@p{vOJ!phh-&3*3}EIGN|4$YI*h)m4g?5xN_x+L@Yv;5628uw`FIB z0v>XD^>%93{e;zrl}{ZiZvXJXYi{i0@$gl}LD@MuIU^>M1J#E3S44@J9-aZYMrUwg zonq7gN6l~hy?B)3HJ+KUVW)x5y9Zk^F;z3~l_BOCRVIn}hiaI{rlw#(`>LJplp~&J zoL9*@?Jd}avoz!sK`FS=oOn>L-=|HT6mr(pb>O9QY4B7zE0L8X;Y!3PObje(Y<&Dw zUwI*aEgiMM>0PV|lch(8&V4i+SA0!LRcp{^rShJuin5CJ-Lnn94H;K& zF4pnri%8OOBRdsOe0X|N)1E9{X5TKCuJ;FH)D9dtaBW^YHSs?t!kD5-#LLUes=`5e zC{5Yf*$&k~^E07AEu)Lzm&)5(s8pQcLY$m#; z+}nwfZcG7acS{d^QB*Vs0foVSg6-O47InGY*4DNIU|}oDwNKa>F0ZKV`1&%eniN^^ zQC+izuv3@bM6AiPdwE^oOIm*_#-2eeXyfTPqM(-~5wbSz`?>zm@Qlx8w`BLBeKvM> zDo4G}cjVf_|4>=abLPvtM~@zv$A1?n;FJR5 z@ZT%rb{P1Ky@dQ)`g~6^K@n>ZMoVcTj`Sf!$s&>F#z@y22zZ{GJ8@epcjnbb5*&127h#lqR01xHTt!gmAkg{^3M#+H^~5&AwE^!lz4hQ7#4N zYlFGf34w&~S=;!w1>wh^vd1ci!xpZJog=o7vockn{@ZBGkEY;S5)Tf|wOOIGw07!y zUxtkuRidBGX>YSa8+#Aex3;!I=1;>EtA(>oIyBS7Q<-8BQ$hgr%goG#T?ydP^-?6s zt_yJ_2>S!pFV^iiT7Y9xrK2dmZp)kTtQdbG775fbt-^%Cs592qyf{ioCgkDXy?cQ} zREidQ(E#_CS{h7Tn;5SzyuCYz)!UCkkq%vHgrcpZ4sriWU)fD~96_*%VCi@}xNn$(0m|q6q;ZAYFDclQwln%qbnqGfcYjFy3DyvP8J`f)r-E)IQ`s zv(bpFtCBVN@<5ZkUrS5$F*-DsdmLGkb^UfFvU*eOP&rvB;Kvu7dE2;yT4@PC>3Kzq9bChG>h!P>^=vRF7V;a@A{Uy=U8 zQ+JVQhpZjtMlinYJ@H=;z-3lxMa41~g&_P^{Vkuj|7*ti`}F^r3I6^?-@^sh-Q6R_ zAFgGkZ9TLdIi|FQx2|)Po?=Zab?+iS)?I;A>_>eigRC^XALa{X0+^vo$c!{a$K6Ah z+eqo&jR&HQ7aZbGs^e6UTPq33jokGG!8ai>|c=veHV=*WL!og~E^6)0R7m-MdsE zOX$hE2`+w)JYM0B#v?vwrn`|Ew;xzGKTHP~NZB(~AbZ!qOnw}29ixz?>BNJVoc7to zpF|Lsc8o;p%}ztV<}|}afR}C{t8W$2eeb28*?XO@7B91VOL4TZXOV}x0OaChW82%? z;bQ;V+j1#KJgztGMsAVwo}*5N4kEqXjfV&VVPTwUK$MN zu^3p;9)G^SNm*GLAR`!()*eeJ2BdP_Frv~ET!7r#)T%oWUJR3z(qX7J0AVCu_s)nl zn_L4&;(T1BtQ?^4T$$HrxX%-{@qy}KNHGFI1VSZgtCtY{x{$2TUmCGJ4H)FqXGztY}ZO;%=?WDI|+&`uoZ~!XItT|XBTDM zq51+xEr-G)2V(c<^K^)ru@6s6`@GG0nu;n$N3XYMN1~`@uU;J_(5;BeZPu3hBd_XI zn!NX4hDymXuLJE?i|+6&d$Z98o;=cOEtvAxK#St+SyqG0WInEZ1Tddqe-bcM6iVWU@#aMRbM$? z={tu4DEQ6v!W}ZmScT;jF^&fUt+Ty7|6KVjs9l$;fEgv~^c~RTKr8kOAU(A?YO6Xy zRF!yresf1b$ujlmK}^h4f2F;>eOFf(6EMYbLt0fJf*6>c(THnYT*tAqY2RD73YjJ2 zHNFf}e^`x7Z&&*l)}B9x>Hl;w`2R2d5yJ3)bkjPY*7N|Ser6g8h1A8)&JT1g^Jd*n zuwJf(zJWsTS@!uZfW#b_GmV;*5Yc>BZ|G(uBNEaX0E+Bd9Rz4$=s%TDCc8rIgZc{m zFxI4}yZb1(2SAp|SQ?c|4IQir17-n$aKSlB2JvwL+i)TR7s4bg0&4bRl84(4KI5+eeUT6MpxsRr zU6m&sQ8h>Q|4gbSHC+gkR(NoK*v&eODtKw_0{sUfol0jMK%sEguV24deW@pQ1}bosnoN7 zcBDz&GBvUMHL!Tl&+ef;AnqPSMm9Ay;Z^84*>}`1=^$?yPP=4}+5gJlE*gGfWx^kR zlE%B4SNma&%)n1*+&~q$BV!-URI529y~$W2>?E$QYzA0G!#O=(xT_UD*kLngoFq@uA8xKJwA_L!KTfgQ0sU*f7}eq8=i8!q2Pb}{tm zDJt0^2e@sp`KDw6C-G~u&;x-Z;-Mw@rsqI9r6v*haOpu4IY4Wep#ly}{S)jC%Ve=U z)eOHbEzj8az8oT#c`TiJs^ZT&4w6}vBt{KF%siP^#D9q+XcCIR7J;vA2N4I@?mwF3 z2A)x{)IbSs3@r*@%Q~|XF$qT}81DJjss~HB*j&-LKPtXG4nsJ zG5(K2#{W!T%1Mn;cMW%@{{F}U8e?Q+<}np`SIb^P&!zTY&KgFDg@VvyFk60_Rr4W7c6pVfT*Kglf9)B@Q|yj zs6I1-tEK8CJ^}vn3$#RI+KN0(S*rMs-^4hwwwWVIXiowLK81PQr4sL zS`3ri$)K{Ne}K@`$2r@?mcCkXOZz2W<69i+E6e{H*h1*C$i}@mD>>aGM_dCw-vPr8 zP%JBGaf$#=m((%=Z-pf2V|fpB>Np@Z_xZ8t@D9+yAnw+wnh2}l!O*(^BedGHzoMjl z3vw)s9b+XIxJm&zdXO|LH9t&V{%ad&e_V)-90%u{YBu(mY(i|E=icV?nuPq04whAg z*kx>j=fB|}H2L!P$DJApzU#*mC?GX!*bz(PF>vMSdMWh&_f5e9qm`Y%`<~TY7w?9> zV9jj@JHpo9Wgcw3*ZeggbigsZ1f8S@4<3Z_Qka*q9#DVu`n=xWS|JO~1w1sKs37e* z#=E0=taG_M7V{sFoQBs zMb(HXFJEdcpUg`0bBga+J59>)>%Sutvbr@L%#Hh-)E9svJ=AGgN}=&nK-H__ir)yg zUL6vu`$~8l9jwqI9}w}+qfM5f26uFH#Kp&3CVu~!CK1ru%!o6Q*gm2}1pZ!jZf;|_ z&8162!wpZM^jCn_4nJYC@^&^hAz-0;pm)=FZdeTz&;B3sul9+vfuAJZm8Wkh9&h9IQacc#Rqnu1hFaDFK7iQZxW$FRIk$f_PIqx$<AWlMGm8qK({5(d$G5gmsEKBB3uO$Apmx?Bt$80gqgsU}Sx z2`Fs3S_8mFtCHf5qaPs0rJgoNeb`@|YVIo*f~n1gSsgNCPfWz9Ilj7Rnpdh7A>t0Y z)KhIVDA*Go`cA7AkDHA$0==oDOvt41ERq=fT_8-szzXXsJ!+?j$}C2?4cIQ$)=z{N z(k`D_Eg(&F|9%Hm#p475;o7zF#yHJh@7@yus|^kj7c$T8OhHSywG*8$op0W}31q}_ zu!LbEm;{Mz_UM~9s)L=~5%6V3pC-yVhIq?JC1q{LN}_{Ta1JF1{;$m>ZMs= z`(9sZlJ?6;-vjsyUwY-l0j(QDtEB8c3u^ejM56+`ky0i{O6#m4hk1c_m& zlDBpo^Ipct#}mP;4UQ69GG`A-cnmZaEC=YO#k2hHi*N#%YhzcJ6=-=_V&K{#Lyz>R zKsf7C&|Cp?rt&d9r-itBVq&5N+U4>p0fW+BGqhga{tkf<6o9v9l#rP+aORo-`l1B8EP? zv>6NbBRosfEFFFB0b7G9Np65PGwSgY24pX zM|5>};@=$X8aDbIai^Jt&oOFYf*1l216!2>rYLBImo20^QFMiZbiq%0RXxAM+ZZ9e zw1q^3&N}E5>9RXl+kWN(@W9huM`@6>k{MOWOe($wjtDTe*q?iKy(1S!xl0t^8P8K1 zMIYx>D11sV$npOiKq|_~8HXN9w9#yR0(DN>uj>a8@+a&n_I6Ce&uu-_Vu z#9Et3_zW1?#Sa>XI9Rxo+-mwUUlHHh{%3fnjY}w{$BI=Iq2+ZX>RTjm->splkQLa-?_FO z&*j8cr=1r58eYqbT#{M?^tpAi9zkCe_D|Y)aVDR>3O7ze3(oFLMN4qrXc)G%Gx~mU zm+DX-o*^y5DOeu#S3rIq=J}YmY%(D4k%knO2MrubMaA;3W-5G8BE0XUFk@xlC(VgP z)YC~bh0nXkAknR+hWXIxhhrFEZtD{&Ub$2b0S#dg~i; z*6$PO;49X`5E9fHl6Bn=se>rvKyL{*Uvg)9qt9hXhD?JaL=_qKixkgXIJ^Sl%>*D6 zsE;e2t_uwwaF***JFjQ_R_P6f_jn{U*a7mJ!Ndca23$o1%{T%`cc5sDR1z;j2uLH1 z(oe6iU}9`+ZHt3?Pjvsa&@4QMhpudaGDCcLNhWi8k>Pn6BRwy;(^KwGspA1{vM3efp4n?9Io4S(qE!lY!C!!4o2-xj z1z-knexFr(-z=_j#0V(C@8z>J#9J2=qmLggG9Ws?S0JGmv^Ni)d@Q=U+h}E&bmXdg zf-{P){Dlz^LF+Pwqk8w&E8Cqt3k~DPbE-oo141~)z>}=G-X$dvyW&p4aSmKds($#Y z^%@5b=r8u+QzTDEq4dbG&^ZDuFi|J*VHspFVnkvwg&?Fu|BMI~p?B%;9pKPLZoz>t O1Y>IX1Np@H+y4d!P4~F~ literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-affinity-https-oss.png b/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-affinity-https-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..95989cd931738f18e2f5d10fe1977264d4d764fe GIT binary patch literal 10295 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-affinity-https-plus.png b/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-affinity-https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..4f91b46d92c6a5c9a1c21538d02401a2311e563a GIT binary patch literal 9790 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 O1Y>IX1Np@H+y4d!P4~F~ literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-http-oss.png b/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-http-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..1137b4a76f5c4a3c22014047aebfc052a9b7e35a GIT binary patch literal 9860 zcmeHNXH?Vqn*NJ2IHEF+qYNrAj$omxRB5q{g8_vB1Vjiy1rZQ}^d5n6*s%SFz4ybOIr~B6gnyD>d!P3yzh8f{ zGT*Rn+d2e6HlR=ZV2dEDze5nIGi#;bl`Y?F*#rN5>3_m05J5J+lKfkhtiEwOf_#Ud ze>ieFEMsOc(m$DsLD|(OTgdrt$v$>kaX$pc;4>!E zE`M!h^-`t{&0+J@$HTKs#uuX!zhoUsJ#*J0=W7J{{LOeIf?P%EOUWYN-D{9S*6uDr zkhm{3kgIP0##KXr{}cQcDAqKv?{$w4w_ z+>Aq#Q3`XT)kkxcrcP3Ozu#dRQ86+0=C&gL4l7P)Yxz4DO#BOtY59Bip9L*b~FC;bW;?+pO$45JXL*Vbc)H8Q#3klZ~xq@Gk1Qp zi6UI?kLB17TSafGDa_7R>3$hLo*6oN%iyA)Uw`FHkQ`E>TJjz4iw)a?dNHA=()DLZ z<5^UW28ILUuPrMJnC!?&G+qAaiQ@Ocw6Gz49(sCubrJ0QI-XYbdB(@qMQuvaa0*zN z8;P=BC9Z-Im&-V)m-2QqGLBa7=yK(?PjOw(!Z2Rgi&xaS zcoJ4Xn<7}~#o~qceTqmT9Ud+l(_iGt=7r?-fLxfzSnEU?W zF`4z>`uBOHMzbPmmN@)ytc+6h(uX&1-YnfXMHEhZ_P2>wMib?B82XRAyryZ8a`*0O z2M52w8n!u#XOl3RIqeGL3R!G5AO^M_ivMCm&GIK7F_R)vU#xrn{CUzIYps3z6m&1W z-(WECe!=MxML?zOFbbN;GL0;vhU?#1%7>lPTJ1)=kS9LE>cIM@ALJXbBoCO}U*gC`T0Ge=XyTL4c5Uga{ zIM>_9$MfC2D{oa(1-xEL5e#hNapLY%_qzfr84SkKBAQjl8A^sPgfrID(^KSBesQoS zxW5WVtBd5opCYfTclI5>r|09~scbOTIoH~G@?|;-AJdO%N>tX?(#nEEt~L6+E;ZjS@Afvmr}PE|c*70@KNki= zB;>HqB$L8`|wj`&d3`KJW7suPha60%Z===BY>tFu3A9lRF%}71aJv=-dgTe5aP|29k z!QeEEJSONv^KZKXN#tqI*}n4eCpM2$w6UT(Ry2!45l72w#!GPg+MXl)ul7%bxfbD=irT?;F`$6Z3r3o8X*Q`Eg2M7IgFMo!j$gR2w zt3x7jVe>4HI_5SWfAZwX$GXT+UteDy^<_!Fsn+koN&6wMkcd2f_ zpZX&VyPrd8(VUiKb+M2phGQBpBbQ}(<@0=#GLEajH&+TD8-5XwCO|n4ugs5*XGQu^ z7b|M|EEvS)X-_MHI~?T4Ki+!!)Ys+LM(RzfEgt(HV5DRh7=ZBMj5JSJ#8CcB z6)a~{PEL+##8MbQ_gT|+!DJqBH~L`M+^|_RZ+ehiMOQdGB$?Q6yUfqd3g;T-IlZm!`F$)oS2Yk|$!MKayl)ij4Yl2*j34lh3=R&Cz$J`6PgbfP zTn%M?R?ADaT`gnPYXisIFy$9pOD{Az6uS;m@Z!F5 z&vC;a2`T{S-kh&%cK_!*F87srY}l}YCY%k0kHWaR)`!e|N)j@ICv#F^JX(Q^nV~~{ zq(Dyw`rRN8#uVA??jz&9*XX=(_2P0eV?(^v>^fLBm4b^Ga zEp;f1<`U90Df~fJ%yK#LRN6sR>YY7-YU-V~w{QGpV{>J!`8PdygKHhH04wxnoSHv$ z`wC;rwA)WB5^&Y)b#y|v@aXtxQ)2rx zU<$OULI1`L&`4x9?l6p6nG3C7%#_S|=z$K@PNEraukibe3V)z;Hs<>NUBcR~z;@GAi=3ed<}+tM5`7@BeWo+7ed5Dob#-+eWnIf0TbfwJ z0n{4IvnGDIdADF8m6DD|4-jz=Vxle_? zi6~JR^etHbD_7>BCm9b&Bk!MWfyUg>=?j%ESed`ERWo9`wCUh>%0hB+A(kR~_3LK% z9H4-~)Y0v? zRllhU{B?hzXR=#0s>cYHm41V~E<0;_wJh?0ziwlp!BE%*&g@{SYlPQDOBhwLYaP_f zR*f?ymp(j#0ny7O4;po+?xf7$!re_x#fH<9kNvW~ufnTyFq9_zV6NQV+nXoO;%~M# zDFs5zX7*x(yX{Y%It8F)0zjjU=TZTxFZOlMzaNU1MuO0sFu9&b$8YHS4HyPbbwOQ* zFERjbJr<$=)IWZDpXrS^))%Jx)#N{UGEv#@Cu;)bQ?+^P8HtDj&JoF; z+7b-4}P4xc*J`YufeW*Xp{r<| zt+)g@kcMmjqw?y+1sQv?!XD-3USv;odlI9U7wA-p9vKLrYBt?gq)GRC^v>Ht(=&X%R)sF2*Gg-%OQyxbG zkmC41(>eYd{pB^DQrBL{H@7~SEiJHKd0E2_%-Tl-V zSEq+2$YZ0f09F`>On(c87C{9lvhba!Szwc5sLA}R&5E-#ZWE8}w(*z3b1y~Kn?oIw zXVKB6jThQZ9?$5|IRotfZ5N<{yldDwf(nSP$@Jpdg%(ilox-~+Xf*n5SH4|u5hk5F z!$LDo7+!X=!O=-QbCxCfAX}mf_-F zl6kWe03P6bIk*v1Q&T_@at-ti462L@=_%8Zs{k+WHQYDA4S_2FdNR7(-qAxpB{^Bq zDCi0OT*5|0H7zYIP0bm9T*CG1*U$Q*b8NNiSI!euuwq_slFA_+ta2JB$0b)9X)E!( zUP(*ho$q%u)R7uGA#PYLXTlvzvPKD)OgRIc0sK}2T5T}1Cv+%$PdOd@z)vu7GONCS zWN70rTG`f{7((<3eU+&os ziwE-lwlXRP#2X)MhLUr~a*1WE8P@=A`9-85&1S7wOTNeM$RV`~&ys^C$aJHfm|a^dh?g^K?lnOWn}w}s?CtHHD=#~d z0_f86F8hH(juY_`nWpYg_}6Ftg0f9F6_VPSprlbHO8tCgYd{mIDU%|V;1>abOAVKD)3&Bku z9v*;$-XuCi7GMQ~6G)1Rw6U=%&;(`)wD=@pjENOT5LD`ypG!<7EdNulZ~Vx+y%ssP z;iS=YTzxpR=NZ_QRu`$K3kvUYF?a)L?X5-b3xo8_`?5dXO4aZ*0TxsM1we7F~oERx&ueDpK4c6&rnFeFQis#YHGYz zTuhR1z4XdgV`lgv<+#d4)~Dw_ZwabkXlm};N1Awaqn_J}Q!@1bj;gTES7@wmn$JWP#G6UQ7o z*4PORc_cx(r@Nay+35-HtQg|Bv?0DkBSCa{11mUx?AWpBXd#&BR4P?Y*=*pNohrKH z@0ROY(w$UnO!(-VTM`GFRBFfhIPyZ;3?I`gc2Avy2r>%Prd{sI{KCTNIms-8yhT!i zO^`199ZFX?sPoM*FBG0~5pOj2&PRGFc8l^1$>bP@BWd`xMz8>)wb_65pN#tytXRCf zg_%Dp6pTkaj{(jJ2<7>=dx+UMh`z|c=s=q?U*_B9cR{*&N98TpjU5JwI}RNL7y!07 z*VQxxb~GA|5g1rj2r1b6n>`NlYUB>w{U~7^|SSZQE9sk&P(FS+&wEb_&*- z@FpHZt-T#6EGV!fxI@q|la>AZu&Zp>GHD|xG`IXdp^b8Fqc9Ea5;x_z9pkv1uVU7K z4Rlu8VQXHna8ayO2&4w0EDp0*J30`28i}{VEG+LZXh(?!n|A#O{3lm7&w?-p+*RRF zz}US57di|qEi7`aGHZZa+bKuBh?Cy+&ax>}TZpVAn=xT3zdNmk=y z!UG@5gLQM}-;q0OM6Oa#)DYwgHOXCo@QsBMuN)F-u&dHgc+uP2UVeTdM9cjlj?0mk_3#O!TUG>` znQz(cF<Cf%!;!`WFfPc0tJg&djWbZskX{rO4#zZa+z_82GfsE> zDKDl$c5dgyOYJ8xiHW~$bk4iu8jYSYX}fx5uR~WYj^<6~f#k4E)ymZO{gj9ojQ-*2 zL0ZrX=BbF!!b1`QCp`e}4df<5C~8F*i<8wlkz;!(3%oyQcMdXDgB?z?@>&uvvCM<| zX)s-=4V@^A!NSL551c8vN1c8YQH3G>76Y_IU z>tq$QlT+WrV+m)K(qd#?y}Z17FUCN82b_VsMcrZjHr*$KtBrya6_s3u7d2$9qJ^DNVS_qLFr)1L7-+;8T$FvuQ17}Px%tR3Nqys znE{|c5|P-;IGJOcuJ3EqX8}=MQTbm$(>X6v7)bj0ri!>O}SQeI$Kogj=s z?AR7l8HW)Ab`%`$`L9QZ$i*JXtZO(Lxwd8wd2V|ZCDoW9M}%aDOtykWMU{YXF@tr3 zy8%_?P~aoLWKg2{L~_W}5R@Cq?M0lOvhl7|RG@!Z};Mm>bB)&;$gL93skV=zCg%I-8GVk)K0UAEyOSXc2?~j8@G=yP*lpGVULieH3bO| z?C`k{5&RmsS>fv9BC(o7I9X7F$J_>CUx3_ARu$pkJ_iW>X$Wi}^NwIa$h=j{r5Zv` zNa7$Mg535qoPl>yI9_81SoSUS)4;lb146q=H@pI^suB7W1(??cg@f*3vB#!%PCaam zNqoj&`PafUzUraOsJd5d-+N6gX*@^6)}C#p1khVl&=55Bn^w>L-du)xp33=u{Q8nt zRrm9Bq^x-7M3>+i^wRrtw~c4d)I|itcYy)~!2a>pHa%ENxC~KgEcU{PO=@L)=0CsQ zZs4b(t*x!Do^Bc$0{o20WEMj{xHJSoTNFcwNSdu-Lb?kFR$j|xC6g7E=L1-t{dc(9 zB4GX!2J;_~0=-ZLZ6;jmToNno6sonu`2s;MxyceDr_}&!y(m9?Z0;E@S{+S*(_SIK z+7AHDoKbQCpv>pW`U{PBm_wpeAh2G;Zw+&Kbw0-`(y+!gR>xeGsu z)8drCv%QqP-HcJV3zl(RAXW{9D^~~qk^5Cbys7T!nY#&&_V7^%`nc5(MMvG@{vDtA BjkEv& literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-http-plus.png b/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..21f4549057eda211db1b6c385effa14fbe3c5786 GIT binary patch literal 9795 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 BjkEv& literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-https-plus.png b/tests/results/zero-downtime-scale/2.1.0/gradual-scale-up-https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..21f4549057eda211db1b6c385effa14fbe3c5786 GIT binary patch literal 9795 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 Date: Thu, 14 Aug 2025 12:34:32 -0600 Subject: [PATCH 06/22] Update NGINX and NGINX Agent (#3737) (#3738) Updating NGINX to 1.29.1 and NGINX Agent to 3.2.1 --- README.md | 2 +- build/Dockerfile.nginx | 4 ++-- build/Dockerfile.nginxplus | 2 +- go.mod | 2 +- go.sum | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 31ba187260..f51004a218 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ The following table lists the software versions NGINX Gateway Fabric supports. | NGINX Gateway Fabric | Gateway API | Kubernetes | NGINX OSS | NGINX Plus | NGINX Agent | |----------------------|-------------|------------|-----------|------------|-------------| -| Edge | 1.3.0 | 1.25+ | 1.29.0 | R35 | v3.2.0 | +| Edge | 1.3.0 | 1.25+ | 1.29.1 | R35 | v3.2.1 | | 2.0.2 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.1 | | 2.0.1 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.1 | | 2.0.0 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.0 | diff --git a/build/Dockerfile.nginx b/build/Dockerfile.nginx index 0b3ec641d2..f1aec01615 100644 --- a/build/Dockerfile.nginx +++ b/build/Dockerfile.nginx @@ -4,10 +4,10 @@ FROM scratch AS nginx-files # the following links can be replaced with local files if needed, i.e. ADD --chown=101:1001 ADD --link --chown=101:1001 https://cs.nginx.com/static/keys/nginx_signing.rsa.pub nginx_signing.rsa.pub -FROM nginx:1.29.0-alpine-otel +FROM nginx:1.29.1-alpine-otel # renovate: datasource=github-tags depName=nginx/agent -ARG NGINX_AGENT_VERSION=v3.2.0 +ARG NGINX_AGENT_VERSION=v3.2.1 ARG NJS_DIR ARG NGINX_CONF_DIR ARG BUILD_AGENT diff --git a/build/Dockerfile.nginxplus b/build/Dockerfile.nginxplus index 14642ad801..60ac79fcdf 100644 --- a/build/Dockerfile.nginxplus +++ b/build/Dockerfile.nginxplus @@ -8,7 +8,7 @@ FROM alpine:3.22 ARG NGINX_PLUS_VERSION=R35 # renovate: datasource=github-tags depName=nginx/agent -ARG NGINX_AGENT_VERSION=v3.2.0 +ARG NGINX_AGENT_VERSION=v3.2.1 ARG NJS_DIR ARG NGINX_CONF_DIR ARG BUILD_AGENT diff --git a/go.mod b/go.mod index 88f651efe8..10ed3e5f67 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/go-logr/logr v1.4.3 github.com/google/go-cmp v0.7.0 github.com/google/uuid v1.6.0 - github.com/nginx/agent/v3 v3.2.0 + github.com/nginx/agent/v3 v3.2.1 github.com/nginx/telemetry-exporter v0.1.4 github.com/onsi/ginkgo/v2 v2.23.4 github.com/onsi/gomega v1.38.0 diff --git a/go.sum b/go.sum index 106e4a655f..deda820a26 100644 --- a/go.sum +++ b/go.sum @@ -137,8 +137,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/nginx/agent/v3 v3.2.0 h1:4ANQFHL6waYW3zIGXORBNmFa8Uy2a+gvZPjBK4Q47+4= -github.com/nginx/agent/v3 v3.2.0/go.mod h1:Ey7T7/Mz3Nf0Lg09vYh1Feq8od2Vo3wk2xSBVS4b6Y8= +github.com/nginx/agent/v3 v3.2.1 h1:BT7l9q0SDFUth7pKoQg4Q44xTn5n+HXgfghnPvbzDzg= +github.com/nginx/agent/v3 v3.2.1/go.mod h1:w4mReHi5Icujz+1zFImvjx1FcVW9vSZliTsJVMz7l8w= github.com/nginx/telemetry-exporter v0.1.4 h1:3ikgKlyz/O57oaBLkxCInMjr74AhGTKr9rHdRAkkl/w= github.com/nginx/telemetry-exporter v0.1.4/go.mod h1:bl6qmsxgk4a9D0X8R5E3sUNXN2iECPEK1JNbRLhN5C4= github.com/nginxinc/nginx-plus-go-client/v2 v2.0.1 h1:5VVK38bnELMDWnwfF6dSv57ResXh9AUzeDa72ENj94o= From 9b7c9a88cfcc4fe47e20f6e68ae9cac45dfa5394 Mon Sep 17 00:00:00 2001 From: bjee19 <139261241+bjee19@users.noreply.github.com> Date: Thu, 14 Aug 2025 12:21:15 -0700 Subject: [PATCH 07/22] Release 2.1.0 (#3734) This PR updates all the necessary files for 2.1.0 release. --- CHANGELOG.md | 51 +++++++++++++++++++ Makefile | 2 +- README.md | 5 +- charts/nginx-gateway-fabric/Chart.yaml | 4 +- charts/nginx-gateway-fabric/README.md | 8 +-- .../nginx-gateway-fabric/values.schema.json | 8 +-- charts/nginx-gateway-fabric/values.yaml | 8 +-- deploy/azure/deploy.yaml | 38 +++++++------- deploy/default/deploy.yaml | 38 +++++++------- deploy/experimental-nginx-plus/deploy.yaml | 38 +++++++------- deploy/experimental/deploy.yaml | 38 +++++++------- deploy/nginx-plus/deploy.yaml | 38 +++++++------- deploy/nodeport/deploy.yaml | 38 +++++++------- deploy/openshift/deploy.yaml | 44 ++++++++-------- .../snippets-filters-nginx-plus/deploy.yaml | 38 +++++++------- deploy/snippets-filters/deploy.yaml | 38 +++++++------- 16 files changed, 243 insertions(+), 191 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2218798d5..db24562b8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,57 @@ This document includes a curated changelog for each release. We also publish a c a [GitHub release](https://github.com/nginx/nginx-gateway-fabric/releases), which, by contrast, is auto-generated and includes links to all PRs that went into the release. +## Release 2.1.0 + +_August 14, 2025_ + +FEATURES: + +- Add policyAffected status for policy target refs. [3535](https://github.com/nginx/nginx-gateway-fabric/pull/3535) +- Add support for appProtocol on BackendRefs which point to a Kubernetes Service with a specified appProtocol on the target Service Port. [3511](https://github.com/nginx/nginx-gateway-fabric/pull/3511) +- Support configurable hostPorts in NGINX container. [3321](https://github.com/nginx/nginx-gateway-fabric/pull/3321) +- Add support for configuring NGINX `worker_connections` directive. [3611](https://github.com/nginx/nginx-gateway-fabric/pull/3611) +- Add support for percentage based request mirroring. [3627](https://github.com/nginx/nginx-gateway-fabric/pull/3627) +- NGINX Pod now has a configurable readiness probe. [3629](https://github.com/nginx/nginx-gateway-fabric/pull/3629) +- Add the ability to patch the dataplane Service, Deployment, and DaemonSet resources through NginxProxy. [3630](https://github.com/nginx/nginx-gateway-fabric/pull/3630) +- Add disableSNIHostValidation field to NginxProxy CRD to resolve HTTP/2 connection reuse issues with wildcard certificates, with documented security trade-offs. [3659](https://github.com/nginx/nginx-gateway-fabric/pull/3659) +- Enable connection to NGINX One Console. [3676](https://github.com/nginx/nginx-gateway-fabric/pull/3676) +- Add HorizontalPodAutoscaling support for both control plane and data plane deployments. [3702](https://github.com/nginx/nginx-gateway-fabric/pull/3702). Thanks to [nowjean](https://github.com/nowjean). +- Set the OverlappingTLSConfig condition on Listeners with overlapping TLS hostnames. [3709](https://github.com/nginx/nginx-gateway-fabric/pull/3709) + +BUG FIXES: + +- Fix an issue where the NGINX Pod couldn't connect to control plane if multiple Pods shared the NGINX Pod's IP address. [3673](https://github.com/nginx/nginx-gateway-fabric/pull/3673) + +DOCUMENTATION: + +- Add simplified architecture diagrams for traffic flow and config changes. [3557](https://github.com/nginx/nginx-gateway-fabric/pull/3557) + +HELM CHART: + +- The version of the Helm chart is now 2.1.0. +- Allow users to specify nginxGateway.name to configure names of deployments. [3528](https://github.com/nginx/nginx-gateway-fabric/pull/3528) +- Fix Helm Schema for data plane volume mounts. [3588](https://github.com/nginx/nginx-gateway-fabric/pull/3588). Thanks to [vazkarvishal](https://github.com/vazkarvishal). +- Update Helm Chart README to recommend using server-side apply when applying NGF CRDs. [3589](https://github.com/nginx/nginx-gateway-fabric/pull/3589) + +UPGRADE: + +- **Important:** Upgrading from v2.0.x to 2.1 requires the NGINX Gateway Fabric control plane to be uninstalled and then reinstalled to avoid any downtime to user traffic. CRDs do not need to be removed. The NGINX data plane deployment is not affected by this process, and traffic should still flow uninterrupted. For more information on how to do so, view our guide on [Upgrading NGINX Gateway Fabric](https://docs.nginx.com/nginx-gateway-fabric/install/upgrade-version/) + +COMPATIBILITY: + +- Gateway API version: `1.3.0` +- NGINX version: `1.29.0` +- NGINX Plus version: `R35` +- NGINX Agent version: `v3.2.0` +- Kubernetes version: `1.25+` + +CONTAINER IMAGES: + +- Control plane: `ghcr.io/nginx/nginx-gateway-fabric:2.1.0` +- Data plane: `ghcr.io/nginx/nginx-gateway-fabric/nginx:2.1.0` +- Data plane with NGINX Plus: `private-registry.nginx.com/nginx-gateway-fabric/nginx-plus:2.1.0` + ## Release 2.0.2 _July 8, 2025_ diff --git a/Makefile b/Makefile index 10e04d2cda..349d6d327d 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # variables that should not be overridden by the user -VERSION = edge +VERSION = 2.1.0 SELF_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) CHART_DIR = $(SELF_DIR)charts/nginx-gateway-fabric NGINX_CONF_DIR = internal/controller/nginx/conf diff --git a/README.md b/README.md index f51004a218..4a0aa5600a 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ You can find the comprehensive NGINX Gateway Fabric user documentation on the [N We publish NGINX Gateway Fabric releases on GitHub. See our [releases page](https://github.com/nginx/nginx-gateway-fabric/releases). -The latest release is [2.0.2](https://github.com/nginx/nginx-gateway-fabric/releases/tag/v2.0.2). +The latest release is [2.1.0](https://github.com/nginx/nginx-gateway-fabric/releases/tag/v2.1.0). The edge version is useful for experimenting with new features that are not yet published in a release. To use, choose the _edge_ version built from the [latest commit](https://github.com/nginx/nginx-gateway-fabric/commits/main) @@ -47,7 +47,7 @@ to the correct versions: | Version | Description | Installation Manifests | Documentation and Examples | |----------------|------------------------------------------|--------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Latest release | For production use | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/v2.0.2/deploy). | [Documentation](https://docs.nginx.com/nginx-gateway-fabric). [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/v2.0.2/examples). | +| Latest release | For production use | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/v2.1.0/deploy). | [Documentation](https://docs.nginx.com/nginx-gateway-fabric). [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/v2.1.0/examples). | | Edge | For experimental use and latest features | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/main/deploy). | [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/main/examples). | ### Versioning @@ -69,6 +69,7 @@ The following table lists the software versions NGINX Gateway Fabric supports. | NGINX Gateway Fabric | Gateway API | Kubernetes | NGINX OSS | NGINX Plus | NGINX Agent | |----------------------|-------------|------------|-----------|------------|-------------| | Edge | 1.3.0 | 1.25+ | 1.29.1 | R35 | v3.2.1 | +| 2.1.0 | 1.3.0 | 1.25+ | 1.29.1 | R35 | v3.2.1 | | 2.0.2 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.1 | | 2.0.1 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.1 | | 2.0.0 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.0 | diff --git a/charts/nginx-gateway-fabric/Chart.yaml b/charts/nginx-gateway-fabric/Chart.yaml index b467f26415..37b33eefb1 100644 --- a/charts/nginx-gateway-fabric/Chart.yaml +++ b/charts/nginx-gateway-fabric/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: nginx-gateway-fabric description: NGINX Gateway Fabric type: application -version: 2.0.2 -appVersion: "edge" +version: 2.1.0 +appVersion: "2.1.0" kubeVersion: ">= 1.25.0-0" home: https://github.com/nginx/nginx-gateway-fabric icon: https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/main/charts/nginx-gateway-fabric/chart-icon.png diff --git a/charts/nginx-gateway-fabric/README.md b/charts/nginx-gateway-fabric/README.md index 6c7cbfc270..89811b8b38 100644 --- a/charts/nginx-gateway-fabric/README.md +++ b/charts/nginx-gateway-fabric/README.md @@ -1,7 +1,7 @@ # NGINX Gateway Fabric Helm Chart -![Version: 2.0.2](https://img.shields.io/badge/Version-2.0.2-informational?style=flat-square) ![AppVersion: edge](https://img.shields.io/badge/AppVersion-edge-informational?style=flat-square) +![Version: 2.1.0](https://img.shields.io/badge/Version-2.1.0-informational?style=flat-square) ![AppVersion: 2.1.0](https://img.shields.io/badge/AppVersion-2.1.0-informational?style=flat-square) - [NGINX Gateway Fabric Helm Chart](#nginx-gateway-fabric-helm-chart) - [Introduction](#introduction) @@ -264,7 +264,7 @@ The following table lists the configurable parameters of the NGINX Gateway Fabri | `certGenerator.ttlSecondsAfterFinished` | How long to wait after the cert generator job has finished before it is removed by the job controller. | int | `30` | | `clusterDomain` | The DNS cluster domain of your Kubernetes cluster. | string | `"cluster.local"` | | `gateways` | A list of Gateway objects. View https://gateway-api.sigs.k8s.io/reference/spec/#gateway for full Gateway reference. | list | `[]` | -| `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},"plus":false,"pod":{},"replicas":1,"service":{"externalTrafficPolicy":"Local","loadBalancerClass":"","loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":[],"type":"LoadBalancer"},"usage":{"caSecretName":"","clientSSLSecretName":"","endpoint":"","resolver":"","secretName":"nplus-license","skipVerify":false}}` | +| `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":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric/nginx","tag":"2.1.0"},"imagePullSecret":"","imagePullSecrets":[],"kind":"deployment","nginxOneConsole":{"dataplaneKeySecretName":"","endpointHost":"agent.connect.nginx.com","endpointPort":443,"skipVerify":false},"plus":false,"pod":{},"replicas":1,"service":{"externalTrafficPolicy":"Local","loadBalancerClass":"","loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":[],"type":"LoadBalancer"},"usage":{"caSecretName":"","clientSSLSecretName":"","endpoint":"","resolver":"","secretName":"nplus-license","skipVerify":false}}` | | `nginx.autoscaling` | Autoscaling configuration for the NGINX data plane. | object | `{"enable":false}` | | `nginx.autoscaling.enable` | Enable or disable Horizontal Pod Autoscaler for the NGINX data plane. | bool | `false` | | `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 | `{}` | @@ -299,7 +299,7 @@ The following table lists the configurable parameters of the NGINX Gateway Fabri | `nginx.usage.resolver` | The nameserver used to resolve the NGINX Plus usage reporting endpoint. Used with NGINX Instance Manager. | string | `""` | | `nginx.usage.secretName` | The name of the Secret containing the JWT for NGINX Plus usage reporting. Must exist in the same namespace that the NGINX Gateway Fabric control plane is running in (default namespace: nginx-gateway). | string | `"nplus-license"` | | `nginx.usage.skipVerify` | Disable client verification of the NGINX Plus usage reporting server certificate. | bool | `false` | -| `nginxGateway` | The nginxGateway section contains configuration for the NGINX Gateway Fabric control plane deployment. | object | `{"affinity":{},"autoscaling":{"enable":false},"config":{"logging":{"level":"info"}},"configAnnotations":{},"extraVolumeMounts":[],"extraVolumes":[],"gatewayClassAnnotations":{},"gatewayClassName":"nginx","gatewayControllerName":"gateway.nginx.org/nginx-gateway-controller","gwAPIExperimentalFeatures":{"enable":false},"image":{"pullPolicy":"Always","repository":"ghcr.io/nginx/nginx-gateway-fabric","tag":"edge"},"kind":"deployment","labels":{},"leaderElection":{"enable":true,"lockName":""},"lifecycle":{},"metrics":{"enable":true,"port":9113,"secure":false},"name":"","nodeSelector":{},"podAnnotations":{},"productTelemetry":{"enable":true},"readinessProbe":{"enable":true,"initialDelaySeconds":3,"port":8081},"replicas":1,"resources":{},"service":{"annotations":{},"labels":{}},"serviceAccount":{"annotations":{},"imagePullSecret":"","imagePullSecrets":[],"name":""},"snippetsFilters":{"enable":false},"terminationGracePeriodSeconds":30,"tolerations":[],"topologySpreadConstraints":[]}` | +| `nginxGateway` | The nginxGateway section contains configuration for the NGINX Gateway Fabric control plane deployment. | object | `{"affinity":{},"autoscaling":{"enable":false},"config":{"logging":{"level":"info"}},"configAnnotations":{},"extraVolumeMounts":[],"extraVolumes":[],"gatewayClassAnnotations":{},"gatewayClassName":"nginx","gatewayControllerName":"gateway.nginx.org/nginx-gateway-controller","gwAPIExperimentalFeatures":{"enable":false},"image":{"pullPolicy":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric","tag":"2.1.0"},"kind":"deployment","labels":{},"leaderElection":{"enable":true,"lockName":""},"lifecycle":{},"metrics":{"enable":true,"port":9113,"secure":false},"name":"","nodeSelector":{},"podAnnotations":{},"productTelemetry":{"enable":true},"readinessProbe":{"enable":true,"initialDelaySeconds":3,"port":8081},"replicas":1,"resources":{},"service":{"annotations":{},"labels":{}},"serviceAccount":{"annotations":{},"imagePullSecret":"","imagePullSecrets":[],"name":""},"snippetsFilters":{"enable":false},"terminationGracePeriodSeconds":30,"tolerations":[],"topologySpreadConstraints":[]}` | | `nginxGateway.affinity` | The affinity of the NGINX Gateway Fabric control plane pod. | object | `{}` | | `nginxGateway.autoscaling` | Autoscaling configuration for the NGINX Gateway Fabric control plane. | object | `{"enable":false}` | | `nginxGateway.autoscaling.enable` | Enable or disable Horizontal Pod Autoscaler for the control plane. | bool | `false` | @@ -311,7 +311,7 @@ The following table lists the configurable parameters of the NGINX Gateway Fabri | `nginxGateway.gatewayClassName` | The name of the GatewayClass that will be created as part of this release. Every NGINX Gateway Fabric must have a unique corresponding GatewayClass resource. NGINX Gateway Fabric only processes resources that belong to its class - i.e. have the "gatewayClassName" field resource equal to the class. | string | `"nginx"` | | `nginxGateway.gatewayControllerName` | The name of the Gateway controller. The controller name must be of the form: DOMAIN/PATH. The controller's domain is gateway.nginx.org. | string | `"gateway.nginx.org/nginx-gateway-controller"` | | `nginxGateway.gwAPIExperimentalFeatures.enable` | Enable the experimental features of Gateway API which are supported by NGINX Gateway Fabric. Requires the Gateway APIs installed from the experimental channel. | bool | `false` | -| `nginxGateway.image` | The image configuration for the NGINX Gateway Fabric control plane. | object | `{"pullPolicy":"Always","repository":"ghcr.io/nginx/nginx-gateway-fabric","tag":"edge"}` | +| `nginxGateway.image` | The image configuration for the NGINX Gateway Fabric control plane. | object | `{"pullPolicy":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric","tag":"2.1.0"}` | | `nginxGateway.image.repository` | The NGINX Gateway Fabric image to use | string | `"ghcr.io/nginx/nginx-gateway-fabric"` | | `nginxGateway.kind` | The kind of the NGINX Gateway Fabric installation - currently, only deployment is supported. | string | `"deployment"` | | `nginxGateway.labels` | Set of labels to be added for NGINX Gateway Fabric deployment. | object | `{}` | diff --git a/charts/nginx-gateway-fabric/values.schema.json b/charts/nginx-gateway-fabric/values.schema.json index 7a2b269134..d4d357252f 100644 --- a/charts/nginx-gateway-fabric/values.schema.json +++ b/charts/nginx-gateway-fabric/values.schema.json @@ -407,7 +407,7 @@ "image": { "properties": { "pullPolicy": { - "default": "Always", + "default": "IfNotPresent", "enum": [ "Always", "IfNotPresent", @@ -424,7 +424,7 @@ "type": "string" }, "tag": { - "default": "edge", + "default": "2.1.0", "required": [], "title": "tag", "type": "string" @@ -761,7 +761,7 @@ "description": "The image configuration for the NGINX Gateway Fabric control plane.", "properties": { "pullPolicy": { - "default": "Always", + "default": "IfNotPresent", "enum": [ "Always", "IfNotPresent", @@ -778,7 +778,7 @@ "type": "string" }, "tag": { - "default": "edge", + "default": "2.1.0", "required": [], "title": "tag", "type": "string" diff --git a/charts/nginx-gateway-fabric/values.yaml b/charts/nginx-gateway-fabric/values.yaml index 79d259a26d..6a95bff8f0 100644 --- a/charts/nginx-gateway-fabric/values.yaml +++ b/charts/nginx-gateway-fabric/values.yaml @@ -116,14 +116,14 @@ nginxGateway: image: # -- The NGINX Gateway Fabric image to use repository: ghcr.io/nginx/nginx-gateway-fabric - tag: edge + tag: 2.1.0 # @schema # enum: # - Always # - IfNotPresent # - Never # @schema - pullPolicy: Always + pullPolicy: IfNotPresent productTelemetry: # -- Enable the collection of product telemetry. @@ -262,14 +262,14 @@ nginx: image: # -- The NGINX image to use. repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: edge + tag: 2.1.0 # @schema # enum: # - Always # - IfNotPresent # - Never # @schema - pullPolicy: Always + pullPolicy: IfNotPresent # -- Is NGINX Plus image being used. plus: false diff --git a/deploy/azure/deploy.yaml b/deploy/azure/deploy.yaml index 12ddab6742..e5aa87a81e 100644 --- a/deploy/azure/deploy.yaml +++ b/deploy/azure/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway rules: - apiGroups: @@ -182,7 +182,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -200,7 +200,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -217,7 +217,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -237,7 +237,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -285,9 +285,9 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:edge - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - containerPort: 8443 @@ -333,7 +333,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -353,8 +353,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: cert-generator securityContext: allowPrivilegeEscalation: false @@ -379,7 +379,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -395,7 +395,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -408,7 +408,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -416,9 +416,9 @@ spec: deployment: container: image: - pullPolicy: Always + pullPolicy: IfNotPresent repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: edge + tag: 2.1.0 pod: nodeSelector: kubernetes.io/os: linux diff --git a/deploy/default/deploy.yaml b/deploy/default/deploy.yaml index 3da8598bfd..9f22158f05 100644 --- a/deploy/default/deploy.yaml +++ b/deploy/default/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway rules: - apiGroups: @@ -182,7 +182,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -200,7 +200,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -217,7 +217,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -237,7 +237,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -285,9 +285,9 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:edge - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - containerPort: 8443 @@ -331,7 +331,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -351,8 +351,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: cert-generator securityContext: allowPrivilegeEscalation: false @@ -377,7 +377,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -393,7 +393,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -406,7 +406,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -414,9 +414,9 @@ spec: deployment: container: image: - pullPolicy: Always + pullPolicy: IfNotPresent repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: edge + tag: 2.1.0 replicas: 1 service: externalTrafficPolicy: Local diff --git a/deploy/experimental-nginx-plus/deploy.yaml b/deploy/experimental-nginx-plus/deploy.yaml index 5b478afd22..ebabf4525f 100644 --- a/deploy/experimental-nginx-plus/deploy.yaml +++ b/deploy/experimental-nginx-plus/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway rules: - apiGroups: @@ -186,7 +186,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -204,7 +204,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -221,7 +221,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -241,7 +241,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -293,9 +293,9 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:edge - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - containerPort: 8443 @@ -339,7 +339,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -359,8 +359,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: cert-generator securityContext: allowPrivilegeEscalation: false @@ -385,7 +385,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -401,7 +401,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -414,7 +414,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -422,9 +422,9 @@ spec: deployment: container: image: - pullPolicy: Always + pullPolicy: IfNotPresent repository: private-registry.nginx.com/nginx-gateway-fabric/nginx-plus - tag: edge + tag: 2.1.0 replicas: 1 service: externalTrafficPolicy: Local diff --git a/deploy/experimental/deploy.yaml b/deploy/experimental/deploy.yaml index cf774bc07b..77a4932da5 100644 --- a/deploy/experimental/deploy.yaml +++ b/deploy/experimental/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway rules: - apiGroups: @@ -186,7 +186,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -204,7 +204,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -221,7 +221,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -241,7 +241,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -290,9 +290,9 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:edge - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - containerPort: 8443 @@ -336,7 +336,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -356,8 +356,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: cert-generator securityContext: allowPrivilegeEscalation: false @@ -382,7 +382,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -398,7 +398,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -411,7 +411,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -419,9 +419,9 @@ spec: deployment: container: image: - pullPolicy: Always + pullPolicy: IfNotPresent repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: edge + tag: 2.1.0 replicas: 1 service: externalTrafficPolicy: Local diff --git a/deploy/nginx-plus/deploy.yaml b/deploy/nginx-plus/deploy.yaml index c82a24e0e9..1e8fdb6079 100644 --- a/deploy/nginx-plus/deploy.yaml +++ b/deploy/nginx-plus/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway rules: - apiGroups: @@ -182,7 +182,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -200,7 +200,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -217,7 +217,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -237,7 +237,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -288,9 +288,9 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:edge - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - containerPort: 8443 @@ -334,7 +334,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -354,8 +354,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: cert-generator securityContext: allowPrivilegeEscalation: false @@ -380,7 +380,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -396,7 +396,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -409,7 +409,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -417,9 +417,9 @@ spec: deployment: container: image: - pullPolicy: Always + pullPolicy: IfNotPresent repository: private-registry.nginx.com/nginx-gateway-fabric/nginx-plus - tag: edge + tag: 2.1.0 replicas: 1 service: externalTrafficPolicy: Local diff --git a/deploy/nodeport/deploy.yaml b/deploy/nodeport/deploy.yaml index 438e6f975d..21d8e7fb96 100644 --- a/deploy/nodeport/deploy.yaml +++ b/deploy/nodeport/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway rules: - apiGroups: @@ -182,7 +182,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -200,7 +200,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -217,7 +217,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -237,7 +237,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -285,9 +285,9 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:edge - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - containerPort: 8443 @@ -331,7 +331,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -351,8 +351,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: cert-generator securityContext: allowPrivilegeEscalation: false @@ -377,7 +377,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -393,7 +393,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -406,7 +406,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -414,9 +414,9 @@ spec: deployment: container: image: - pullPolicy: Always + pullPolicy: IfNotPresent repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: edge + tag: 2.1.0 replicas: 1 service: externalTrafficPolicy: Local diff --git a/deploy/openshift/deploy.yaml b/deploy/openshift/deploy.yaml index cc05b461b0..95f890c6c3 100644 --- a/deploy/openshift/deploy.yaml +++ b/deploy/openshift/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway rules: - apiGroups: @@ -203,7 +203,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -221,7 +221,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -238,7 +238,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -258,7 +258,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -307,9 +307,9 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:edge - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - containerPort: 8443 @@ -353,7 +353,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -373,8 +373,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: cert-generator securityContext: allowPrivilegeEscalation: false @@ -399,7 +399,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -415,7 +415,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -428,7 +428,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -436,9 +436,9 @@ spec: deployment: container: image: - pullPolicy: Always + pullPolicy: IfNotPresent repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: edge + tag: 2.1.0 replicas: 1 service: externalTrafficPolicy: Local @@ -462,7 +462,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-scc readOnlyRootFilesystem: true requiredDropCapabilities: @@ -503,7 +503,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-scc-cert-generator readOnlyRootFilesystem: true requiredDropCapabilities: @@ -544,7 +544,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-scc-nginx readOnlyRootFilesystem: true requiredDropCapabilities: diff --git a/deploy/snippets-filters-nginx-plus/deploy.yaml b/deploy/snippets-filters-nginx-plus/deploy.yaml index 79b8a2bf0f..2110ac1884 100644 --- a/deploy/snippets-filters-nginx-plus/deploy.yaml +++ b/deploy/snippets-filters-nginx-plus/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway rules: - apiGroups: @@ -184,7 +184,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -202,7 +202,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -219,7 +219,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -239,7 +239,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -291,9 +291,9 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:edge - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - containerPort: 8443 @@ -337,7 +337,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -357,8 +357,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: cert-generator securityContext: allowPrivilegeEscalation: false @@ -383,7 +383,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -399,7 +399,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -412,7 +412,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -420,9 +420,9 @@ spec: deployment: container: image: - pullPolicy: Always + pullPolicy: IfNotPresent repository: private-registry.nginx.com/nginx-gateway-fabric/nginx-plus - tag: edge + tag: 2.1.0 replicas: 1 service: externalTrafficPolicy: Local diff --git a/deploy/snippets-filters/deploy.yaml b/deploy/snippets-filters/deploy.yaml index dc4cf56dd7..3cc3db846d 100644 --- a/deploy/snippets-filters/deploy.yaml +++ b/deploy/snippets-filters/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway rules: - apiGroups: @@ -184,7 +184,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -202,7 +202,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -219,7 +219,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -239,7 +239,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway namespace: nginx-gateway spec: @@ -288,9 +288,9 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:edge - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: nginx-gateway ports: - containerPort: 8443 @@ -334,7 +334,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -354,8 +354,8 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:edge - imagePullPolicy: Always + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + imagePullPolicy: IfNotPresent name: cert-generator securityContext: allowPrivilegeEscalation: false @@ -380,7 +380,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -396,7 +396,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -409,7 +409,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: edge + app.kubernetes.io/version: 2.1.0 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -417,9 +417,9 @@ spec: deployment: container: image: - pullPolicy: Always + pullPolicy: IfNotPresent repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: edge + tag: 2.1.0 replicas: 1 service: externalTrafficPolicy: Local From b504a0eaca727cef264791b5ae0e5d2877c16b5a Mon Sep 17 00:00:00 2001 From: Saylor Berman Date: Wed, 20 Aug 2025 16:53:56 -0600 Subject: [PATCH 08/22] fix: remove patch label/ annotation cross contamination (#3754) (#3766) Problem: Patching the Service object labels and annotations results in the Deployment also getting these labels and annotations, and vice versa, which is unexpected behavior. Solution: Create separate copies of the base label and annotation maps for each object. Since maps are passed by reference in Go, modifying the labels for one object was affecting the other by updating the shared reference. Co-authored-by: Ciara Stacke <18287516+ciarams87@users.noreply.github.com> --- internal/controller/provisioner/objects.go | 19 +++++- .../controller/provisioner/objects_test.go | 58 +++++++++++++++++++ 2 files changed, 75 insertions(+), 2 deletions(-) diff --git a/internal/controller/provisioner/objects.go b/internal/controller/provisioner/objects.go index 6abe6f230c..14b3cbcc72 100644 --- a/internal/controller/provisioner/objects.go +++ b/internal/controller/provisioner/objects.go @@ -152,13 +152,28 @@ func (p *NginxProvisioner) buildNginxResourceObjects( ports[int32(listener.Port)] = struct{}{} } - service, err := buildNginxService(objectMeta, nProxyCfg, ports, selectorLabels) + // Create separate copies of objectMeta for service and deployment to avoid shared map references + serviceObjectMeta := metav1.ObjectMeta{ + Name: objectMeta.Name, + Namespace: objectMeta.Namespace, + Labels: maps.Clone(objectMeta.Labels), + Annotations: maps.Clone(objectMeta.Annotations), + } + + deploymentObjectMeta := metav1.ObjectMeta{ + Name: objectMeta.Name, + Namespace: objectMeta.Namespace, + Labels: maps.Clone(objectMeta.Labels), + Annotations: maps.Clone(objectMeta.Annotations), + } + + service, err := buildNginxService(serviceObjectMeta, nProxyCfg, ports, selectorLabels) if err != nil { errs = append(errs, err) } deployment, err := p.buildNginxDeployment( - objectMeta, + deploymentObjectMeta, nProxyCfg, ngxIncludesConfigMapName, ngxAgentConfigMapName, diff --git a/internal/controller/provisioner/objects_test.go b/internal/controller/provisioner/objects_test.go index 600ff5d87f..4af6f2deca 100644 --- a/internal/controller/provisioner/objects_test.go +++ b/internal/controller/provisioner/objects_test.go @@ -1696,4 +1696,62 @@ func TestBuildNginxResourceObjects_Patches(t *testing.T) { } g.Expect(svc).ToNot(BeNil()) g.Expect(svc.Labels).ToNot(HaveKey("patched")) // Should not have patch-related labels + + // Test that Service patches don't affect Deployment labels and vice versa (cross-contamination) + nProxyCfg = &graph.EffectiveNginxProxy{ + Kubernetes: &ngfAPIv1alpha2.KubernetesSpec{ + Service: &ngfAPIv1alpha2.ServiceSpec{ + Patches: []ngfAPIv1alpha2.Patch{ + { + Type: helpers.GetPointer(ngfAPIv1alpha2.PatchTypeStrategicMerge), + Value: &apiextv1.JSON{ + Raw: []byte(`{"metadata":{"labels":{"service-only":"true"}}}`), + }, + }, + }, + }, + Deployment: &ngfAPIv1alpha2.DeploymentSpec{ + Patches: []ngfAPIv1alpha2.Patch{ + { + Type: helpers.GetPointer(ngfAPIv1alpha2.PatchTypeStrategicMerge), + Value: &apiextv1.JSON{ + Raw: []byte(`{"metadata":{"labels":{"deployment-only":"true"}}}`), + }, + }, + }, + }, + }, + } + + objects, err = provisioner.buildNginxResourceObjects("gw-nginx", gateway, nProxyCfg) + g.Expect(err).ToNot(HaveOccurred()) + g.Expect(objects).To(HaveLen(6)) + + // Find and validate service - should only have service-specific labels + svc = nil + for _, obj := range objects { + if s, ok := obj.(*corev1.Service); ok { + svc = s + break + } + } + g.Expect(svc).ToNot(BeNil()) + g.Expect(svc.Labels).To(HaveKeyWithValue("service-only", "true")) + g.Expect(svc.Labels).ToNot(HaveKey("deployment-only")) + + // Find and validate deployment - should only have deployment-specific labels + dep = nil + for _, obj := range objects { + if d, ok := obj.(*appsv1.Deployment); ok { + dep = d + break + } + } + g.Expect(dep).ToNot(BeNil()) + g.Expect(dep.Labels).To(HaveKeyWithValue("deployment-only", "true")) + g.Expect(dep.Labels).ToNot(HaveKey("service-only")) + + // Both should still have the common base labels + g.Expect(svc.Labels).To(HaveKeyWithValue("app", "nginx")) + g.Expect(dep.Labels).To(HaveKeyWithValue("app", "nginx")) } From f72ddc92fae3ed696fd475b3b00e8cd9fad9475c Mon Sep 17 00:00:00 2001 From: Saylor Berman Date: Wed, 20 Aug 2025 17:59:53 -0600 Subject: [PATCH 09/22] fix: host readiness probe on ipv6 in addition to ipv4 (#3765) (#3767) Problem: the readiness probe endpoint is not available on IPv6. This is a problem on IPv6 only clusters when using IPv6 for the pod network. The gateway pod refuses to come up because the readyz condition never fulfills. Example: ``` Warning Unhealthy 88s (x160 over 26m) kubelet Readiness probe failed: Get "http://[fdd3:7046:2ad5:430a:39bb:bc6d:e254:a621]:8081/readyz": dial tcp [fdd3:7046:2ad5:430a:39bb:bc6d:e254:a621]:8081: connect: connection refused ``` Solution: host the readyz endpoint on IPv6 as well. Co-authored-by: Lucas Pape --- .../nginx/config/base_http_config.go | 4 +- .../nginx/config/base_http_config_template.go | 5 ++ .../nginx/config/base_http_config_test.go | 58 +++++++++++++++++-- 3 files changed, 60 insertions(+), 7 deletions(-) diff --git a/internal/controller/nginx/config/base_http_config.go b/internal/controller/nginx/config/base_http_config.go index ece5a30999..bdbb1ee29b 100644 --- a/internal/controller/nginx/config/base_http_config.go +++ b/internal/controller/nginx/config/base_http_config.go @@ -12,8 +12,9 @@ var baseHTTPTemplate = gotemplate.Must(gotemplate.New("baseHttp").Parse(baseHTTP type httpConfig struct { Includes []shared.Include - HTTP2 bool NginxReadinessProbePort int32 + IPFamily shared.IPFamily + HTTP2 bool } func executeBaseHTTPConfig(conf dataplane.Configuration) []executeResult { @@ -23,6 +24,7 @@ func executeBaseHTTPConfig(conf dataplane.Configuration) []executeResult { HTTP2: conf.BaseHTTPConfig.HTTP2, Includes: includes, NginxReadinessProbePort: conf.BaseHTTPConfig.NginxReadinessProbePort, + IPFamily: getIPFamily(conf.BaseHTTPConfig), } results := make([]executeResult, 0, len(includes)+1) diff --git a/internal/controller/nginx/config/base_http_config_template.go b/internal/controller/nginx/config/base_http_config_template.go index 169b876a30..27adb7360e 100644 --- a/internal/controller/nginx/config/base_http_config_template.go +++ b/internal/controller/nginx/config/base_http_config_template.go @@ -26,7 +26,12 @@ map $request_uri $request_uri_path { # NGINX health check server block. server { + {{- if $.IPFamily.IPv4 }} listen {{ .NginxReadinessProbePort }}; + {{- end }} + {{- if $.IPFamily.IPv6 }} + listen [::]:{{ .NginxReadinessProbePort }}; + {{- end }} location = /readyz { access_log off; diff --git a/internal/controller/nginx/config/base_http_config_test.go b/internal/controller/nginx/config/base_http_config_test.go index c93d5628b3..deb58def53 100644 --- a/internal/controller/nginx/config/base_http_config_test.go +++ b/internal/controller/nginx/config/base_http_config_test.go @@ -117,17 +117,32 @@ func TestExecuteBaseHttp_NginxReadinessProbePort(t *testing.T) { }, } - customConfig := dataplane.Configuration{ + customPortConfig := dataplane.Configuration{ BaseHTTPConfig: dataplane.BaseHTTPConfig{ NginxReadinessProbePort: 9090, }, } + customIPv4Config := dataplane.Configuration{ + BaseHTTPConfig: dataplane.BaseHTTPConfig{ + NginxReadinessProbePort: dataplane.DefaultNginxReadinessProbePort, + IPFamily: dataplane.IPv4, + }, + } + + customIPv6Config := dataplane.Configuration{ + BaseHTTPConfig: dataplane.BaseHTTPConfig{ + NginxReadinessProbePort: dataplane.DefaultNginxReadinessProbePort, + IPFamily: dataplane.IPv6, + }, + } + tests := []struct { - name string - expectedPort string - expectedListen string - conf dataplane.Configuration + name string + expectedPort string + expectedListen string + expectedNoListen string + conf dataplane.Configuration }{ { name: "default nginx readiness probe port", @@ -135,12 +150,38 @@ func TestExecuteBaseHttp_NginxReadinessProbePort(t *testing.T) { expectedPort: "8081", expectedListen: "listen 8081;", }, + { + name: "default nginx readiness probe port on ipv6", + conf: defaultConfig, + expectedPort: "8081", + expectedListen: "listen [::]:8081;", + }, { name: "custom nginx readiness probe 9090", - conf: customConfig, + conf: customPortConfig, expectedPort: "9090", expectedListen: "listen 9090;", }, + { + name: "custom nginx readiness probe 9090 on ipv6", + conf: customPortConfig, + expectedPort: "9090", + expectedListen: "listen [::]:9090;", + }, + { + name: "custom ipv4 nginx readiness probe does not have ipv6 listen", + conf: customIPv4Config, + expectedPort: "8081", + expectedListen: "listen 8081;", + expectedNoListen: "listen [::]:8081;", + }, + { + name: "custom ipv6 nginx readiness probe does not have ipv4 listen", + conf: customIPv6Config, + expectedPort: "8081", + expectedListen: "listen [::]:8081;", + expectedNoListen: "listen 8081;", + }, } for _, test := range tests { @@ -156,6 +197,11 @@ func TestExecuteBaseHttp_NginxReadinessProbePort(t *testing.T) { // check that the listen directive contains the expected port g.Expect(httpConfig).To(ContainSubstring(test.expectedListen)) + // check that an additional listen directive is NOT set + if test.expectedNoListen != "" { + g.Expect(httpConfig).ToNot(ContainSubstring(test.expectedNoListen)) + } + // check that the health check server block is present g.Expect(httpConfig).To(ContainSubstring("server {")) g.Expect(httpConfig).To(ContainSubstring("access_log off;")) From 09259048744b4f8b4b8c9d5244b840f4720ff101 Mon Sep 17 00:00:00 2001 From: Saloni Choudhary <146118978+salonichf5@users.noreply.github.com> Date: Fri, 22 Aug 2025 03:42:48 +0530 Subject: [PATCH 10/22] Add patches to helm chart spec (#3773) (#3777) Problem: Users want a way to specify patches for service , deployment and daemonSet in the helm chart spec Solution: Added patches field in helm chart spec --- charts/nginx-gateway-fabric/README.md | 6 ++++-- .../templates/nginxproxy.yaml | 8 ++++++++ charts/nginx-gateway-fabric/values.schema.json | 18 ++++++++++++++++++ charts/nginx-gateway-fabric/values.yaml | 18 ++++++++++++++++++ 4 files changed, 48 insertions(+), 2 deletions(-) diff --git a/charts/nginx-gateway-fabric/README.md b/charts/nginx-gateway-fabric/README.md index 89811b8b38..18c9bfe1a9 100644 --- a/charts/nginx-gateway-fabric/README.md +++ b/charts/nginx-gateway-fabric/README.md @@ -264,7 +264,7 @@ The following table lists the configurable parameters of the NGINX Gateway Fabri | `certGenerator.ttlSecondsAfterFinished` | How long to wait after the cert generator job has finished before it is removed by the job controller. | int | `30` | | `clusterDomain` | The DNS cluster domain of your Kubernetes cluster. | string | `"cluster.local"` | | `gateways` | A list of Gateway objects. View https://gateway-api.sigs.k8s.io/reference/spec/#gateway for full Gateway reference. | list | `[]` | -| `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":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric/nginx","tag":"2.1.0"},"imagePullSecret":"","imagePullSecrets":[],"kind":"deployment","nginxOneConsole":{"dataplaneKeySecretName":"","endpointHost":"agent.connect.nginx.com","endpointPort":443,"skipVerify":false},"plus":false,"pod":{},"replicas":1,"service":{"externalTrafficPolicy":"Local","loadBalancerClass":"","loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePorts":[],"type":"LoadBalancer"},"usage":{"caSecretName":"","clientSSLSecretName":"","endpoint":"","resolver":"","secretName":"nplus-license","skipVerify":false}}` | +| `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":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric/nginx","tag":"2.1.0"},"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":"","resolver":"","secretName":"nplus-license","skipVerify":false}}` | | `nginx.autoscaling` | Autoscaling configuration for the NGINX data plane. | object | `{"enable":false}` | | `nginx.autoscaling.enable` | Enable or disable Horizontal Pod Autoscaler for the NGINX data plane. | bool | `false` | | `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 | `{}` | @@ -283,15 +283,17 @@ The following table lists the configurable parameters of the NGINX Gateway Fabri | `nginx.nginxOneConsole.endpointHost` | The Endpoint host that the NGINX One Console telemetry metrics will be sent to. | string | `"agent.connect.nginx.com"` | | `nginx.nginxOneConsole.endpointPort` | The endpoint port that the NGINX One Console telemetry metrics will be sent to. | int | `443` | | `nginx.nginxOneConsole.skipVerify` | Skip TLS verification for NGINX One Console connections. | bool | `false` | +| `nginx.patches` | Custom patches to apply to the NGINX Deployment/DaemonSet. | list | `[]` | | `nginx.plus` | Is NGINX Plus image being used. | bool | `false` | | `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 | `{}` | | `nginx.replicas` | The number of replicas of the NGINX Deployment. This value is ignored if autoscaling.enable is true. | int | `1` | -| `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":[],"type":"LoadBalancer"}` | +| `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"}` | | `nginx.service.externalTrafficPolicy` | The externalTrafficPolicy of the service. The value Local preserves the client source IP. | string | `"Local"` | | `nginx.service.loadBalancerClass` | LoadBalancerClass is the class of the load balancer implementation this Service belongs to. Requires nginx.service.type set to LoadBalancer. | string | `""` | | `nginx.service.loadBalancerIP` | The static IP address for the load balancer. Requires nginx.service.type set to LoadBalancer. | string | `""` | | `nginx.service.loadBalancerSourceRanges` | The IP ranges (CIDR) that are allowed to access the load balancer. Requires nginx.service.type set to LoadBalancer. | list | `[]` | | `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 | `[]` | +| `nginx.service.patches` | Custom patches to apply to the NGINX Service. | list | `[]` | | `nginx.service.type` | The type of service to create for the NGINX data plane. | string | `"LoadBalancer"` | | `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 | `""` | | `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 | `""` | diff --git a/charts/nginx-gateway-fabric/templates/nginxproxy.yaml b/charts/nginx-gateway-fabric/templates/nginxproxy.yaml index 8862d866ec..366b6ce1e9 100644 --- a/charts/nginx-gateway-fabric/templates/nginxproxy.yaml +++ b/charts/nginx-gateway-fabric/templates/nginxproxy.yaml @@ -53,6 +53,10 @@ spec: {{- if .Values.nginx.debug }} debug: {{ .Values.nginx.debug }} {{- end }} + {{- if .Values.nginx.patches }} + patches: + {{- toYaml .Values.nginx.patches | nindent 8 }} + {{- end }} {{- end }} {{- if eq .Values.nginx.kind "daemonSet" }} daemonSet: @@ -72,6 +76,10 @@ spec: {{- if .Values.nginx.debug }} debug: {{ .Values.nginx.debug }} {{- end }} + {{- if .Values.nginx.patches }} + patches: + {{- toYaml .Values.nginx.patches | nindent 8 }} + {{- end }} {{- end }} {{- if .Values.nginx.service }} service: diff --git a/charts/nginx-gateway-fabric/values.schema.json b/charts/nginx-gateway-fabric/values.schema.json index d4d357252f..8aa53b551b 100644 --- a/charts/nginx-gateway-fabric/values.schema.json +++ b/charts/nginx-gateway-fabric/values.schema.json @@ -498,6 +498,15 @@ "title": "nginxOneConsole", "type": "object" }, + "patches": { + "description": "Custom patches to apply to the NGINX Deployment/DaemonSet.", + "items": { + "required": [] + }, + "required": [], + "title": "patches", + "type": "array" + }, "plus": { "default": false, "description": "Is NGINX Plus image being used.", @@ -578,6 +587,15 @@ "title": "nodePorts", "type": "array" }, + "patches": { + "description": "Custom patches to apply to the NGINX Service.", + "items": { + "required": [] + }, + "required": [], + "title": "patches", + "type": "array" + }, "type": { "default": "LoadBalancer", "description": "The type of service to create for the NGINX data plane.", diff --git a/charts/nginx-gateway-fabric/values.yaml b/charts/nginx-gateway-fabric/values.yaml index 6a95bff8f0..d5ea50fc08 100644 --- a/charts/nginx-gateway-fabric/values.yaml +++ b/charts/nginx-gateway-fabric/values.yaml @@ -229,6 +229,15 @@ nginx: # -- The number of replicas of the NGINX Deployment. This value is ignored if autoscaling.enable is true. replicas: 1 + # -- Custom patches to apply to the NGINX Deployment/DaemonSet. + patches: [] + # -- Example: + # - type: StrategicMerge + # value: + # metadata: + # labels: + # team: "nginx-gateway-fabric" + # -- Autoscaling configuration for the NGINX data plane. autoscaling: # -- Enable or disable Horizontal Pod Autoscaler for the NGINX data plane. @@ -592,6 +601,15 @@ nginx: # - port: 30025 # listenerPort: 80 + # -- Custom patches to apply to the NGINX Service. + patches: [] + # -- Example: + # - type: JSONPatch + # value: + # - op: replace + # path: /spec/sessionAffinity + # value: "ClientIP" + # -- Enable debugging for NGINX. Uses the nginx-debug binary. The NGINX error log level should be set to debug in the NginxProxy resource. debug: false From 7607c01f1b0864b4759d094b882cfff52ea15530 Mon Sep 17 00:00:00 2001 From: Shaun Date: Fri, 29 Aug 2025 20:06:36 +0100 Subject: [PATCH 11/22] Prevent policy `includes` duplication in advanced routing configuration (#3799) (#3819) --- .../state/dataplane/configuration.go | 2 +- .../state/dataplane/configuration_test.go | 99 +++++++++++++++++++ 2 files changed, 100 insertions(+), 1 deletion(-) diff --git a/internal/controller/state/dataplane/configuration.go b/internal/controller/state/dataplane/configuration.go index 29ba14d15e..873c3df12d 100644 --- a/internal/controller/state/dataplane/configuration.go +++ b/internal/controller/state/dataplane/configuration.go @@ -581,10 +581,10 @@ func (hpr *hostPathRules) upsertRoute( if !exist { hostRule.Path = path hostRule.PathType = convertPathType(*m.Path.Type) + hostRule.Policies = append(hostRule.Policies, pols...) } hostRule.GRPC = GRPC - hostRule.Policies = append(hostRule.Policies, pols...) hostRule.MatchRules = append(hostRule.MatchRules, MatchRule{ Source: objectSrc, diff --git a/internal/controller/state/dataplane/configuration_test.go b/internal/controller/state/dataplane/configuration_test.go index 9b3b190759..9d67eeacb5 100644 --- a/internal/controller/state/dataplane/configuration_test.go +++ b/internal/controller/state/dataplane/configuration_test.go @@ -678,6 +678,37 @@ func TestBuildConfiguration(t *testing.T) { }, ) + hrAdvancedRouteWithPolicyAndHeaderMatch, + groupsHRAdvancedWithHeaderMatch, + routeHRAdvancedWithHeaderMatch := createTestResources( + "hr-advanced-route-with-policy-header-match", + "policy.com", + "listener-80-1", + pathAndType{path: "/rest", pathType: prefix}, + ) + + pathMatch := helpers.GetPointer(v1.HTTPPathMatch{ + Value: helpers.GetPointer("/rest"), + Type: helpers.GetPointer(v1.PathMatchPathPrefix), + }) + + routeHRAdvancedWithHeaderMatch.Spec.Rules[0].Matches = []v1.HTTPRouteMatch{ + { + Path: pathMatch, + Headers: []v1.HTTPHeaderMatch{ + { + Name: "Referrer", + Type: helpers.GetPointer(v1.HeaderMatchRegularExpression), + Value: "(?i)(mydomain|myotherdomain).+\\.example\\.(cloud|com)", + }, + }, + }, + { + Path: pathMatch, + }, + } + routeHRAdvancedWithHeaderMatch.Spec.Hostnames = []v1.Hostname{"policy.com"} + l7RouteWithPolicy.Policies = []*graph.Policy{hrPolicy1, invalidPolicy} httpsHRWithPolicy, expHTTPSHRWithPolicyGroups, l7HTTPSRouteWithPolicy := createTestResources( @@ -2344,6 +2375,74 @@ func TestBuildConfiguration(t *testing.T) { }), msg: "Simple Gateway and HTTPRoute with policies attached", }, + { + graph: getModifiedGraph(func(g *graph.Graph) *graph.Graph { + gw := g.Gateways[gatewayNsName] + gw.Listeners = append(gw.Listeners, []*graph.Listener{ + { + Name: "listener-80-1", + GatewayName: gatewayNsName, + Source: listener80, + Valid: true, + Routes: map[graph.RouteKey]*graph.L7Route{ + graph.CreateRouteKey(hrAdvancedRouteWithPolicyAndHeaderMatch): routeHRAdvancedWithHeaderMatch, + }, + }, + }...) + gw.Policies = []*graph.Policy{gwPolicy1, gwPolicy2} + routeHRAdvancedWithHeaderMatch.Policies = []*graph.Policy{hrPolicy1} + g.Routes = map[graph.RouteKey]*graph.L7Route{ + graph.CreateRouteKey(hrAdvancedRouteWithPolicyAndHeaderMatch): routeHRAdvancedWithHeaderMatch, + } + return g + }), + expConf: getModifiedExpectedConfiguration(func(conf Configuration) Configuration { + conf.SSLServers = []VirtualServer{} + conf.SSLKeyPairs = map[SSLKeyPairID]SSLKeyPair{} + conf.HTTPServers = []VirtualServer{ + { + IsDefault: true, + Port: 80, + Policies: []policies.Policy{gwPolicy1.Source, gwPolicy2.Source}, + }, + { + Hostname: "policy.com", + PathRules: []PathRule{ + { + Path: "/rest", + PathType: PathTypePrefix, + MatchRules: []MatchRule{ + { + BackendGroup: groupsHRAdvancedWithHeaderMatch[0], + Source: &hrAdvancedRouteWithPolicyAndHeaderMatch.ObjectMeta, + Match: Match{ + Headers: []HTTPHeaderMatch{ + { + Name: "Referrer", + Value: "(?i)(mydomain|myotherdomain).+\\.example\\.(cloud|com)", + Type: "RegularExpression", + }, + }, + }, + }, + { + BackendGroup: groupsHRAdvancedWithHeaderMatch[0], + Source: &hrAdvancedRouteWithPolicyAndHeaderMatch.ObjectMeta, + }, + }, + Policies: []policies.Policy{hrPolicy1.Source}, + }, + }, + Port: 80, + Policies: []policies.Policy{gwPolicy1.Source, gwPolicy2.Source}, + }, + } + conf.Upstreams = []Upstream{fooUpstream} + conf.BackendGroups = []BackendGroup{groupsHRAdvancedWithHeaderMatch[0]} + return conf + }), + msg: "Gateway and HTTPRoute with policies attached with advanced routing", + }, { graph: getModifiedGraph(func(g *graph.Graph) *graph.Graph { gw := g.Gateways[gatewayNsName] From d42d0fb378f14724dd27f0903acb3b7f4ac10b06 Mon Sep 17 00:00:00 2001 From: bjee19 <139261241+bjee19@users.noreply.github.com> Date: Tue, 2 Sep 2025 14:57:42 -0700 Subject: [PATCH 12/22] Adjust nginx agent backoff settings and revert request timeout (#3820) (#3828) Cherry-pick #3820 Problem: As a result to NGINX Agent adding a wait for nginx workers to reload before updating nginx configuration, any long-lived connections would result in an excessively long wait between updating nginx configurations. This cause delays in NGF and on NGINX Plus, could cause a dropping of traffic if there was a wait between updating the configuration and updating the NGINX Plus upstreams. Solution: Adjust the NGINX Agent reload configuration to lower the maximum wait time. Reverted the test request timeout duration back to 10 seconds. Testing: Ran the SnippetsFilter functional test a couple of times and verified when there was a long-lived connection blocking on of the test cases, it went from a 27 second timeout -> 3 second. Also deployed nginx and verified the agent configuration was in there. --- internal/controller/provisioner/templates.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/internal/controller/provisioner/templates.go b/internal/controller/provisioner/templates.go index 78945d53f7..d52700ad2f 100644 --- a/internal/controller/provisioner/templates.go +++ b/internal/controller/provisioner/templates.go @@ -89,4 +89,13 @@ collector: "ngf": receivers: ["host_metrics", "nginx_metrics"] exporters: ["prometheus"] -{{- end }}` +{{- end }} +data_plane_config: + nginx: + reload_backoff: + initial_interval: .5s + max_interval: 1.5s + max_elapsed_time: 3s + randomization_factor: 0.5 + multiplier: 1.5 +` From 50bed80d7fe16437a02c4eab50bfc3be23d71ef5 Mon Sep 17 00:00:00 2001 From: Ciara Stacke <18287516+ciarams87@users.noreply.github.com> Date: Wed, 3 Sep 2025 16:29:56 +0100 Subject: [PATCH 13/22] Release 2.1.1 docs (#3833) Release 2.1.1 --- CHANGELOG.md | 30 +++++++++++++++ README.md | 7 ++-- charts/nginx-gateway-fabric/Chart.yaml | 4 +- charts/nginx-gateway-fabric/README.md | 8 ++-- .../nginx-gateway-fabric/values.schema.json | 4 +- charts/nginx-gateway-fabric/values.yaml | 4 +- deploy/azure/deploy.yaml | 32 ++++++++-------- deploy/default/deploy.yaml | 32 ++++++++-------- deploy/experimental-nginx-plus/deploy.yaml | 32 ++++++++-------- deploy/experimental/deploy.yaml | 32 ++++++++-------- deploy/nginx-plus/deploy.yaml | 32 ++++++++-------- deploy/nodeport/deploy.yaml | 32 ++++++++-------- deploy/openshift/deploy.yaml | 38 +++++++++---------- .../snippets-filters-nginx-plus/deploy.yaml | 32 ++++++++-------- deploy/snippets-filters/deploy.yaml | 32 ++++++++-------- 15 files changed, 191 insertions(+), 160 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db24562b8c..2f6ce2df46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,36 @@ This document includes a curated changelog for each release. We also publish a c a [GitHub release](https://github.com/nginx/nginx-gateway-fabric/releases), which, by contrast, is auto-generated and includes links to all PRs that went into the release. +## Release 2.1.1 + +_September 3, 2025_ + +BUG FIXES: + +- Fix remove patch label/ annotation cross contamination. [3754](https://github.com/nginx/nginx-gateway-fabric/pull/3754) +- Fix host readiness probe on ipv6 in addition to ipv4. [3765](https://github.com/nginx/nginx-gateway-fabric/pull/3765). Thanks to [lucasl0st](https://github.com/lucasl0st). +- Prevent policy `includes` duplication in advanced routing configuration. [3799](https://github.com/nginx/nginx-gateway-fabric/pull/3799) +- Adjust nginx agent backoff settings and revert request timeout. [3820](https://github.com/nginx/nginx-gateway-fabric/pull/3820) + +HELM CHART: + +- The version of the Helm chart is now 2.1.1 +- Add patches to helm chart spec. [3773](https://github.com/nginx/nginx-gateway-fabric/pull/3773) + +COMPATIBILITY: + +- Gateway API version: `1.3.0` +- NGINX version: `1.29.1` +- NGINX Plus version: `R35` +- NGINX Agent version: `v3.2.1` +- Kubernetes version: `1.25+` + +CONTAINER IMAGES: + +- Control plane: `ghcr.io/nginx/nginx-gateway-fabric:2.1.1` +- Data plane: `ghcr.io/nginx/nginx-gateway-fabric/nginx:2.1.1` +- Data plane with NGINX Plus: `private-registry.nginx.com/nginx-gateway-fabric/nginx-plus:2.1.1` + ## Release 2.1.0 _August 14, 2025_ diff --git a/README.md b/README.md index 4a0aa5600a..2c819cd1f9 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ You can find the comprehensive NGINX Gateway Fabric user documentation on the [N We publish NGINX Gateway Fabric releases on GitHub. See our [releases page](https://github.com/nginx/nginx-gateway-fabric/releases). -The latest release is [2.1.0](https://github.com/nginx/nginx-gateway-fabric/releases/tag/v2.1.0). +The latest release is [2.1.1](https://github.com/nginx/nginx-gateway-fabric/releases/tag/v2.1.1). The edge version is useful for experimenting with new features that are not yet published in a release. To use, choose the _edge_ version built from the [latest commit](https://github.com/nginx/nginx-gateway-fabric/commits/main) @@ -47,7 +47,7 @@ to the correct versions: | Version | Description | Installation Manifests | Documentation and Examples | |----------------|------------------------------------------|--------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Latest release | For production use | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/v2.1.0/deploy). | [Documentation](https://docs.nginx.com/nginx-gateway-fabric). [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/v2.1.0/examples). | +| Latest release | For production use | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/v2.1.1/deploy). | [Documentation](https://docs.nginx.com/nginx-gateway-fabric). [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/v2.1.1/examples). | | Edge | For experimental use and latest features | [Manifests](https://github.com/nginx/nginx-gateway-fabric/tree/main/deploy). | [Examples](https://github.com/nginx/nginx-gateway-fabric/tree/main/examples). | ### Versioning @@ -68,7 +68,8 @@ The following table lists the software versions NGINX Gateway Fabric supports. | NGINX Gateway Fabric | Gateway API | Kubernetes | NGINX OSS | NGINX Plus | NGINX Agent | |----------------------|-------------|------------|-----------|------------|-------------| -| Edge | 1.3.0 | 1.25+ | 1.29.1 | R35 | v3.2.1 | +| Edge | 1.3.0 | 1.25+ | 1.29.1 | R35 | v3.3.0 | +| 2.1.1 | 1.3.0 | 1.25+ | 1.29.1 | R35 | v3.2.1 | | 2.1.0 | 1.3.0 | 1.25+ | 1.29.1 | R35 | v3.2.1 | | 2.0.2 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.1 | | 2.0.1 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.1 | diff --git a/charts/nginx-gateway-fabric/Chart.yaml b/charts/nginx-gateway-fabric/Chart.yaml index 37b33eefb1..6cbb1ec75c 100644 --- a/charts/nginx-gateway-fabric/Chart.yaml +++ b/charts/nginx-gateway-fabric/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: nginx-gateway-fabric description: NGINX Gateway Fabric type: application -version: 2.1.0 -appVersion: "2.1.0" +version: 2.1.1 +appVersion: "2.1.1" kubeVersion: ">= 1.25.0-0" home: https://github.com/nginx/nginx-gateway-fabric icon: https://raw.githubusercontent.com/nginx/nginx-gateway-fabric/main/charts/nginx-gateway-fabric/chart-icon.png diff --git a/charts/nginx-gateway-fabric/README.md b/charts/nginx-gateway-fabric/README.md index 18c9bfe1a9..fe848777de 100644 --- a/charts/nginx-gateway-fabric/README.md +++ b/charts/nginx-gateway-fabric/README.md @@ -1,7 +1,7 @@ # NGINX Gateway Fabric Helm Chart -![Version: 2.1.0](https://img.shields.io/badge/Version-2.1.0-informational?style=flat-square) ![AppVersion: 2.1.0](https://img.shields.io/badge/AppVersion-2.1.0-informational?style=flat-square) +![Version: 2.1.1](https://img.shields.io/badge/Version-2.1.1-informational?style=flat-square) ![AppVersion: 2.1.1](https://img.shields.io/badge/AppVersion-2.1.1-informational?style=flat-square) - [NGINX Gateway Fabric Helm Chart](#nginx-gateway-fabric-helm-chart) - [Introduction](#introduction) @@ -264,7 +264,7 @@ The following table lists the configurable parameters of the NGINX Gateway Fabri | `certGenerator.ttlSecondsAfterFinished` | How long to wait after the cert generator job has finished before it is removed by the job controller. | int | `30` | | `clusterDomain` | The DNS cluster domain of your Kubernetes cluster. | string | `"cluster.local"` | | `gateways` | A list of Gateway objects. View https://gateway-api.sigs.k8s.io/reference/spec/#gateway for full Gateway reference. | list | `[]` | -| `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":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric/nginx","tag":"2.1.0"},"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":"","resolver":"","secretName":"nplus-license","skipVerify":false}}` | +| `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":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric/nginx","tag":"2.1.1"},"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":"","resolver":"","secretName":"nplus-license","skipVerify":false}}` | | `nginx.autoscaling` | Autoscaling configuration for the NGINX data plane. | object | `{"enable":false}` | | `nginx.autoscaling.enable` | Enable or disable Horizontal Pod Autoscaler for the NGINX data plane. | bool | `false` | | `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 | `{}` | @@ -301,7 +301,7 @@ The following table lists the configurable parameters of the NGINX Gateway Fabri | `nginx.usage.resolver` | The nameserver used to resolve the NGINX Plus usage reporting endpoint. Used with NGINX Instance Manager. | string | `""` | | `nginx.usage.secretName` | The name of the Secret containing the JWT for NGINX Plus usage reporting. Must exist in the same namespace that the NGINX Gateway Fabric control plane is running in (default namespace: nginx-gateway). | string | `"nplus-license"` | | `nginx.usage.skipVerify` | Disable client verification of the NGINX Plus usage reporting server certificate. | bool | `false` | -| `nginxGateway` | The nginxGateway section contains configuration for the NGINX Gateway Fabric control plane deployment. | object | `{"affinity":{},"autoscaling":{"enable":false},"config":{"logging":{"level":"info"}},"configAnnotations":{},"extraVolumeMounts":[],"extraVolumes":[],"gatewayClassAnnotations":{},"gatewayClassName":"nginx","gatewayControllerName":"gateway.nginx.org/nginx-gateway-controller","gwAPIExperimentalFeatures":{"enable":false},"image":{"pullPolicy":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric","tag":"2.1.0"},"kind":"deployment","labels":{},"leaderElection":{"enable":true,"lockName":""},"lifecycle":{},"metrics":{"enable":true,"port":9113,"secure":false},"name":"","nodeSelector":{},"podAnnotations":{},"productTelemetry":{"enable":true},"readinessProbe":{"enable":true,"initialDelaySeconds":3,"port":8081},"replicas":1,"resources":{},"service":{"annotations":{},"labels":{}},"serviceAccount":{"annotations":{},"imagePullSecret":"","imagePullSecrets":[],"name":""},"snippetsFilters":{"enable":false},"terminationGracePeriodSeconds":30,"tolerations":[],"topologySpreadConstraints":[]}` | +| `nginxGateway` | The nginxGateway section contains configuration for the NGINX Gateway Fabric control plane deployment. | object | `{"affinity":{},"autoscaling":{"enable":false},"config":{"logging":{"level":"info"}},"configAnnotations":{},"extraVolumeMounts":[],"extraVolumes":[],"gatewayClassAnnotations":{},"gatewayClassName":"nginx","gatewayControllerName":"gateway.nginx.org/nginx-gateway-controller","gwAPIExperimentalFeatures":{"enable":false},"image":{"pullPolicy":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric","tag":"2.1.1"},"kind":"deployment","labels":{},"leaderElection":{"enable":true,"lockName":""},"lifecycle":{},"metrics":{"enable":true,"port":9113,"secure":false},"name":"","nodeSelector":{},"podAnnotations":{},"productTelemetry":{"enable":true},"readinessProbe":{"enable":true,"initialDelaySeconds":3,"port":8081},"replicas":1,"resources":{},"service":{"annotations":{},"labels":{}},"serviceAccount":{"annotations":{},"imagePullSecret":"","imagePullSecrets":[],"name":""},"snippetsFilters":{"enable":false},"terminationGracePeriodSeconds":30,"tolerations":[],"topologySpreadConstraints":[]}` | | `nginxGateway.affinity` | The affinity of the NGINX Gateway Fabric control plane pod. | object | `{}` | | `nginxGateway.autoscaling` | Autoscaling configuration for the NGINX Gateway Fabric control plane. | object | `{"enable":false}` | | `nginxGateway.autoscaling.enable` | Enable or disable Horizontal Pod Autoscaler for the control plane. | bool | `false` | @@ -313,7 +313,7 @@ The following table lists the configurable parameters of the NGINX Gateway Fabri | `nginxGateway.gatewayClassName` | The name of the GatewayClass that will be created as part of this release. Every NGINX Gateway Fabric must have a unique corresponding GatewayClass resource. NGINX Gateway Fabric only processes resources that belong to its class - i.e. have the "gatewayClassName" field resource equal to the class. | string | `"nginx"` | | `nginxGateway.gatewayControllerName` | The name of the Gateway controller. The controller name must be of the form: DOMAIN/PATH. The controller's domain is gateway.nginx.org. | string | `"gateway.nginx.org/nginx-gateway-controller"` | | `nginxGateway.gwAPIExperimentalFeatures.enable` | Enable the experimental features of Gateway API which are supported by NGINX Gateway Fabric. Requires the Gateway APIs installed from the experimental channel. | bool | `false` | -| `nginxGateway.image` | The image configuration for the NGINX Gateway Fabric control plane. | object | `{"pullPolicy":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric","tag":"2.1.0"}` | +| `nginxGateway.image` | The image configuration for the NGINX Gateway Fabric control plane. | object | `{"pullPolicy":"IfNotPresent","repository":"ghcr.io/nginx/nginx-gateway-fabric","tag":"2.1.1"}` | | `nginxGateway.image.repository` | The NGINX Gateway Fabric image to use | string | `"ghcr.io/nginx/nginx-gateway-fabric"` | | `nginxGateway.kind` | The kind of the NGINX Gateway Fabric installation - currently, only deployment is supported. | string | `"deployment"` | | `nginxGateway.labels` | Set of labels to be added for NGINX Gateway Fabric deployment. | object | `{}` | diff --git a/charts/nginx-gateway-fabric/values.schema.json b/charts/nginx-gateway-fabric/values.schema.json index 8aa53b551b..7d2a2b28dc 100644 --- a/charts/nginx-gateway-fabric/values.schema.json +++ b/charts/nginx-gateway-fabric/values.schema.json @@ -424,7 +424,7 @@ "type": "string" }, "tag": { - "default": "2.1.0", + "default": "2.1.1", "required": [], "title": "tag", "type": "string" @@ -796,7 +796,7 @@ "type": "string" }, "tag": { - "default": "2.1.0", + "default": "2.1.1", "required": [], "title": "tag", "type": "string" diff --git a/charts/nginx-gateway-fabric/values.yaml b/charts/nginx-gateway-fabric/values.yaml index d5ea50fc08..a0e45000c3 100644 --- a/charts/nginx-gateway-fabric/values.yaml +++ b/charts/nginx-gateway-fabric/values.yaml @@ -116,7 +116,7 @@ nginxGateway: image: # -- The NGINX Gateway Fabric image to use repository: ghcr.io/nginx/nginx-gateway-fabric - tag: 2.1.0 + tag: 2.1.1 # @schema # enum: # - Always @@ -271,7 +271,7 @@ nginx: image: # -- The NGINX image to use. repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: 2.1.0 + tag: 2.1.1 # @schema # enum: # - Always diff --git a/deploy/azure/deploy.yaml b/deploy/azure/deploy.yaml index e5aa87a81e..92f169f525 100644 --- a/deploy/azure/deploy.yaml +++ b/deploy/azure/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway rules: - apiGroups: @@ -182,7 +182,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -200,7 +200,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -217,7 +217,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -237,7 +237,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -285,8 +285,8 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: nginx-gateway ports: @@ -333,7 +333,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -353,7 +353,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: cert-generator securityContext: @@ -379,7 +379,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -395,7 +395,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -408,7 +408,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -418,7 +418,7 @@ spec: image: pullPolicy: IfNotPresent repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: 2.1.0 + tag: 2.1.1 pod: nodeSelector: kubernetes.io/os: linux diff --git a/deploy/default/deploy.yaml b/deploy/default/deploy.yaml index 9f22158f05..e10d6e1f12 100644 --- a/deploy/default/deploy.yaml +++ b/deploy/default/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway rules: - apiGroups: @@ -182,7 +182,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -200,7 +200,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -217,7 +217,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -237,7 +237,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -285,8 +285,8 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: nginx-gateway ports: @@ -331,7 +331,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -351,7 +351,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: cert-generator securityContext: @@ -377,7 +377,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -393,7 +393,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -406,7 +406,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -416,7 +416,7 @@ spec: image: pullPolicy: IfNotPresent repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: 2.1.0 + tag: 2.1.1 replicas: 1 service: externalTrafficPolicy: Local diff --git a/deploy/experimental-nginx-plus/deploy.yaml b/deploy/experimental-nginx-plus/deploy.yaml index ebabf4525f..82048a8763 100644 --- a/deploy/experimental-nginx-plus/deploy.yaml +++ b/deploy/experimental-nginx-plus/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway rules: - apiGroups: @@ -186,7 +186,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -204,7 +204,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -221,7 +221,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -241,7 +241,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -293,8 +293,8 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: nginx-gateway ports: @@ -339,7 +339,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -359,7 +359,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: cert-generator securityContext: @@ -385,7 +385,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -401,7 +401,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -414,7 +414,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -424,7 +424,7 @@ spec: image: pullPolicy: IfNotPresent repository: private-registry.nginx.com/nginx-gateway-fabric/nginx-plus - tag: 2.1.0 + tag: 2.1.1 replicas: 1 service: externalTrafficPolicy: Local diff --git a/deploy/experimental/deploy.yaml b/deploy/experimental/deploy.yaml index 77a4932da5..9bba074135 100644 --- a/deploy/experimental/deploy.yaml +++ b/deploy/experimental/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway rules: - apiGroups: @@ -186,7 +186,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -204,7 +204,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -221,7 +221,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -241,7 +241,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -290,8 +290,8 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: nginx-gateway ports: @@ -336,7 +336,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -356,7 +356,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: cert-generator securityContext: @@ -382,7 +382,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -398,7 +398,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -411,7 +411,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -421,7 +421,7 @@ spec: image: pullPolicy: IfNotPresent repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: 2.1.0 + tag: 2.1.1 replicas: 1 service: externalTrafficPolicy: Local diff --git a/deploy/nginx-plus/deploy.yaml b/deploy/nginx-plus/deploy.yaml index 1e8fdb6079..a3b05e169c 100644 --- a/deploy/nginx-plus/deploy.yaml +++ b/deploy/nginx-plus/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway rules: - apiGroups: @@ -182,7 +182,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -200,7 +200,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -217,7 +217,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -237,7 +237,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -288,8 +288,8 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: nginx-gateway ports: @@ -334,7 +334,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -354,7 +354,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: cert-generator securityContext: @@ -380,7 +380,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -396,7 +396,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -409,7 +409,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -419,7 +419,7 @@ spec: image: pullPolicy: IfNotPresent repository: private-registry.nginx.com/nginx-gateway-fabric/nginx-plus - tag: 2.1.0 + tag: 2.1.1 replicas: 1 service: externalTrafficPolicy: Local diff --git a/deploy/nodeport/deploy.yaml b/deploy/nodeport/deploy.yaml index 21d8e7fb96..978648ccd3 100644 --- a/deploy/nodeport/deploy.yaml +++ b/deploy/nodeport/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway rules: - apiGroups: @@ -182,7 +182,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -200,7 +200,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -217,7 +217,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -237,7 +237,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -285,8 +285,8 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: nginx-gateway ports: @@ -331,7 +331,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -351,7 +351,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: cert-generator securityContext: @@ -377,7 +377,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -393,7 +393,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -406,7 +406,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -416,7 +416,7 @@ spec: image: pullPolicy: IfNotPresent repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: 2.1.0 + tag: 2.1.1 replicas: 1 service: externalTrafficPolicy: Local diff --git a/deploy/openshift/deploy.yaml b/deploy/openshift/deploy.yaml index 95f890c6c3..784c4c3bc9 100644 --- a/deploy/openshift/deploy.yaml +++ b/deploy/openshift/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway rules: - apiGroups: @@ -203,7 +203,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -221,7 +221,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -238,7 +238,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -258,7 +258,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -307,8 +307,8 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: nginx-gateway ports: @@ -353,7 +353,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -373,7 +373,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: cert-generator securityContext: @@ -399,7 +399,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -415,7 +415,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -428,7 +428,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -438,7 +438,7 @@ spec: image: pullPolicy: IfNotPresent repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: 2.1.0 + tag: 2.1.1 replicas: 1 service: externalTrafficPolicy: Local @@ -462,7 +462,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-scc readOnlyRootFilesystem: true requiredDropCapabilities: @@ -503,7 +503,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-scc-cert-generator readOnlyRootFilesystem: true requiredDropCapabilities: @@ -544,7 +544,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-scc-nginx readOnlyRootFilesystem: true requiredDropCapabilities: diff --git a/deploy/snippets-filters-nginx-plus/deploy.yaml b/deploy/snippets-filters-nginx-plus/deploy.yaml index 2110ac1884..1b4754534c 100644 --- a/deploy/snippets-filters-nginx-plus/deploy.yaml +++ b/deploy/snippets-filters-nginx-plus/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway rules: - apiGroups: @@ -184,7 +184,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -202,7 +202,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -219,7 +219,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -239,7 +239,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -291,8 +291,8 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: nginx-gateway ports: @@ -337,7 +337,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -357,7 +357,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: cert-generator securityContext: @@ -383,7 +383,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -399,7 +399,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -412,7 +412,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -422,7 +422,7 @@ spec: image: pullPolicy: IfNotPresent repository: private-registry.nginx.com/nginx-gateway-fabric/nginx-plus - tag: 2.1.0 + tag: 2.1.1 replicas: 1 service: externalTrafficPolicy: Local diff --git a/deploy/snippets-filters/deploy.yaml b/deploy/snippets-filters/deploy.yaml index 3cc3db846d..37ded55d63 100644 --- a/deploy/snippets-filters/deploy.yaml +++ b/deploy/snippets-filters/deploy.yaml @@ -10,7 +10,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway --- @@ -20,7 +20,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway --- @@ -30,7 +30,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway rules: @@ -49,7 +49,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway rules: - apiGroups: @@ -184,7 +184,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway roleRef: @@ -202,7 +202,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway roleRef: apiGroup: rbac.authorization.k8s.io @@ -219,7 +219,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -239,7 +239,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway namespace: nginx-gateway spec: @@ -288,8 +288,8 @@ spec: fieldRef: fieldPath: metadata.labels['app.kubernetes.io/instance'] - name: IMAGE_NAME - value: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + value: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: nginx-gateway ports: @@ -334,7 +334,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-cert-generator namespace: nginx-gateway spec: @@ -354,7 +354,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: ghcr.io/nginx/nginx-gateway-fabric:2.1.0 + image: ghcr.io/nginx/nginx-gateway-fabric:2.1.1 imagePullPolicy: IfNotPresent name: cert-generator securityContext: @@ -380,7 +380,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx spec: controllerName: gateway.nginx.org/nginx-gateway-controller @@ -396,7 +396,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-config namespace: nginx-gateway spec: @@ -409,7 +409,7 @@ metadata: labels: app.kubernetes.io/instance: nginx-gateway app.kubernetes.io/name: nginx-gateway - app.kubernetes.io/version: 2.1.0 + app.kubernetes.io/version: 2.1.1 name: nginx-gateway-proxy-config namespace: nginx-gateway spec: @@ -419,7 +419,7 @@ spec: image: pullPolicy: IfNotPresent repository: ghcr.io/nginx/nginx-gateway-fabric/nginx - tag: 2.1.0 + tag: 2.1.1 replicas: 1 service: externalTrafficPolicy: Local From 39a3878943d84866f3da0777caeedfb253d48e5b Mon Sep 17 00:00:00 2001 From: Ciara Stacke <18287516+ciarams87@users.noreply.github.com> Date: Wed, 17 Sep 2025 19:52:48 +0100 Subject: [PATCH 14/22] Improve connection reset handling during ServiceAccountToken rotation (#3905) (#3932) Problem: During ServiceAccountToken rotation, nginx-gateway-fabric was sometimes experiencing deadlocks due to the Subscribe method incorrectly intercepting initial configuration operations after a ServiceAccountToken rotation and incorrect signaling broadcast completion Solution: Implemented a pendingRequest tracking mechanism to distinguish between initial setup operations and broadcast operations. --- internal/controller/nginx/agent/agent_test.go | 3 +- internal/controller/nginx/agent/command.go | 24 +++++++++++- .../controller/nginx/agent/command_test.go | 37 +++++++++++++------ internal/controller/nginx/agent/deployment.go | 12 ++++-- .../controller/nginx/agent/deployment_test.go | 8 ++-- internal/controller/nginx/agent/file.go | 14 ++++++- 6 files changed, 75 insertions(+), 23 deletions(-) diff --git a/internal/controller/nginx/agent/agent_test.go b/internal/controller/nginx/agent/agent_test.go index f67dfbc8a9..fcd7774052 100644 --- a/internal/controller/nginx/agent/agent_test.go +++ b/internal/controller/nginx/agent/agent_test.go @@ -66,7 +66,8 @@ func TestUpdateConfig(t *testing.T) { updater.UpdateConfig(deployment, []File{file}) g.Expect(fakeBroadcaster.SendCallCount()).To(Equal(1)) - g.Expect(deployment.GetFile(file.Meta.Name, file.Meta.Hash)).To(Equal(file.Contents)) + fileContents, _ := deployment.GetFile(file.Meta.Name, file.Meta.Hash) + g.Expect(fileContents).To(Equal(file.Contents)) if test.expErr { g.Expect(deployment.GetLatestConfigError()).To(Equal(testErr)) diff --git a/internal/controller/nginx/agent/command.go b/internal/controller/nginx/agent/command.go index 046fb7f313..cc89a47fd5 100644 --- a/internal/controller/nginx/agent/command.go +++ b/internal/controller/nginx/agent/command.go @@ -155,6 +155,8 @@ func (cs *commandService) Subscribe(in pb.CommandService_SubscribeServer) error channels := broadcaster.Subscribe() defer broadcaster.CancelSubscription(channels.ID) + var pendingBroadcastRequest *broadcast.NginxAgentMessage + for { // When a message is received over the ListenCh, it is assumed and required that the // deployment object is already LOCKED. This lock is acquired by the event handler before calling @@ -191,6 +193,10 @@ func (cs *commandService) Subscribe(in pb.CommandService_SubscribeServer) error return grpcStatus.Error(codes.Internal, err.Error()) } + + // Track this broadcast request to distinguish it from initial config operations. + // Only broadcast operations should signal ResponseCh for coordination. + pendingBroadcastRequest = &msg case err = <-msgr.Errors(): cs.logger.Error(err, "connection error", "pod", conn.PodName) deployment.SetPodErrorStatus(conn.PodName, err) @@ -198,6 +204,9 @@ func (cs *commandService) Subscribe(in pb.CommandService_SubscribeServer) error case channels.ResponseCh <- struct{}{}: default: } + if pendingBroadcastRequest != nil { + cs.logger.V(1).Info("Connection error during pending request, operation failed") + } if errors.Is(err, io.EOF) { return grpcStatus.Error(codes.Aborted, err.Error()) @@ -215,7 +224,15 @@ func (cs *commandService) Subscribe(in pb.CommandService_SubscribeServer) error } else { deployment.SetPodErrorStatus(conn.PodName, nil) } - channels.ResponseCh <- struct{}{} + + // Signal broadcast completion only for tracked broadcast operations. + // Initial config responses are ignored to prevent spurious success messages. + if pendingBroadcastRequest != nil { + pendingBroadcastRequest = nil + channels.ResponseCh <- struct{}{} + } else { + cs.logger.V(1).Info("Received response for non-broadcast request (likely initial config)", "pod", conn.PodName) + } } } } @@ -265,6 +282,9 @@ func (cs *commandService) setInitialConfig( defer deployment.FileLock.Unlock() fileOverviews, configVersion := deployment.GetFileOverviews() + + cs.logger.Info("Sending initial configuration to agent", "pod", conn.PodName, "configVersion", configVersion) + if err := msgr.Send(ctx, buildRequest(fileOverviews, conn.InstanceID, configVersion)); err != nil { cs.logAndSendErrorStatus(deployment, conn, err) @@ -348,9 +368,11 @@ func (cs *commandService) waitForInitialConfigApply( res := msg.GetCommandResponse() if res.GetStatus() != pb.CommandResponse_COMMAND_STATUS_OK { applyErr := fmt.Errorf("msg: %s; error: %s", res.GetMessage(), res.GetError()) + cs.logger.V(1).Info("Received initial config response with error", "error", applyErr) return applyErr, nil } + cs.logger.V(1).Info("Received successful initial config response") return applyErr, connectionErr } } diff --git a/internal/controller/nginx/agent/command_test.go b/internal/controller/nginx/agent/command_test.go index 7b8b763011..634cc0eddb 100644 --- a/internal/controller/nginx/agent/command_test.go +++ b/internal/controller/nginx/agent/command_test.go @@ -340,25 +340,16 @@ func TestSubscribe(t *testing.T) { mockServer := newMockSubscribeServer(ctx) - // put the requests on the listenCh for the Subscription loop to pick up + // Define the broadcast messages to be sent later loopFile := &pb.File{ FileMeta: &pb.FileMeta{ Name: "some-other.conf", Hash: "56789", }, } - listenCh <- broadcast.NginxAgentMessage{ - Type: broadcast.ConfigApplyRequest, - FileOverviews: []*pb.File{loopFile}, - } - loopAction := &pb.NGINXPlusAction{ Action: &pb.NGINXPlusAction_UpdateStreamServers{}, } - listenCh <- broadcast.NginxAgentMessage{ - Type: broadcast.APIRequest, - NGINXPlusAction: loopAction, - } // start the Subscriber errCh := make(chan error) @@ -366,6 +357,9 @@ func TestSubscribe(t *testing.T) { errCh <- cs.Subscribe(mockServer) }() + // PHASE 1: Initial config is sent by setInitialConfig() BEFORE the event loop starts + // These should NOT signal ResponseCh as they're not broadcast operations + // ensure that the initial config file was sent when the Subscription connected expFile := &pb.File{ FileMeta: &pb.FileMeta{ @@ -374,6 +368,7 @@ func TestSubscribe(t *testing.T) { }, } ensureFileWasSent(g, mockServer, expFile) + // Respond to initial config - this should NOT signal ResponseCh mockServer.recvChan <- &pb.DataPlaneResponse{ CommandResponse: &pb.CommandResponse{ Status: pb.CommandResponse_COMMAND_STATUS_OK, @@ -382,22 +377,40 @@ func TestSubscribe(t *testing.T) { // ensure that the initial API request was sent when the Subscription connected ensureAPIRequestWasSent(g, mockServer, initialAction) + // Respond to initial API request - this should NOT signal ResponseCh mockServer.recvChan <- &pb.DataPlaneResponse{ CommandResponse: &pb.CommandResponse{ Status: pb.CommandResponse_COMMAND_STATUS_OK, }, } + // Wait for status queue to be updated after initial config completes g.Eventually(func() string { obj := cs.statusQueue.Dequeue(ctx) return obj.Deployment.Name }).Should(Equal("nginx-deployment")) - // ensure the second file was sent in the loop + // PHASE 2: Now send broadcast operations to the event loop + // Put the broadcast requests on the listenCh for the Subscription loop to pick up + listenCh <- broadcast.NginxAgentMessage{ + Type: broadcast.ConfigApplyRequest, + FileOverviews: []*pb.File{loopFile}, + } + + // PHASE 2: Broadcast operations from the event loop + // These SHOULD signal ResponseCh as they are broadcast operations + + // ensure the broadcast file was sent in the loop ensureFileWasSent(g, mockServer, loopFile) verifyResponse(g, mockServer, responseCh) - // ensure the second action was sent in the loop + // Send second broadcast operation + listenCh <- broadcast.NginxAgentMessage{ + Type: broadcast.APIRequest, + NGINXPlusAction: loopAction, + } + + // ensure the broadcast action was sent in the loop ensureAPIRequestWasSent(g, mockServer, loopAction) verifyResponse(g, mockServer, responseCh) diff --git a/internal/controller/nginx/agent/deployment.go b/internal/controller/nginx/agent/deployment.go index 48cb69d5af..7e9aa3aba5 100644 --- a/internal/controller/nginx/agent/deployment.go +++ b/internal/controller/nginx/agent/deployment.go @@ -161,14 +161,18 @@ func (d *Deployment) GetNGINXPlusActions() []*pb.NGINXPlusAction { // GetFile gets the requested file for the deployment and returns its contents. // The deployment FileLock MUST already be locked before calling this function. -func (d *Deployment) GetFile(name, hash string) []byte { +func (d *Deployment) GetFile(name, hash string) ([]byte, string) { + var fileFoundHash string for _, file := range d.files { - if name == file.Meta.GetName() && hash == file.Meta.GetHash() { - return file.Contents + if name == file.Meta.GetName() { + fileFoundHash = file.Meta.GetHash() + if hash == file.Meta.GetHash() { + return file.Contents, file.Meta.GetHash() + } } } - return nil + return nil, fileFoundHash } // SetFiles updates the nginx files and fileOverviews for the deployment and returns the message to send. diff --git a/internal/controller/nginx/agent/deployment_test.go b/internal/controller/nginx/agent/deployment_test.go index b3f2744ee6..0560c31600 100644 --- a/internal/controller/nginx/agent/deployment_test.go +++ b/internal/controller/nginx/agent/deployment_test.go @@ -52,11 +52,13 @@ func TestSetAndGetFiles(t *testing.T) { g.Expect(msg.FileOverviews).To(HaveLen(9)) // 1 file + 8 ignored files g.Expect(fileOverviews).To(Equal(msg.FileOverviews)) - file := deployment.GetFile("test.conf", "12345") + file, _ := deployment.GetFile("test.conf", "12345") g.Expect(file).To(Equal([]byte("test content"))) - g.Expect(deployment.GetFile("invalid", "12345")).To(BeNil()) - g.Expect(deployment.GetFile("test.conf", "invalid")).To(BeNil()) + invalidFile, _ := deployment.GetFile("invalid", "12345") + g.Expect(invalidFile).To(BeNil()) + wrongHashFile, _ := deployment.GetFile("test.conf", "invalid") + g.Expect(wrongHashFile).To(BeNil()) // Set the same files again msg = deployment.SetFiles(files) diff --git a/internal/controller/nginx/agent/file.go b/internal/controller/nginx/agent/file.go index ec2a5b1013..fdcdc2ae8f 100644 --- a/internal/controller/nginx/agent/file.go +++ b/internal/controller/nginx/agent/file.go @@ -143,12 +143,22 @@ func (fs *fileService) getFileContents(req *pb.GetFileRequest, connKey string) ( } filename := req.GetFileMeta().GetName() - contents := deployment.GetFile(filename, req.GetFileMeta().GetHash()) + contents, fileFoundHash := deployment.GetFile(filename, req.GetFileMeta().GetHash()) if len(contents) == 0 { + fs.logger.V(1).Info("Error getting file for agent", "file", filename) + if fileFoundHash != "" { + fs.logger.V(1).Info( + "File found had wrong hash", + "hashWanted", + req.GetFileMeta().GetHash(), + "hashFound", + fileFoundHash, + ) + } return nil, status.Errorf(codes.NotFound, "file not found") } - fs.logger.V(1).Info("Getting file for agent", "file", filename) + fs.logger.V(1).Info("Getting file for agent", "file", filename, "fileHash", fileFoundHash) return contents, nil } From c68b52a93f69d3732cb01230f033a0c98f8c5f61 Mon Sep 17 00:00:00 2001 From: Ciara Stacke <18287516+ciarams87@users.noreply.github.com> Date: Thu, 18 Sep 2025 15:24:00 +0100 Subject: [PATCH 15/22] Update dependency nginx/agent to v3.3.1 (#3934) (#3935) * Update dependency nginx/agent to v3.3.1 | datasource | package | from | to | | ----------- | ----------- | ------ | ------ | | github-tags | nginx/agent | v3.3.0 | v3.3.1 | * Update all agent version refs --------- Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- README.md | 2 +- build/Dockerfile.nginx | 2 +- build/Dockerfile.nginxplus | 2 +- go.mod | 2 +- go.sum | 20 ++++++++++---------- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 2c819cd1f9..d0930082e1 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ The following table lists the software versions NGINX Gateway Fabric supports. | NGINX Gateway Fabric | Gateway API | Kubernetes | NGINX OSS | NGINX Plus | NGINX Agent | |----------------------|-------------|------------|-----------|------------|-------------| -| Edge | 1.3.0 | 1.25+ | 1.29.1 | R35 | v3.3.0 | +| Edge | 1.3.0 | 1.25+ | 1.29.1 | R35 | v3.3.1 | | 2.1.1 | 1.3.0 | 1.25+ | 1.29.1 | R35 | v3.2.1 | | 2.1.0 | 1.3.0 | 1.25+ | 1.29.1 | R35 | v3.2.1 | | 2.0.2 | 1.3.0 | 1.25+ | 1.28.0 | R34 | v3.0.1 | diff --git a/build/Dockerfile.nginx b/build/Dockerfile.nginx index f1aec01615..06de8c63e4 100644 --- a/build/Dockerfile.nginx +++ b/build/Dockerfile.nginx @@ -7,7 +7,7 @@ ADD --link --chown=101:1001 https://cs.nginx.com/static/keys/nginx_signing.rsa.p FROM nginx:1.29.1-alpine-otel # renovate: datasource=github-tags depName=nginx/agent -ARG NGINX_AGENT_VERSION=v3.2.1 +ARG NGINX_AGENT_VERSION=v3.3.1 ARG NJS_DIR ARG NGINX_CONF_DIR ARG BUILD_AGENT diff --git a/build/Dockerfile.nginxplus b/build/Dockerfile.nginxplus index 60ac79fcdf..181b9c7f39 100644 --- a/build/Dockerfile.nginxplus +++ b/build/Dockerfile.nginxplus @@ -8,7 +8,7 @@ FROM alpine:3.22 ARG NGINX_PLUS_VERSION=R35 # renovate: datasource=github-tags depName=nginx/agent -ARG NGINX_AGENT_VERSION=v3.2.1 +ARG NGINX_AGENT_VERSION=v3.3.1 ARG NJS_DIR ARG NGINX_CONF_DIR ARG BUILD_AGENT diff --git a/go.mod b/go.mod index 10ed3e5f67..0323206870 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/go-logr/logr v1.4.3 github.com/google/go-cmp v0.7.0 github.com/google/uuid v1.6.0 - github.com/nginx/agent/v3 v3.2.1 + github.com/nginx/agent/v3 v3.3.1 github.com/nginx/telemetry-exporter v0.1.4 github.com/onsi/ginkgo/v2 v2.23.4 github.com/onsi/gomega v1.38.0 diff --git a/go.sum b/go.sum index deda820a26..585ebe8ed9 100644 --- a/go.sum +++ b/go.sum @@ -35,8 +35,8 @@ github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/ebitengine/purego v0.8.2 h1:jPPGWs2sZ1UgOSgD2bClL0MJIqu58nOmIcBuXr62z1I= -github.com/ebitengine/purego v0.8.2/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= +github.com/ebitengine/purego v0.8.4 h1:CF7LEKg5FFOsASUj0+QwaXf8Ht6TlFxg09+S9wz0omw= +github.com/ebitengine/purego v0.8.4/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/emicklei/go-restful/v3 v3.12.0 h1:y2DdzBAURM29NFF94q6RaY4vjIH1rtwDapwQtU84iWk= github.com/emicklei/go-restful/v3 v3.12.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/evanphx/json-patch v0.5.2 h1:xVCHIVMUu1wtM/VkR9jVZ45N3FhZfYMMYGorLCR8P3k= @@ -137,8 +137,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/nginx/agent/v3 v3.2.1 h1:BT7l9q0SDFUth7pKoQg4Q44xTn5n+HXgfghnPvbzDzg= -github.com/nginx/agent/v3 v3.2.1/go.mod h1:w4mReHi5Icujz+1zFImvjx1FcVW9vSZliTsJVMz7l8w= +github.com/nginx/agent/v3 v3.3.1 h1:ji5c0bzrP35+qSb5UbkoMwkYTQ6IL3jJsXED6mMczOQ= +github.com/nginx/agent/v3 v3.3.1/go.mod h1:wTMWYVUnc+YdXSUCwR2uzg5iWOsKYC9ZiPhqgj61IcU= github.com/nginx/telemetry-exporter v0.1.4 h1:3ikgKlyz/O57oaBLkxCInMjr74AhGTKr9rHdRAkkl/w= github.com/nginx/telemetry-exporter v0.1.4/go.mod h1:bl6qmsxgk4a9D0X8R5E3sUNXN2iECPEK1JNbRLhN5C4= github.com/nginxinc/nginx-plus-go-client/v2 v2.0.1 h1:5VVK38bnELMDWnwfF6dSv57ResXh9AUzeDa72ENj94o= @@ -179,8 +179,8 @@ github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6g github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/sclevine/spec v1.4.0 h1:z/Q9idDcay5m5irkZ28M7PtQM4aOISzOpj4bUPkDee8= github.com/sclevine/spec v1.4.0/go.mod h1:LvpgJaFyvQzRvc1kaDs0bulYwzC70PbiYjC4QnFHkOM= -github.com/shirou/gopsutil/v4 v4.25.3 h1:SeA68lsu8gLggyMbmCn8cmp97V1TI9ld9sVzAUcKcKE= -github.com/shirou/gopsutil/v4 v4.25.3/go.mod h1:xbuxyoZj+UsgnZrENu3lQivsngRR5BdjbJwf2fv4szA= +github.com/shirou/gopsutil/v4 v4.25.7 h1:bNb2JuqKuAu3tRlPv5piSmBZyMfecwQ+t/ILq+1JqVM= +github.com/shirou/gopsutil/v4 v4.25.7/go.mod h1:XV/egmwJtd3ZQjBpJVY5kndsiOO4IRqy9TQnmm6VP7U= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= @@ -206,10 +206,10 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/testcontainers/testcontainers-go v0.36.0 h1:YpffyLuHtdp5EUsI5mT4sRw8GZhO/5ozyDT1xWGXt00= github.com/testcontainers/testcontainers-go v0.36.0/go.mod h1:yk73GVJ0KUZIHUtFna6MO7QS144qYpoY8lEEtU9Hed0= -github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= -github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= -github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= -github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= +github.com/tklauser/go-sysconf v0.3.15 h1:VE89k0criAymJ/Os65CSn1IXaol+1wrsFHEB8Ol49K4= +github.com/tklauser/go-sysconf v0.3.15/go.mod h1:Dmjwr6tYFIseJw7a3dRLJfsHAMXZ3nEnL/aZY+0IuI4= +github.com/tklauser/numcpus v0.10.0 h1:18njr6LDBk1zuna922MgdjQuJFjrdppsZG60sHGfjso= +github.com/tklauser/numcpus v0.10.0/go.mod h1:BiTKazU708GQTYF4mB+cmlpT2Is1gLk7XVuEeem8LsQ= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= From f76e38fa0f515d7b201210c460aaf1e0442f4d15 Mon Sep 17 00:00:00 2001 From: Saloni Choudhary <146118978+salonichf5@users.noreply.github.com> Date: Fri, 19 Sep 2025 20:17:55 +0530 Subject: [PATCH 16/22] Remove error condition on httproute when nginx reload fails (#3936) (#3938) Problem: When nginx reload fails, all routes are marked invalid Solution: Remove adding GatewayNotProgrammed condition to routes since the error should only be reflected on Gateway Listener conditions --- internal/controller/handler.go | 1 - .../controller/state/conditions/conditions.go | 15 --- .../controller/status/prepare_requests.go | 11 -- .../status/prepare_requests_test.go | 105 ------------------ tests/suite/snippets_filter_test.go | 54 +++++---- 5 files changed, 31 insertions(+), 155 deletions(-) diff --git a/internal/controller/handler.go b/internal/controller/handler.go index 8613de046b..cb39229056 100644 --- a/internal/controller/handler.go +++ b/internal/controller/handler.go @@ -337,7 +337,6 @@ func (h *eventHandlerImpl) updateStatuses(ctx context.Context, gr *graph.Graph, gr.L4Routes, gr.Routes, transitionTime, - gw.LatestReloadResult, h.cfg.gatewayCtlrName, ) diff --git a/internal/controller/state/conditions/conditions.go b/internal/controller/state/conditions/conditions.go index a9d418847e..eeaf0b217c 100644 --- a/internal/controller/state/conditions/conditions.go +++ b/internal/controller/state/conditions/conditions.go @@ -49,10 +49,6 @@ const ( // as another route. RouteReasonHostnameConflict v1.RouteConditionReason = "HostnameConflict" - // RouteReasonGatewayNotProgrammed is used when the associated Gateway is not programmed. - // Used with Accepted (false). - RouteReasonGatewayNotProgrammed v1.RouteConditionReason = "GatewayNotProgrammed" - // RouteReasonUnsupportedConfiguration is used when the associated Gateway does not support the Route. // Used with Accepted (false). RouteReasonUnsupportedConfiguration v1.RouteConditionReason = "UnsupportedConfiguration" @@ -472,17 +468,6 @@ func NewRouteUnsupportedConfiguration(msg string) Condition { } } -// NewRouteGatewayNotProgrammed returns a Condition that indicates that the Gateway it references is not programmed, -// which does not guarantee that the Route has been configured. -func NewRouteGatewayNotProgrammed(msg string) Condition { - return Condition{ - Type: string(v1.RouteConditionAccepted), - Status: metav1.ConditionFalse, - Reason: string(RouteReasonGatewayNotProgrammed), - Message: msg, - } -} - // NewRouteInvalidIPFamily returns a Condition that indicates that the Service associated with the Route // is not configured with the same IP family as the NGINX server. func NewRouteInvalidIPFamily(msg string) Condition { diff --git a/internal/controller/status/prepare_requests.go b/internal/controller/status/prepare_requests.go index 3210e432ec..9537d71605 100644 --- a/internal/controller/status/prepare_requests.go +++ b/internal/controller/status/prepare_requests.go @@ -22,7 +22,6 @@ func PrepareRouteRequests( l4routes map[graph.L4RouteKey]*graph.L4Route, routes map[graph.RouteKey]*graph.L7Route, transitionTime metav1.Time, - nginxReloadRes graph.NginxReloadResult, gatewayCtlrName string, ) []UpdateRequest { reqs := make([]UpdateRequest, 0, len(routes)) @@ -32,7 +31,6 @@ func PrepareRouteRequests( gatewayCtlrName, r.ParentRefs, r.Conditions, - nginxReloadRes, transitionTime, r.Source.GetGeneration(), ) @@ -55,7 +53,6 @@ func PrepareRouteRequests( gatewayCtlrName, r.ParentRefs, r.Conditions, - nginxReloadRes, transitionTime, r.Source.GetGeneration(), ) @@ -134,7 +131,6 @@ func prepareRouteStatus( gatewayCtlrName string, parentRefs []graph.ParentRef, conds []conditions.Condition, - nginxReloadRes graph.NginxReloadResult, transitionTime metav1.Time, srcGeneration int64, ) v1.RouteStatus { @@ -163,13 +159,6 @@ func prepareRouteStatus( allConds = append(allConds, ref.Attachment.FailedConditions...) } - if nginxReloadRes.Error != nil { - allConds = append( - allConds, - conditions.NewRouteGatewayNotProgrammed(conditions.RouteMessageFailedNginxReload), - ) - } - conds := conditions.DeduplicateConditions(allConds) apiConds := conditions.ConvertConditions(conds, srcGeneration, transitionTime) diff --git a/internal/controller/status/prepare_requests_test.go b/internal/controller/status/prepare_requests_test.go index 7e08a7cb59..0d803f0833 100644 --- a/internal/controller/status/prepare_requests_test.go +++ b/internal/controller/status/prepare_requests_test.go @@ -432,7 +432,6 @@ func TestBuildHTTPRouteStatuses(t *testing.T) { map[graph.L4RouteKey]*graph.L4Route{}, routes, transitionTime, - graph.NginxReloadResult{}, gatewayCtlrName, ) @@ -511,7 +510,6 @@ func TestBuildGRPCRouteStatuses(t *testing.T) { map[graph.L4RouteKey]*graph.L4Route{}, routes, transitionTime, - graph.NginxReloadResult{}, gatewayCtlrName, ) @@ -588,7 +586,6 @@ func TestBuildTLSRouteStatuses(t *testing.T) { routes, map[graph.RouteKey]*graph.L7Route{}, transitionTime, - graph.NginxReloadResult{}, gatewayCtlrName, ) @@ -605,108 +602,6 @@ func TestBuildTLSRouteStatuses(t *testing.T) { } } -func TestBuildRouteStatusesNginxErr(t *testing.T) { - t.Parallel() - const gatewayCtlrName = "controller" - - hr1 := &v1.HTTPRoute{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "test", - Name: "hr-valid", - Generation: 3, - }, - Spec: v1.HTTPRouteSpec{ - CommonRouteSpec: commonRouteSpecValid, - }, - } - - routeKey := graph.CreateRouteKey(hr1) - - gwNsName := types.NamespacedName{Namespace: "test", Name: "gateway"} - - routes := map[graph.RouteKey]*graph.L7Route{ - routeKey: { - Valid: true, - RouteType: graph.RouteTypeHTTP, - Source: hr1, - ParentRefs: []graph.ParentRef{ - { - Idx: 0, - Gateway: &graph.ParentRefGateway{NamespacedName: gwNsName}, - Attachment: &graph.ParentRefAttachmentStatus{ - Attached: true, - }, - SectionName: commonRouteSpecValid.ParentRefs[0].SectionName, - }, - }, - }, - } - - transitionTime := helpers.PrepareTimeForFakeClient(metav1.Now()) - - expectedStatus := v1.HTTPRouteStatus{ - RouteStatus: v1.RouteStatus{ - Parents: []v1.RouteParentStatus{ - { - ParentRef: v1.ParentReference{ - Namespace: helpers.GetPointer(v1.Namespace(gwNsName.Namespace)), - Name: v1.ObjectName(gwNsName.Name), - SectionName: helpers.GetPointer[v1.SectionName]("listener-80-1"), - }, - ControllerName: gatewayCtlrName, - Conditions: []metav1.Condition{ - { - Type: string(v1.RouteConditionResolvedRefs), - Status: metav1.ConditionTrue, - ObservedGeneration: 3, - LastTransitionTime: transitionTime, - Reason: string(v1.RouteReasonResolvedRefs), - Message: "All references are resolved", - }, - { - Type: string(v1.RouteConditionAccepted), - Status: metav1.ConditionFalse, - ObservedGeneration: 3, - LastTransitionTime: transitionTime, - Reason: string(conditions.RouteReasonGatewayNotProgrammed), - Message: conditions.RouteMessageFailedNginxReload, - }, - }, - }, - }, - }, - } - - g := NewWithT(t) - - k8sClient := createK8sClientFor(&v1.HTTPRoute{}) - - for _, r := range routes { - err := k8sClient.Create(context.Background(), r.Source) - g.Expect(err).ToNot(HaveOccurred()) - } - - updater := NewUpdater(k8sClient, logr.Discard()) - - reqs := PrepareRouteRequests( - map[graph.L4RouteKey]*graph.L4Route{}, - routes, - transitionTime, - graph.NginxReloadResult{Error: errors.New("test error")}, - gatewayCtlrName, - ) - - g.Expect(reqs).To(HaveLen(1)) - - updater.Update(context.Background(), reqs...) - - var hr v1.HTTPRoute - - err := k8sClient.Get(context.Background(), routeKey.NamespacedName, &hr) - g.Expect(err).ToNot(HaveOccurred()) - g.Expect(helpers.Diff(expectedStatus, hr.Status)).To(BeEmpty()) -} - func TestBuildGatewayClassStatuses(t *testing.T) { t.Parallel() transitionTime := helpers.PrepareTimeForFakeClient(metav1.Now()) diff --git a/tests/suite/snippets_filter_test.go b/tests/suite/snippets_filter_test.go index 8a45d2277b..4fd6e9c3c2 100644 --- a/tests/suite/snippets_filter_test.go +++ b/tests/suite/snippets_filter_test.go @@ -14,7 +14,6 @@ import ( v1 "sigs.k8s.io/gateway-api/apis/v1" ngfAPI "github.com/nginx/nginx-gateway-fabric/v2/apis/v1alpha1" - "github.com/nginx/nginx-gateway-fabric/v2/internal/controller/state/conditions" "github.com/nginx/nginx-gateway-fabric/v2/tests/framework" ) @@ -28,7 +27,8 @@ var _ = Describe("SnippetsFilter", Ordered, Label("functional", "snippets-filter namespace = "snippets-filter" - nginxPodName string + nginxPodName string + gatewayNsName = types.NamespacedName{Name: "gateway", Namespace: namespace} ) BeforeAll(func() { @@ -230,9 +230,8 @@ var _ = Describe("SnippetsFilter", Ordered, Label("functional", "snippets-filter Expect(resourceManager.ApplyFromFiles(files, namespace)).To(Succeed()) - nsname := types.NamespacedName{Name: "tea", Namespace: namespace} - Eventually(checkHTTPRouteToHaveGatewayNotProgrammedCond). - WithArguments(nsname). + Eventually(checkGatewayToHaveGatewayNotProgrammedCond). + WithArguments(gatewayNsName). WithTimeout(timeoutConfig.GetStatusTimeout). WithPolling(500 * time.Millisecond). Should(Succeed()) @@ -245,9 +244,8 @@ var _ = Describe("SnippetsFilter", Ordered, Label("functional", "snippets-filter Expect(resourceManager.ApplyFromFiles(files, namespace)).To(Succeed()) - nsname := types.NamespacedName{Name: "soda", Namespace: namespace} - Eventually(checkHTTPRouteToHaveGatewayNotProgrammedCond). - WithArguments(nsname). + Eventually(checkGatewayToHaveGatewayNotProgrammedCond). + WithArguments(gatewayNsName). WithTimeout(timeoutConfig.GetStatusTimeout). WithPolling(500 * time.Millisecond). Should(Succeed()) @@ -257,42 +255,52 @@ var _ = Describe("SnippetsFilter", Ordered, Label("functional", "snippets-filter }) }) -func checkHTTPRouteToHaveGatewayNotProgrammedCond(httpRouteNsName types.NamespacedName) error { +func checkGatewayToHaveGatewayNotProgrammedCond(gatewayNsName types.NamespacedName) error { ctx, cancel := context.WithTimeout(context.Background(), timeoutConfig.GetTimeout) defer cancel() GinkgoWriter.Printf( - "Checking for HTTPRoute %q to have the condition Accepted/True/GatewayNotProgrammed\n", - httpRouteNsName, + "Checking for Gateway %q to have the condition Programmed/False/Invalid \n", + gatewayNsName, ) - var hr v1.HTTPRoute + var gw v1.Gateway var err error - if err = k8sClient.Get(ctx, httpRouteNsName, &hr); err != nil { + if err = k8sClient.Get(ctx, gatewayNsName, &gw); err != nil { return err } - if len(hr.Status.Parents) != 1 { - return fmt.Errorf("httproute has %d parent statuses, expected 1", len(hr.Status.Parents)) + gwStatus := gw.Status + if gwStatus.Conditions == nil { + nilConditionErr := fmt.Errorf("expected gateway conditions to not be nil") + GinkgoWriter.Printf("ERROR: %v\n", nilConditionErr) + + return nilConditionErr } - parent := hr.Status.Parents[0] - if parent.Conditions == nil { - return fmt.Errorf("expected parent conditions to not be nil") + for i := range gwStatus.Conditions { + GinkgoWriter.Printf("Gateway condition %d: Type=%s, Status=%s, Reason=%s\n", + i, gwStatus.Conditions[i].Type, gwStatus.Conditions[i].Status, gwStatus.Conditions[i].Reason) } - cond := parent.Conditions[1] - if cond.Type != string(v1.GatewayConditionAccepted) { - return fmt.Errorf("expected condition type to be Accepted, got %s", cond.Type) + cond := gwStatus.Conditions[1] + if cond.Type != string(v1.GatewayConditionProgrammed) { + wrongTypeErr := fmt.Errorf("expected condition type to be Programmed, got %s", cond.Type) + GinkgoWriter.Printf("ERROR: %v\n", wrongTypeErr) + + return wrongTypeErr } if cond.Status != metav1.ConditionFalse { return fmt.Errorf("expected condition status to be False, got %s", cond.Status) } - if cond.Reason != string(conditions.RouteReasonGatewayNotProgrammed) { - return fmt.Errorf("expected condition reason to be GatewayNotProgrammed, got %s", cond.Reason) + if cond.Reason != string(v1.GatewayReasonInvalid) { + wrongReasonErr := fmt.Errorf("expected condition reason to be GatewayReasonInvalid, got %s", cond.Reason) + GinkgoWriter.Printf("ERROR: %v\n", wrongReasonErr) + + return wrongReasonErr } return nil From 4b7ff0ee39ce5682dc31588f458228a45b014a8c Mon Sep 17 00:00:00 2001 From: bjee19 <139261241+bjee19@users.noreply.github.com> Date: Fri, 19 Sep 2025 12:58:17 -0700 Subject: [PATCH 17/22] Revert agent reload backoff settings (#3937) (#3939) Revert changes to agent reload backoff settings due to a fix added in Agent v3.3.1. Tested SnippetsFilter Functional on NGINX Plus test to ensure changes work. --- internal/controller/provisioner/templates.go | 8 -------- 1 file changed, 8 deletions(-) diff --git a/internal/controller/provisioner/templates.go b/internal/controller/provisioner/templates.go index d52700ad2f..cc436ec93e 100644 --- a/internal/controller/provisioner/templates.go +++ b/internal/controller/provisioner/templates.go @@ -90,12 +90,4 @@ collector: receivers: ["host_metrics", "nginx_metrics"] exporters: ["prometheus"] {{- end }} -data_plane_config: - nginx: - reload_backoff: - initial_interval: .5s - max_interval: 1.5s - max_elapsed_time: 3s - randomization_factor: 0.5 - multiplier: 1.5 ` From 1d3ce3a59f6e8834dab3105ced3c9724b23241b2 Mon Sep 17 00:00:00 2001 From: Saylor Berman Date: Wed, 24 Sep 2025 13:06:13 -0600 Subject: [PATCH 18/22] Move certs job service account token (#3951) (#3952) Problem: For security reasons, it's best practice to not have automountServiceToken on the ServiceAccount, and instead set in directly on the workloads that need the token. Solution: Set this field on the Pods instead of the ServiceAccounts. This was missed as part of the original PR. --- charts/nginx-gateway-fabric/templates/certs-job.yaml | 2 ++ deploy/azure/deploy.yaml | 2 ++ deploy/default/deploy.yaml | 2 ++ deploy/experimental-nginx-plus/deploy.yaml | 2 ++ deploy/experimental/deploy.yaml | 2 ++ deploy/nginx-plus/deploy.yaml | 2 ++ deploy/nodeport/deploy.yaml | 2 ++ deploy/openshift/deploy.yaml | 2 ++ deploy/snippets-filters-nginx-plus/deploy.yaml | 2 ++ deploy/snippets-filters/deploy.yaml | 2 ++ 10 files changed, 20 insertions(+) diff --git a/charts/nginx-gateway-fabric/templates/certs-job.yaml b/charts/nginx-gateway-fabric/templates/certs-job.yaml index 430fa0de3f..a403e5f92e 100644 --- a/charts/nginx-gateway-fabric/templates/certs-job.yaml +++ b/charts/nginx-gateway-fabric/templates/certs-job.yaml @@ -7,6 +7,7 @@ metadata: {{- include "nginx-gateway.labels" . | nindent 4 }} annotations: "helm.sh/hook": pre-install +automountServiceAccountToken: false {{- if or .Values.nginxGateway.serviceAccount.imagePullSecret .Values.nginxGateway.serviceAccount.imagePullSecrets }} imagePullSecrets: {{- if .Values.nginxGateway.serviceAccount.imagePullSecret }} @@ -120,6 +121,7 @@ spec: {{ toYaml . | nindent 8 }} {{- end }} spec: + automountServiceAccountToken: true containers: - args: - generate-certs diff --git a/deploy/azure/deploy.yaml b/deploy/azure/deploy.yaml index 92f169f525..c49a79b6fb 100644 --- a/deploy/azure/deploy.yaml +++ b/deploy/azure/deploy.yaml @@ -15,6 +15,7 @@ metadata: namespace: nginx-gateway --- apiVersion: v1 +automountServiceAccountToken: false kind: ServiceAccount metadata: labels: @@ -341,6 +342,7 @@ spec: metadata: annotations: null spec: + automountServiceAccountToken: true containers: - args: - generate-certs diff --git a/deploy/default/deploy.yaml b/deploy/default/deploy.yaml index e10d6e1f12..53e89f16cb 100644 --- a/deploy/default/deploy.yaml +++ b/deploy/default/deploy.yaml @@ -15,6 +15,7 @@ metadata: namespace: nginx-gateway --- apiVersion: v1 +automountServiceAccountToken: false kind: ServiceAccount metadata: labels: @@ -339,6 +340,7 @@ spec: metadata: annotations: null spec: + automountServiceAccountToken: true containers: - args: - generate-certs diff --git a/deploy/experimental-nginx-plus/deploy.yaml b/deploy/experimental-nginx-plus/deploy.yaml index 82048a8763..8a0887f3f4 100644 --- a/deploy/experimental-nginx-plus/deploy.yaml +++ b/deploy/experimental-nginx-plus/deploy.yaml @@ -15,6 +15,7 @@ metadata: namespace: nginx-gateway --- apiVersion: v1 +automountServiceAccountToken: false kind: ServiceAccount metadata: labels: @@ -347,6 +348,7 @@ spec: metadata: annotations: null spec: + automountServiceAccountToken: true containers: - args: - generate-certs diff --git a/deploy/experimental/deploy.yaml b/deploy/experimental/deploy.yaml index 9bba074135..9ebaaaf80b 100644 --- a/deploy/experimental/deploy.yaml +++ b/deploy/experimental/deploy.yaml @@ -15,6 +15,7 @@ metadata: namespace: nginx-gateway --- apiVersion: v1 +automountServiceAccountToken: false kind: ServiceAccount metadata: labels: @@ -344,6 +345,7 @@ spec: metadata: annotations: null spec: + automountServiceAccountToken: true containers: - args: - generate-certs diff --git a/deploy/nginx-plus/deploy.yaml b/deploy/nginx-plus/deploy.yaml index a3b05e169c..0f12692d95 100644 --- a/deploy/nginx-plus/deploy.yaml +++ b/deploy/nginx-plus/deploy.yaml @@ -15,6 +15,7 @@ metadata: namespace: nginx-gateway --- apiVersion: v1 +automountServiceAccountToken: false kind: ServiceAccount metadata: labels: @@ -342,6 +343,7 @@ spec: metadata: annotations: null spec: + automountServiceAccountToken: true containers: - args: - generate-certs diff --git a/deploy/nodeport/deploy.yaml b/deploy/nodeport/deploy.yaml index 978648ccd3..4e15e86cbc 100644 --- a/deploy/nodeport/deploy.yaml +++ b/deploy/nodeport/deploy.yaml @@ -15,6 +15,7 @@ metadata: namespace: nginx-gateway --- apiVersion: v1 +automountServiceAccountToken: false kind: ServiceAccount metadata: labels: @@ -339,6 +340,7 @@ spec: metadata: annotations: null spec: + automountServiceAccountToken: true containers: - args: - generate-certs diff --git a/deploy/openshift/deploy.yaml b/deploy/openshift/deploy.yaml index 784c4c3bc9..aba1bdcc8b 100644 --- a/deploy/openshift/deploy.yaml +++ b/deploy/openshift/deploy.yaml @@ -15,6 +15,7 @@ metadata: namespace: nginx-gateway --- apiVersion: v1 +automountServiceAccountToken: false kind: ServiceAccount metadata: labels: @@ -361,6 +362,7 @@ spec: metadata: annotations: null spec: + automountServiceAccountToken: true containers: - args: - generate-certs diff --git a/deploy/snippets-filters-nginx-plus/deploy.yaml b/deploy/snippets-filters-nginx-plus/deploy.yaml index 1b4754534c..fa3487cc3a 100644 --- a/deploy/snippets-filters-nginx-plus/deploy.yaml +++ b/deploy/snippets-filters-nginx-plus/deploy.yaml @@ -15,6 +15,7 @@ metadata: namespace: nginx-gateway --- apiVersion: v1 +automountServiceAccountToken: false kind: ServiceAccount metadata: labels: @@ -345,6 +346,7 @@ spec: metadata: annotations: null spec: + automountServiceAccountToken: true containers: - args: - generate-certs diff --git a/deploy/snippets-filters/deploy.yaml b/deploy/snippets-filters/deploy.yaml index 37ded55d63..c1d7b98ae6 100644 --- a/deploy/snippets-filters/deploy.yaml +++ b/deploy/snippets-filters/deploy.yaml @@ -15,6 +15,7 @@ metadata: namespace: nginx-gateway --- apiVersion: v1 +automountServiceAccountToken: false kind: ServiceAccount metadata: labels: @@ -342,6 +343,7 @@ spec: metadata: annotations: null spec: + automountServiceAccountToken: true containers: - args: - generate-certs From 936fc8ef476a0d1ff593bab3235bf2fbc7885136 Mon Sep 17 00:00:00 2001 From: Saloni Choudhary <146118978+salonichf5@users.noreply.github.com> Date: Thu, 25 Sep 2025 01:54:32 +0530 Subject: [PATCH 19/22] Add nginx image version validation during agent connections (#3928) (#3953) Problem: During an NGF upgrade, the new version of the control plane will send a configuration to the old version of the nginx data plane, before the nginx data plane is updated to the new version. This can cause incompatibility issues for a brief amount of time, which could cause disruptions. Solution: Implement version validation by ensuring the pod image matches the image in the current deployment/ daemonset spec to prevent configuration from being sent to nginx data plane pods still running the previous image version during upgrades. Co-authored-by: Ciara Stacke <18287516+ciarams87@users.noreply.github.com> --- internal/controller/handler.go | 7 ++ internal/controller/nginx/agent/command.go | 66 ++++++++-- .../controller/nginx/agent/command_test.go | 114 ++++++++++++------ internal/controller/nginx/agent/deployment.go | 10 ++ internal/controller/provisioner/objects.go | 68 ++++++----- 5 files changed, 185 insertions(+), 80 deletions(-) diff --git a/internal/controller/handler.go b/internal/controller/handler.go index cb39229056..5271980c43 100644 --- a/internal/controller/handler.go +++ b/internal/controller/handler.go @@ -208,6 +208,13 @@ func (h *eventHandlerImpl) sendNginxConfig(ctx context.Context, logger logr.Logg panic("expected deployment, got nil") } + nginxImage, _ := provisioner.DetermineNginxImageName( + gw.EffectiveNginxProxy, + h.cfg.plus, + h.cfg.gatewayPodConfig.Version, + ) + deployment.SetImageVersion(nginxImage) + cfg := dataplane.BuildConfiguration(ctx, logger, gr, gw, h.cfg.serviceResolver, h.cfg.plus) depCtx, getErr := h.getDeploymentContext(ctx) if getErr != nil { diff --git a/internal/controller/nginx/agent/command.go b/internal/controller/nginx/agent/command.go index cc89a47fd5..f3095f7398 100644 --- a/internal/controller/nginx/agent/command.go +++ b/internal/controller/nginx/agent/command.go @@ -86,7 +86,7 @@ func (cs *commandService) CreateConnection( podName := resource.GetContainerInfo().GetHostname() cs.logger.Info(fmt.Sprintf("Creating connection for nginx pod: %s", podName)) - owner, err := cs.getPodOwner(podName) + owner, _, err := cs.getPodOwner(podName) if err != nil { response := &pb.CreateConnectionResponse{ Response: &pb.CommandResponse{ @@ -281,6 +281,17 @@ func (cs *commandService) setInitialConfig( deployment.FileLock.Lock() defer deployment.FileLock.Unlock() + _, pod, err := cs.getPodOwner(conn.PodName) + if err != nil { + cs.logAndSendErrorStatus(deployment, conn, err) + + return grpcStatus.Error(codes.Internal, err.Error()) + } + if err := cs.validatePodImageVersion(pod, deployment.imageVersion); err != nil { + cs.logAndSendErrorStatus(deployment, conn, err) + return grpcStatus.Errorf(codes.FailedPrecondition, "nginx image version validation failed: %s", err.Error()) + } + fileOverviews, configVersion := deployment.GetFileOverviews() cs.logger.Info("Sending initial configuration to agent", "pod", conn.PodName, "configVersion", configVersion) @@ -443,7 +454,7 @@ func buildPlusAPIRequest(action *pb.NGINXPlusAction, instanceID string) *pb.Mana } } -func (cs *commandService) getPodOwner(podName string) (types.NamespacedName, error) { +func (cs *commandService) getPodOwner(podName string) (types.NamespacedName, *v1.Pod, error) { ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) defer cancel() @@ -452,30 +463,31 @@ func (cs *commandService) getPodOwner(podName string) (types.NamespacedName, err FieldSelector: fields.SelectorFromSet(fields.Set{"metadata.name": podName}), } if err := cs.k8sReader.List(ctx, &pods, listOpts); err != nil { - return types.NamespacedName{}, fmt.Errorf("error listing pods: %w", err) + return types.NamespacedName{}, nil, fmt.Errorf("error listing pods: %w", err) } if len(pods.Items) == 0 { - return types.NamespacedName{}, fmt.Errorf("no pods found with name %q", podName) + return types.NamespacedName{}, nil, fmt.Errorf("no pods found with name %q", podName) } if len(pods.Items) > 1 { - return types.NamespacedName{}, fmt.Errorf("should only be one pod with name %q", podName) + return types.NamespacedName{}, nil, fmt.Errorf("should only be one pod with name %q", podName) } - pod := pods.Items[0] + pod := &pods.Items[0] podOwnerRefs := pod.GetOwnerReferences() if len(podOwnerRefs) != 1 { - return types.NamespacedName{}, fmt.Errorf("expected one owner reference of the nginx Pod, got %d", len(podOwnerRefs)) + tooManyOwnersError := "expected one owner reference of the nginx Pod, got %d" + return types.NamespacedName{}, nil, fmt.Errorf(tooManyOwnersError, len(podOwnerRefs)) } if podOwnerRefs[0].Kind != "ReplicaSet" && podOwnerRefs[0].Kind != "DaemonSet" { err := fmt.Errorf("expected pod owner reference to be ReplicaSet or DaemonSet, got %s", podOwnerRefs[0].Kind) - return types.NamespacedName{}, err + return types.NamespacedName{}, nil, err } if podOwnerRefs[0].Kind == "DaemonSet" { - return types.NamespacedName{Namespace: pod.Namespace, Name: podOwnerRefs[0].Name}, nil + return types.NamespacedName{Namespace: pod.Namespace, Name: podOwnerRefs[0].Name}, pod, nil } var replicaSet appsv1.ReplicaSet @@ -497,16 +509,46 @@ func (cs *commandService) getPodOwner(podName string) (types.NamespacedName, err return true, nil }, ); err != nil { - return types.NamespacedName{}, fmt.Errorf("failed to get nginx Pod's ReplicaSet: %w", replicaSetErr) + return types.NamespacedName{}, nil, fmt.Errorf("failed to get nginx Pod's ReplicaSet: %w", replicaSetErr) } replicaOwnerRefs := replicaSet.GetOwnerReferences() if len(replicaOwnerRefs) != 1 { err := fmt.Errorf("expected one owner reference of the nginx ReplicaSet, got %d", len(replicaOwnerRefs)) - return types.NamespacedName{}, err + return types.NamespacedName{}, nil, err + } + + return types.NamespacedName{Namespace: pod.Namespace, Name: replicaOwnerRefs[0].Name}, pod, nil +} + +// validatePodImageVersion checks if the pod's nginx container image version matches the expected version +// from its deployment. Returns an error if versions don't match. +func (cs *commandService) validatePodImageVersion( + pod *v1.Pod, + expectedImage string, +) error { + var podNginxImage string + + for _, container := range pod.Spec.Containers { + if container.Name == "nginx" { + podNginxImage = container.Image + break + } + } + if podNginxImage == "" { + return fmt.Errorf("nginx container not found in pod %q", pod.Name) + } + + // Compare images + if podNginxImage != expectedImage { + return fmt.Errorf("nginx image version mismatch: pod has %q but expected %q", podNginxImage, expectedImage) } - return types.NamespacedName{Namespace: pod.Namespace, Name: replicaOwnerRefs[0].Name}, nil + cs.logger.V(1).Info("Pod nginx image version validated successfully", + "podName", pod.Name, + "image", podNginxImage) + + return nil } // UpdateDataPlaneStatus is called by agent on startup and upon any change in agent metadata, diff --git a/internal/controller/nginx/agent/command_test.go b/internal/controller/nginx/agent/command_test.go index 634cc0eddb..b7365aa1c8 100644 --- a/internal/controller/nginx/agent/command_test.go +++ b/internal/controller/nginx/agent/command_test.go @@ -85,6 +85,48 @@ func createGrpcContextWithCancel() (context.Context, context.CancelFunc) { }), cancel } +func getDefaultPodList() []runtime.Object { + pod := &v1.PodList{ + Items: []v1.Pod{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "nginx-pod", + Namespace: "test", + OwnerReferences: []metav1.OwnerReference{ + { + Kind: "ReplicaSet", + Name: "nginx-replicaset", + }, + }, + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Image: "nginx:v1.0.0", + Name: "nginx", + }, + }, + }, + }, + }, + } + + replicaSet := &appsv1.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{ + Name: "nginx-replicaset", + Namespace: "test", + OwnerReferences: []metav1.OwnerReference{ + { + Kind: "Deployment", + Name: "nginx-deployment", + }, + }, + }, + } + + return []runtime.Object{pod, replicaSet} +} + func TestCreateConnection(t *testing.T) { t.Parallel() @@ -165,40 +207,9 @@ func TestCreateConnection(t *testing.T) { connTracker := agentgrpcfakes.FakeConnectionsTracker{} var objs []runtime.Object - if test.errString == "" { - pod := &v1.PodList{ - Items: []v1.Pod{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: "nginx-pod", - Namespace: "test", - OwnerReferences: []metav1.OwnerReference{ - { - Kind: "ReplicaSet", - Name: "nginx-replicaset", - }, - }, - }, - }, - }, - } - - replicaSet := &appsv1.ReplicaSet{ - ObjectMeta: metav1.ObjectMeta{ - Name: "nginx-replicaset", - Namespace: "test", - OwnerReferences: []metav1.OwnerReference{ - { - Kind: "Deployment", - Name: "nginx-deployment", - }, - }, - }, - } - - objs = []runtime.Object{pod, replicaSet} + if test.errString != "error getting pod owner" { + objs = getDefaultPodList() } - fakeClient, err := createFakeK8sClient(objs...) g.Expect(err).ToNot(HaveOccurred()) @@ -298,10 +309,13 @@ func TestSubscribe(t *testing.T) { } connTracker.GetConnectionReturns(conn) + fakeClient, err := createFakeK8sClient(getDefaultPodList()...) + g.Expect(err).ToNot(HaveOccurred()) + store := NewDeploymentStore(&connTracker) cs := newCommandService( logr.Discard(), - fake.NewFakeClient(), + fakeClient, store, &connTracker, status.NewQueue(), @@ -329,6 +343,7 @@ func TestSubscribe(t *testing.T) { }, } deployment.SetFiles(files) + deployment.SetImageVersion("nginx:v1.0.0") initialAction := &pb.NGINXPlusAction{ Action: &pb.NGINXPlusAction_UpdateHttpUpstreamServers{}, @@ -439,11 +454,14 @@ func TestSubscribe_Reset(t *testing.T) { } connTracker.GetConnectionReturns(conn) + fakeClient, err := createFakeK8sClient(getDefaultPodList()...) + g.Expect(err).ToNot(HaveOccurred()) + store := NewDeploymentStore(&connTracker) resetChan := make(chan struct{}) cs := newCommandService( logr.Discard(), - fake.NewFakeClient(), + fakeClient, store, &connTracker, status.NewQueue(), @@ -471,6 +489,7 @@ func TestSubscribe_Reset(t *testing.T) { }, } deployment.SetFiles(files) + deployment.SetImageVersion("nginx:v1.0.0") ctx, cancel := createGrpcContextWithCancel() defer cancel() @@ -590,9 +609,10 @@ func TestSetInitialConfig_Errors(t *testing.T) { t.Parallel() tests := []struct { - name string setup func(msgr *messengerfakes.FakeMessenger, deployment *Deployment) + name string errString string + podList []runtime.Object }{ { name: "error sending initial config", @@ -652,6 +672,13 @@ func TestSetInitialConfig_Errors(t *testing.T) { }, errString: "api apply error", }, + { + name: "error validating nginx version", + setup: func(_ *messengerfakes.FakeMessenger, deployment *Deployment) { + deployment.SetImageVersion("nginx:v2.0.0") + }, + errString: "nginx image version mismatch: pod has \"nginx:v1.0.0\" but expected \"nginx:v2.0.0\"", + }, } for _, test := range tests { @@ -662,9 +689,17 @@ func TestSetInitialConfig_Errors(t *testing.T) { connTracker := agentgrpcfakes.FakeConnectionsTracker{} msgr := &messengerfakes.FakeMessenger{} + podList := test.podList + if len(podList) == 0 { + podList = getDefaultPodList() + } + + fakeClient, err := createFakeK8sClient(podList...) + g.Expect(err).ToNot(HaveOccurred()) + cs := newCommandService( logr.Discard(), - fake.NewFakeClient(), + fakeClient, NewDeploymentStore(&connTracker), &connTracker, status.NewQueue(), @@ -678,12 +713,13 @@ func TestSetInitialConfig_Errors(t *testing.T) { } deployment := newDeployment(&broadcastfakes.FakeBroadcaster{}) + deployment.SetImageVersion("nginx:v1.0.0") if test.setup != nil { test.setup(msgr, deployment) } - err := cs.setInitialConfig(context.Background(), deployment, conn, msgr) + err = cs.setInitialConfig(context.Background(), deployment, conn, msgr) g.Expect(err).To(HaveOccurred()) g.Expect(err.Error()).To(ContainSubstring(test.errString)) @@ -882,7 +918,7 @@ func TestGetPodOwner(t *testing.T) { nil, ) - owner, err := cs.getPodOwner(test.podName) + owner, _, err := cs.getPodOwner(test.podName) if test.errString != "" { g.Expect(err).To(HaveOccurred()) diff --git a/internal/controller/nginx/agent/deployment.go b/internal/controller/nginx/agent/deployment.go index 7e9aa3aba5..93f8b692cf 100644 --- a/internal/controller/nginx/agent/deployment.go +++ b/internal/controller/nginx/agent/deployment.go @@ -40,6 +40,8 @@ type Deployment struct { broadcaster broadcast.Broadcaster + imageVersion string + configVersion string // error that is set if a ConfigApply call failed for a Pod. This is needed // because if subsequent upstream API calls are made within the same update event, @@ -73,6 +75,14 @@ func (d *Deployment) GetBroadcaster() broadcast.Broadcaster { return d.broadcaster } +// SetImageVersion sets the deployment's image version. +func (d *Deployment) SetImageVersion(imageVersion string) { + d.FileLock.Lock() + defer d.FileLock.Unlock() + + d.imageVersion = imageVersion +} + // SetLatestConfigError sets the latest config apply error for the deployment. func (d *Deployment) SetLatestConfigError(err error) { d.errLock.Lock() diff --git a/internal/controller/provisioner/objects.go b/internal/controller/provisioner/objects.go index 14b3cbcc72..3d0f6c3325 100644 --- a/internal/controller/provisioner/objects.go +++ b/internal/controller/provisioner/objects.go @@ -1112,35 +1112,7 @@ func (p *NginxProvisioner) buildNginxPodTemplateSpec( } func (p *NginxProvisioner) buildImage(nProxyCfg *graph.EffectiveNginxProxy) (string, corev1.PullPolicy) { - image := defaultNginxImagePath - tag := p.cfg.GatewayPodConfig.Version - pullPolicy := defaultImagePullPolicy - - getImageAndPullPolicy := func(container ngfAPIv1alpha2.ContainerSpec) (string, string, corev1.PullPolicy) { - if container.Image != nil { - if container.Image.Repository != nil { - image = *container.Image.Repository - } - if container.Image.Tag != nil { - tag = *container.Image.Tag - } - if container.Image.PullPolicy != nil { - pullPolicy = corev1.PullPolicy(*container.Image.PullPolicy) - } - } - - return image, tag, pullPolicy - } - - if nProxyCfg != nil && nProxyCfg.Kubernetes != nil { - if nProxyCfg.Kubernetes.Deployment != nil { - image, tag, pullPolicy = getImageAndPullPolicy(nProxyCfg.Kubernetes.Deployment.Container) - } else if nProxyCfg.Kubernetes.DaemonSet != nil { - image, tag, pullPolicy = getImageAndPullPolicy(nProxyCfg.Kubernetes.DaemonSet.Container) - } - } - - return fmt.Sprintf("%s:%s", image, tag), pullPolicy + return DetermineNginxImageName(nProxyCfg, p.cfg.Plus, p.cfg.GatewayPodConfig.Version) } func buildNginxDeploymentHPA( @@ -1381,3 +1353,41 @@ func (p *NginxProvisioner) buildReadinessProbe(nProxyCfg *graph.EffectiveNginxPr return probe } + +func DetermineNginxImageName( + nProxyCfg *graph.EffectiveNginxProxy, + isPlus bool, version string, +) (string, corev1.PullPolicy) { + image := defaultNginxImagePath + if isPlus { + image = defaultNginxPlusImagePath + } + tag := version + pullPolicy := defaultImagePullPolicy + + getImageAndPullPolicy := func(container ngfAPIv1alpha2.ContainerSpec) (string, string, corev1.PullPolicy) { + if container.Image != nil { + if container.Image.Repository != nil { + image = *container.Image.Repository + } + if container.Image.Tag != nil { + tag = *container.Image.Tag + } + if container.Image.PullPolicy != nil { + pullPolicy = corev1.PullPolicy(*container.Image.PullPolicy) + } + } + + return image, tag, pullPolicy + } + + if nProxyCfg != nil && nProxyCfg.Kubernetes != nil { + if nProxyCfg.Kubernetes.Deployment != nil { + image, tag, pullPolicy = getImageAndPullPolicy(nProxyCfg.Kubernetes.Deployment.Container) + } else if nProxyCfg.Kubernetes.DaemonSet != nil { + image, tag, pullPolicy = getImageAndPullPolicy(nProxyCfg.Kubernetes.DaemonSet.Container) + } + } + + return fmt.Sprintf("%s:%s", image, tag), pullPolicy +} From 08fd1a5076d49a4d05430fc59458e2e6f72c6a77 Mon Sep 17 00:00:00 2001 From: salonichf5 <146118978+salonichf5@users.noreply.github.com> Date: Thu, 25 Sep 2025 08:27:43 -0500 Subject: [PATCH 20/22] NFR test results for release 2.1.2 --- .../release-2.1.2/release-2.1.2-oss.md | 86 ++++ .../release-2.1.2/release-2.1.2-plus.md | 86 ++++ .../ngf-upgrade/release-2.1.2/http-oss.png | Bin 0 -> 9903 bytes .../ngf-upgrade/release-2.1.2/http-plus.png | Bin 0 -> 10146 bytes .../ngf-upgrade/release-2.1.2/https-oss.png | Bin 0 -> 9903 bytes .../ngf-upgrade/release-2.1.2/https-plus.png | Bin 0 -> 10146 bytes .../release-2.1.2/release-2.1.2-oss.md | 53 +++ .../release-2.1.2/release-2.1.2-plus.md | 57 +++ .../release-2.1.2/release-2.1.2-oss.md | 111 +++++ .../release-2.1.2/release-2.1.2-plus.md | 105 +++++ .../TestScale_HTTPRoutes/cpu-oss.png | Bin 0 -> 28851 bytes .../TestScale_HTTPRoutes/cpu-plus.png | Bin 0 -> 28750 bytes .../TestScale_HTTPRoutes/memory-oss.png | Bin 0 -> 27369 bytes .../TestScale_HTTPRoutes/memory-plus.png | Bin 0 -> 23292 bytes .../TestScale_HTTPRoutes/ttr-oss.png | Bin 0 -> 70122 bytes .../TestScale_HTTPRoutes/ttr-plus.png | Bin 0 -> 26103 bytes .../TestScale_HTTPSListeners/cpu-oss.png | Bin 0 -> 23053 bytes .../TestScale_HTTPSListeners/cpu-plus.png | Bin 0 -> 23874 bytes .../TestScale_HTTPSListeners/memory-oss.png | Bin 0 -> 20775 bytes .../TestScale_HTTPSListeners/memory-plus.png | Bin 0 -> 22420 bytes .../TestScale_HTTPSListeners/ngf-oss.log | 2 + .../TestScale_HTTPSListeners/ngf-plus.log | 4 + .../TestScale_HTTPSListeners/nginx-plus.log | 174 ++++++++ .../TestScale_HTTPSListeners/ttr-oss.png | Bin 0 -> 16744 bytes .../TestScale_HTTPSListeners/ttr-plus.png | Bin 0 -> 40537 bytes .../TestScale_Listeners/cpu-oss.png | Bin 0 -> 22177 bytes .../TestScale_Listeners/cpu-plus.png | Bin 0 -> 24344 bytes .../TestScale_Listeners/memory-oss.png | Bin 0 -> 23866 bytes .../TestScale_Listeners/memory-plus.png | Bin 0 -> 20525 bytes .../TestScale_Listeners/ngf-oss.log | 2 + .../TestScale_Listeners/ngf-plus.log | 5 + .../TestScale_Listeners/nginx-plus.log | 401 ++++++++++++++++++ .../TestScale_Listeners/ttr-oss.png | Bin 0 -> 18413 bytes .../TestScale_Listeners/ttr-plus.png | Bin 0 -> 49361 bytes .../TestScale_UpstreamServers/cpu-oss.png | Bin 0 -> 20746 bytes .../TestScale_UpstreamServers/cpu-plus.png | Bin 0 -> 22515 bytes .../TestScale_UpstreamServers/memory-oss.png | Bin 0 -> 22552 bytes .../TestScale_UpstreamServers/memory-plus.png | Bin 0 -> 22197 bytes .../TestScale_UpstreamServers/ngf-oss.log | 1 + .../TestScale_UpstreamServers/ngf-plus.log | 3 + .../scale/release-2.1.2/release-2.1.2-oss.md | 148 +++++++ .../scale/release-2.1.2/release-2.1.2-plus.md | 148 +++++++ .../abrupt-scale-down-affinity-http-oss.png | Bin 0 -> 9899 bytes .../abrupt-scale-down-affinity-http-plus.png | Bin 0 -> 10458 bytes .../abrupt-scale-down-affinity-https-oss.png | Bin 0 -> 9899 bytes .../abrupt-scale-down-affinity-https-plus.png | Bin 0 -> 10458 bytes .../abrupt-scale-down-http-oss.png | Bin 0 -> 9834 bytes .../abrupt-scale-down-http-plus.png | Bin 0 -> 10268 bytes .../abrupt-scale-down-https-oss.png | Bin 0 -> 9834 bytes .../abrupt-scale-down-https-plus.png | Bin 0 -> 10268 bytes .../abrupt-scale-up-affinity-http-oss.png | Bin 0 -> 9663 bytes .../abrupt-scale-up-affinity-http-plus.png | Bin 0 -> 9869 bytes .../abrupt-scale-up-affinity-https-oss.png | Bin 0 -> 9663 bytes .../abrupt-scale-up-affinity-https-plus.png | Bin 0 -> 9869 bytes .../abrupt-scale-up-http-oss.png | Bin 0 -> 9682 bytes .../abrupt-scale-up-http-plus.png | Bin 0 -> 9848 bytes .../abrupt-scale-up-https-oss.png | Bin 0 -> 9682 bytes .../abrupt-scale-up-https-plus.png | Bin 0 -> 9848 bytes .../gradual-scale-down-affinity-http-oss.png | Bin 0 -> 10410 bytes .../gradual-scale-down-affinity-http-plus.png | Bin 0 -> 10406 bytes .../gradual-scale-down-affinity-https-oss.png | Bin 0 -> 10410 bytes ...gradual-scale-down-affinity-https-plus.png | Bin 0 -> 10406 bytes .../gradual-scale-down-http-oss.png | Bin 0 -> 9766 bytes .../gradual-scale-down-http-plus.png | Bin 0 -> 9777 bytes .../gradual-scale-down-https-oss.png | Bin 0 -> 9766 bytes .../gradual-scale-down-https-plus.png | Bin 0 -> 9777 bytes .../gradual-scale-up-affinity-http-oss.png | Bin 0 -> 9756 bytes .../gradual-scale-up-affinity-http-plus.png | Bin 0 -> 9850 bytes .../gradual-scale-up-affinity-https-oss.png | Bin 0 -> 9756 bytes .../gradual-scale-up-affinity-https-plus.png | Bin 0 -> 9850 bytes .../gradual-scale-up-http-oss.png | Bin 0 -> 9482 bytes .../gradual-scale-up-http-plus.png | Bin 0 -> 9776 bytes .../gradual-scale-up-https-oss.png | Bin 0 -> 9482 bytes .../gradual-scale-up-https-plus.png | Bin 0 -> 9776 bytes .../release-2.1.2/release-2.1.2-oss.md | 281 ++++++++++++ .../release-2.1.2/release-2.1.2-plus.md | 281 ++++++++++++ 76 files changed, 1948 insertions(+) create mode 100644 tests/results/dp-perf/release-2.1.2/release-2.1.2-oss.md create mode 100644 tests/results/dp-perf/release-2.1.2/release-2.1.2-plus.md create mode 100644 tests/results/ngf-upgrade/release-2.1.2/http-oss.png create mode 100644 tests/results/ngf-upgrade/release-2.1.2/http-plus.png create mode 100644 tests/results/ngf-upgrade/release-2.1.2/https-oss.png create mode 100644 tests/results/ngf-upgrade/release-2.1.2/https-plus.png create mode 100644 tests/results/ngf-upgrade/release-2.1.2/release-2.1.2-oss.md create mode 100644 tests/results/ngf-upgrade/release-2.1.2/release-2.1.2-plus.md create mode 100644 tests/results/reconfig/release-2.1.2/release-2.1.2-oss.md create mode 100644 tests/results/reconfig/release-2.1.2/release-2.1.2-plus.md create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/cpu-oss.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/cpu-plus.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/memory-oss.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/memory-plus.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/ttr-oss.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/ttr-plus.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/cpu-oss.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/cpu-plus.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/memory-oss.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/memory-plus.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/ngf-oss.log create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/ngf-plus.log create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/nginx-plus.log create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/ttr-oss.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/ttr-plus.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_Listeners/cpu-oss.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_Listeners/cpu-plus.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_Listeners/memory-oss.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_Listeners/memory-plus.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_Listeners/ngf-oss.log create mode 100644 tests/results/scale/release-2.1.2/TestScale_Listeners/ngf-plus.log create mode 100644 tests/results/scale/release-2.1.2/TestScale_Listeners/nginx-plus.log create mode 100644 tests/results/scale/release-2.1.2/TestScale_Listeners/ttr-oss.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_Listeners/ttr-plus.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_UpstreamServers/cpu-oss.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_UpstreamServers/cpu-plus.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_UpstreamServers/memory-oss.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_UpstreamServers/memory-plus.png create mode 100644 tests/results/scale/release-2.1.2/TestScale_UpstreamServers/ngf-oss.log create mode 100644 tests/results/scale/release-2.1.2/TestScale_UpstreamServers/ngf-plus.log create mode 100644 tests/results/scale/release-2.1.2/release-2.1.2-oss.md create mode 100644 tests/results/scale/release-2.1.2/release-2.1.2-plus.md create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-affinity-http-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-affinity-http-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-affinity-https-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-affinity-https-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-http-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-http-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-https-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-https-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-affinity-http-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-affinity-http-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-affinity-https-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-affinity-https-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-http-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-http-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-https-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-https-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-affinity-http-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-affinity-http-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-affinity-https-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-affinity-https-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-http-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-http-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-https-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-https-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-affinity-http-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-affinity-http-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-affinity-https-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-affinity-https-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-http-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-http-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-https-oss.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-https-plus.png create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/release-2.1.2-oss.md create mode 100644 tests/results/zero-downtime-scale/release-2.1.2/release-2.1.2-plus.md diff --git a/tests/results/dp-perf/release-2.1.2/release-2.1.2-oss.md b/tests/results/dp-perf/release-2.1.2/release-2.1.2-oss.md new file mode 100644 index 0000000000..8eff6379b9 --- /dev/null +++ b/tests/results/dp-perf/release-2.1.2/release-2.1.2-oss.md @@ -0,0 +1,86 @@ +# Results + +## Test environment + +NGINX Plus: false + +NGINX Gateway Fabric: + +- Commit: 8241478604f782eca497329ae47507b978d117b1 +- Date: 2025-09-24T18:19:40Z +- Dirty: false + +GKE Cluster: + +- Node count: 15 +- k8s version: v1.33.4-gke.1134000 +- vCPUs per node: 2 +- RAM per node: 4015668Ki +- Max pods per node: 110 +- Zone: us-east1-b +- Instance Type: e2-medium + +## Test1: Running latte path based routing + +```text +Requests [total, rate, throughput] 30000, 1000.03, 999.97 +Duration [total, attack, wait] 30.001s, 29.999s, 1.799ms +Latencies [min, mean, 50, 90, 95, 99, max] 909.791µs, 1.868ms, 1.507ms, 2.142ms, 2.756ms, 8.611ms, 60.614ms +Bytes In [total, mean] 4770000, 159.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test2: Running coffee header based routing + +```text +Requests [total, rate, throughput] 30000, 1000.00, 999.95 +Duration [total, attack, wait] 30.002s, 30s, 1.712ms +Latencies [min, mean, 50, 90, 95, 99, max] 991.792µs, 2.102ms, 1.659ms, 2.466ms, 3.321ms, 11.629ms, 73.799ms +Bytes In [total, mean] 4800000, 160.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test3: Running coffee query based routing + +```text +Requests [total, rate, throughput] 30000, 1000.04, 999.98 +Duration [total, attack, wait] 30.001s, 29.999s, 1.599ms +Latencies [min, mean, 50, 90, 95, 99, max] 964.301µs, 2.088ms, 1.589ms, 2.194ms, 2.891ms, 12.188ms, 77.709ms +Bytes In [total, mean] 5040000, 168.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test4: Running tea GET method based routing + +```text +Requests [total, rate, throughput] 30000, 1000.01, 999.96 +Duration [total, attack, wait] 30.001s, 30s, 1.373ms +Latencies [min, mean, 50, 90, 95, 99, max] 935.247µs, 1.88ms, 1.503ms, 2.006ms, 2.429ms, 11.029ms, 73.867ms +Bytes In [total, mean] 4710000, 157.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test5: Running tea POST method based routing + +```text +Requests [total, rate, throughput] 30000, 1000.01, 999.97 +Duration [total, attack, wait] 30.001s, 30s, 1.329ms +Latencies [min, mean, 50, 90, 95, 99, max] 981.259µs, 1.759ms, 1.535ms, 1.991ms, 2.43ms, 7.522ms, 29.702ms +Bytes In [total, mean] 4710000, 157.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` diff --git a/tests/results/dp-perf/release-2.1.2/release-2.1.2-plus.md b/tests/results/dp-perf/release-2.1.2/release-2.1.2-plus.md new file mode 100644 index 0000000000..87a07d08c5 --- /dev/null +++ b/tests/results/dp-perf/release-2.1.2/release-2.1.2-plus.md @@ -0,0 +1,86 @@ +# Results + +## Test environment + +NGINX Plus: true + +NGINX Gateway Fabric: + +- Commit: 8241478604f782eca497329ae47507b978d117b1 +- Date: 2025-09-25T01:19:35Z +- Dirty: false + +GKE Cluster: + +- Node count: 15 +- k8s version: v1.33.4-gke.1134000 +- vCPUs per node: 2 +- RAM per node: 4015672Ki +- Max pods per node: 110 +- Zone: us-south1-a +- Instance Type: e2-medium + +## Test1: Running latte path based routing + +```text +Requests [total, rate, throughput] 30000, 1000.04, 1000.01 +Duration [total, attack, wait] 30s, 29.999s, 899.747µs +Latencies [min, mean, 50, 90, 95, 99, max] 755.39µs, 1.083ms, 972.127µs, 1.139ms, 1.257ms, 3.409ms, 34.066ms +Bytes In [total, mean] 4830000, 161.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test2: Running coffee header based routing + +```text +Requests [total, rate, throughput] 30000, 1000.04, 1000.01 +Duration [total, attack, wait] 30s, 29.999s, 960.429µs +Latencies [min, mean, 50, 90, 95, 99, max] 790.502µs, 1.086ms, 1.017ms, 1.192ms, 1.293ms, 2.776ms, 13.993ms +Bytes In [total, mean] 4860000, 162.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test3: Running coffee query based routing + +```text +Requests [total, rate, throughput] 30000, 1000.00, 999.97 +Duration [total, attack, wait] 30.001s, 30s, 956.779µs +Latencies [min, mean, 50, 90, 95, 99, max] 807.149µs, 1.174ms, 1.02ms, 1.204ms, 1.338ms, 4.79ms, 37.843ms +Bytes In [total, mean] 5100000, 170.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test4: Running tea GET method based routing + +```text +Requests [total, rate, throughput] 30000, 1000.04, 1000.00 +Duration [total, attack, wait] 30s, 29.999s, 1.032ms +Latencies [min, mean, 50, 90, 95, 99, max] 773.587µs, 1.065ms, 1.006ms, 1.176ms, 1.264ms, 2.48ms, 20.731ms +Bytes In [total, mean] 4770000, 159.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +## Test5: Running tea POST method based routing + +```text +Requests [total, rate, throughput] 30000, 1000.00, 999.97 +Duration [total, attack, wait] 30.001s, 30s, 937.91µs +Latencies [min, mean, 50, 90, 95, 99, max] 805.184µs, 1.194ms, 1.011ms, 1.191ms, 1.312ms, 4.171ms, 58.715ms +Bytes In [total, mean] 4770000, 159.00 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` diff --git a/tests/results/ngf-upgrade/release-2.1.2/http-oss.png b/tests/results/ngf-upgrade/release-2.1.2/http-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..f0aabc0cc9f0913556ff02edfa92790cdb7e9cf8 GIT binary patch literal 9903 zcmeHtcT|(Kw{@8icXYJC5i&0 zlpv7~iJ(XcBuMX|(gQ>Y5JE_Dcf51U`Q3Ydf7~lf=|8`o`Jhd>}UqK+Rvg+NIDfIxiZ@Xc57jofBAHTZ9B&~e8Q1VZMm_@6|AhRiku z;s*rk@FBa1w3z{HP{LyJ>p8>kelD%MEaQMtKeEo%v%UQ4<{feC0^=fBy18+V7=Q1F zPC*pyxXu~96OIZcy>h=}IOcnoRvKr=6jfpWTkBJ+C$;^XEqECO+va`*LDh;MckAP`sA zY9cOse6=3&L(<>*)nf}S=i=O9Zq&lW+@uYDMMX5HvTf_uc~g65!L*Ng#fO{Q7{=^M zWz(qWDO*yCIbKMO;m@1e9iw;sxZO1B)$qd6d&+`|r}vg-`bs2sN$7noKT^#i)6!35 zF3k>LMFOsl)2oROu__Gi;q1jCa?DJB2(ua2WJu#RH#|_gr>K9PPSlE(QF@V^+g};U z$xL)xdAAMywOi%`KmL!eoY;d^wpJUq?wiO;4Q%Z1FAi|V$|Clu75so+;j;1EfpB;1 zOp%Sb07Lb;SVa=8j?2l($(pZzetOR=>cb6%rHS`m)7>vmpFVx$$PxYXP4!%i(z6FT zHP>X#B9=dYh_;cyyFkP}1)guFSS&ohZzu~L*jGFQA((LcL$FKJyfS9YEKSIwr6{k8 zH|OcmyHh=s@zeIMi;Ws&m+*m5!~P(PsIHlkA)ya`$;V1o$T1gjQqfdoh(0|ze5QBN z9=~XRO2M(-!QV|^(kI1fQEDq=ktXk~kFpSA~k}EPcB1;hAwv4yAM=^vxNfw zP{gOZR_;4j`e=f_>TA+$i1p^SzzKLZNjOQ$qP3}rmg}A#yEh9zFz9mO%vP}XKYAvo z5t0@68IDG7^X9aLv#su{weBuqJ>FW1KXI%E;FdA`B|)P-HMnuF_4u=rZ0aks48l4s*CJSP!;iMB4ga@vRTZEe^23P6?d>gxWXb=E%lysScQB_-Rt#E zfwo)=!Q$E2A?)&pSQd-r9FZ{XlMX)`tit;F`ad@+#p-R-m z69R#-kZM&CHsgyMySvTMI!X754>MgYfTZVrA_~puv5rizcZ>AyFTI2!RDP~m4?BVz zz9Owh=A5>-cgG7B6WwtY2PtEnUh65N|*w5Y~ zKUfb9Rt=Fd9~qb26>pGk%*q19VBptzE^MZUlKtX^Z)dI}?2*8#8Ga`tY`bbo+(_MVni$q(@CXAK{X!Uy#Y})aXcps;tT9gHh~<>b7Q_WM=g0TwU@f zHS4q_o{5#CW6$#3C;f`SXijrYP0hu&tV}c`#ej8NBmY8FUSVNjQw$}I_x9GN8#iuf zoXI^f`r4{3yA1Q8IaxoOmk$e4ke6p9?R~oQlL4)9q~XD_J6qmkhVNYZ^zN>r{;rS^ zkx&4Km0}zoxN;s!f}jeekz55gdlM^be(B@kDEj;;ef|3Na4Kzv&Q*Fo<=;SxcirD% zp;wU}@$pvRKsg*L7FkyxZOiJ+qnn|6QKaem_Pr2`Zeph(L80H^cx%My~iP9_z=HZ~C<^n`>2?0{syhCnw`E49VRo-|N|x8I0YosxOtf_5 z*sGxmL&h19^5+Isnvh2csylb?G>uv~FmU_Pb9wDwE!Rj|qdX1`ra=V&6mJ8Rd=x&& zdw)zN;o(CJt25wz#u2qD#wuRK#iIxtw&*@CEsX$lvSPL@oTuRg@!OHD7`C)Z^nKxv z{Nx9!yoGFY!5bA}0hNjqtSnmG+>ne6IY0Jh5^0rgQkIo92GDGDk$-dJwpMINe3whq zu&pv=$SDVh?tR$=)gCC?*HzvrXDjJLUJxV*N|}}PC5E>b@)&W7fy6V9JqJm zLqH&NPLsaYb~5iYQQNf~%bkT5Upe<~Tdb@~ety2NHIe#ou;{}34B!jU1o6ytQ;3-C z!$|ANb1r!xJp41gD9YREVK=Pt+jW#R0}&1JyXivRh;o4B|*IFx1RRE7eBs%anL`+GQyV6jUUHqf1h1MqaN2n%SNo2}$9 zT3cIHQ7OXj`%y1myf72-n2AK9yqw&|ZTqLG{8|3+HCbz;U3^G{`KcUomZuG4X$1HZls^AWw2tYd$5)*Aw_s@4 zfZLibv{*o|l$KR?sfr4gX)lL0ibw zf%a^br0Y5S`bw%HnmV42HCz4s1{&8hQ92)ROZZw+)*r}S>oe5GjT@mT#Y_|GxgXG4 zvm#h_M&AK(Fb8v&=^=)-8wzeoCXvAxFHTPPP{h>@IG4$q0*2@a_*Zjdy_!|ZLsb-a zc0fZzgEciZOA`q-D|&@m5{MD|#Ax+;4Y(T%bJrg9)`44pr_A~@CEGvpz2p@g42Pma z4jrmi3h)0e!WyzuO|u{!J6opU7V+fw-*-=4hs3cv>7jHW$YZv@40^ddK*ZiF2I#@c zCl;}TG28(wLr|lb_TPU6>g0 zB)zH%XAeShk*O`sLKr)cpKBka9VVGb8;{h?dMyzfS^{h~X>H^mN=Rmod^!By$>wg5Fmb zA>q0~R098WDqN3v%<^s1a6m&F45#r2GA$FA*hA)YPs;gbBS_(-ynnToM=qZ9jF;lnzCnpJR2! zAZ)t3U1h2*n+X|j`@FsVxounBL%;$#IbiwCP*c@cr2qx!{eN5%BO(VY<5%aPBtg@p z!6^X8;5GS}>BAPl?s^Z2S6SrcQ3dt8UP0Rh3g;Q>0YP;Vgc^``SJwdncZlR|&u^AQ zwCokPBdX5vDls zn=TJu6I(6=72H|{_tg&286a`2WV=hyL*N^kdAz<1fMos1XtAiv&5!2>sQAL_%4s(@ zDriNfT=4K{(7MRo9zkFvUy9F71&ehd*#q{kow(q#B#KFX%Vl(epsm?2s(#qfi z#c7vM5S;^2Xk^4^4W_lHP1c0>GDf`qZFJHY{04i=JYmAxr#naOh zg+ei^kaGJTs5ZPfox^Bcx8^d%d1VsY0iVv~oj~7OS$SC9BJq{kxB*_css=vE^X&9; zut`z_nO(8{2J#4umJ;t*ZvNa3E;{EChDq9wH0n>uo&7Hmax!=b*GmY`ZW`-Q0vRLqm0h%>G;2t1_=qq-`2Ya$5wt$>^FWC@3<8) zJl!TW_~X}z$H@Om=l>gq|Ie@fP3!z~C;kC^^{4bSNM@oUdefQJReFJ)6g@A;GkE4F7!}sdc zS$pVVm-QiFqd&kiP+eX9qQ8GGnau1u4lqA0m-+H?G2Ph%jK;D4uMjPAq4cgBmX?;X zN=EG%I(^VJIN=n`y?XWPgW_kWo&yZ-M9p{M1zjk@a&H%PX;GaP*s$J?zOI<- z$fGm#DKPk9oxu;7Y%#hiTPBIe1n(!_D}UoSttq<7;YjFbqNdYI4MvKgr)+ZSBk-#GsxF_Anx z9Y&;G?Er-hhRg;PvsFO0s)>v^Alx)Scw)QU!M;cN8SQf4W>``;kH~5MaGN$FgZF35 z(?$m6fu>$~L|GMcR!YMEA<5T!Fvz%mc+qH>97oS8S`i za*}>)lehtXlhNc1GV6=)^8dvmx`hY02@0!E#3QF0SV}2xEOq_5b+e_P;)(7#lDqsH zs=)=R5G?gcZ`jfTWahbTHWd`V77u3}T)*V-?v>c`2DuJ~MitCsM6+z+EZA+?#?Fk> zzO{N`BiHkA9(6K~uC6h4O5qD|Mvos4i${aWIE6@(E?c(tZ?Y#fr3XU>O-N6lh}~in zv~Nhb1T(n~2tsVF1ije^Qzjj7;%M}wkeW*K&8bGCZSJjRHrg*O#$puv*hr&>PZ|z= zC1@MLAk;PE0veorZa+*BezCJ_zwHLM29F#cJ8xxW1vJy1%CZl9z=im?lwy}5dNQ@#Zj~jc|iI`0biweG_q{pUr?u(jRRz4NjI0IDGC-KwJgh^SlH zX|Ja^qLn9`jn82x^aj^;AP{R#i{Aw>F_+`WJAn8FPOV}R@fm!KIhdgq2eHvOPAUK* zILb7pf25E%4!%;Nj{D%0UlI3uk4@44gUDk#ljE1_<&}euZt84rcL{FTdCzpITg{x; z04?FpR)Z;VN>A=;DmxM2_%1$Kmk)`q!WJKJj1w{<^B{6kzl z)JhDG?yd~erZi-T-ZtY7z4YLk>8`1ywG?wfQQHH{>H9t8j=h`Ct31}CC&j+rvu6*m z=~(cYVQ^InGu)Jv6qpox4=y%QxvF5;r|W|+j|?&6_b`h;LK1p1uE{E!bOUG43jg=6 z!8Q@62vtmX4bg68!K09=;Q0-Lj{*Z_Q)p|;>NW`>2~H(Ao)29XD*+-geV&T6S3jrN7y4xjcj#Ml*JfAhcrn&e+;e_X6W1}!SHaNSAJE&5 z!Hzq=X|qZaI4PNo)T!WIoSm_K0VN={awgLr`6${LdM=3}1xXV2PB!cetA|s$yf#Fp zh3MTR@+p9KC``}Q-xu4nC%IG@mJA7I!xOb#due#leZLzv-Gpm@^xuV~g=}?bzDCUZ z0m#0|+0#x=DXIMaKO3KsE^(3zCLpckdFkx;irZ)mroSNf1%}vFzMA)SNs9158 zsyK+px1gQLmGh1I1JES8AGpQSD_0MMPPLzL(TJ`gZa4XF)tC9xwSCz7;pu0^s-GtINWdwDNk}&6Y@1o9zpEt2lkf&=>w=A3hN7y zl$Pm-q4qItFUF2OFGX+$|MkUyIWX+Iy1MWz=b=5Cnl996p1K;q&3{JsNwW_Rx!%xb z2UTvvnEN>48NB3x>1zCf=K3a^*)R|TlT|!L1!J`z+0Xr8L7hBu5NaEh{>yh}~ z>CbromN{H+f7z89nxG*!Wq2!bsRS81B=ayGV!uU9-2g4vU>=XmC+W>MESFmV_a!QcVm gqxe6O!9taetX&?%($*&M1{wl&#QJdl&mLF*1*`ebFaQ7m literal 0 HcmV?d00001 diff --git a/tests/results/ngf-upgrade/release-2.1.2/http-plus.png b/tests/results/ngf-upgrade/release-2.1.2/http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..13fa449578d2098cbcb99feeaf2c775140c9e76d GIT binary patch literal 10146 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 literal 0 HcmV?d00001 diff --git a/tests/results/ngf-upgrade/release-2.1.2/https-oss.png b/tests/results/ngf-upgrade/release-2.1.2/https-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..f0aabc0cc9f0913556ff02edfa92790cdb7e9cf8 GIT binary patch literal 9903 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 literal 0 HcmV?d00001 diff --git a/tests/results/ngf-upgrade/release-2.1.2/https-plus.png b/tests/results/ngf-upgrade/release-2.1.2/https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..13fa449578d2098cbcb99feeaf2c775140c9e76d GIT binary patch literal 10146 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 literal 0 HcmV?d00001 diff --git a/tests/results/ngf-upgrade/release-2.1.2/release-2.1.2-oss.md b/tests/results/ngf-upgrade/release-2.1.2/release-2.1.2-oss.md new file mode 100644 index 0000000000..9cd1545a99 --- /dev/null +++ b/tests/results/ngf-upgrade/release-2.1.2/release-2.1.2-oss.md @@ -0,0 +1,53 @@ +# Results + +## Test environment + +NGINX Plus: false + +NGINX Gateway Fabric: + +- Commit: 8241478604f782eca497329ae47507b978d117b1 +- Date: 2025-09-24T18:19:40Z +- Dirty: false + +GKE Cluster: + +- Node count: 15 +- k8s version: v1.33.4-gke.1134000 +- vCPUs per node: 2 +- RAM per node: 4015668Ki +- Max pods per node: 110 +- Zone: us-east1-b +- Instance Type: e2-medium + +## Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 6000, 100.01, 99.66 +Duration [total, attack, wait] 59.994s, 59.993s, 1.742ms +Latencies [min, mean, 50, 90, 95, 99, max] 579.788µs, 236.428ms, 1.95ms, 12.814ms, 2.333s, 4.553s, 5.076s +Bytes In [total, mean] 928726, 154.79 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 99.65% +Status Codes [code:count] 0:21 200:5979 +Error Set: +Get "https://cafe.example.com/tea": dial tcp 0.0.0.0:0->10.142.0.59:443: connect: connection refused +``` + +![https-oss.png](https-oss.png) + +## Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 6000, 100.01, 99.64 +Duration [total, attack, wait] 59.994s, 59.992s, 1.987ms +Latencies [min, mean, 50, 90, 95, 99, max] 591.987µs, 232.293ms, 1.892ms, 12.183ms, 2.28s, 4.543s, 5.056s +Bytes In [total, mean] 962458, 160.41 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 99.63% +Status Codes [code:count] 0:22 200:5978 +Error Set: +Get "http://cafe.example.com/coffee": dial tcp 0.0.0.0:0->10.142.0.59:80: connect: connection refused +``` + +![http-oss.png](http-oss.png) diff --git a/tests/results/ngf-upgrade/release-2.1.2/release-2.1.2-plus.md b/tests/results/ngf-upgrade/release-2.1.2/release-2.1.2-plus.md new file mode 100644 index 0000000000..fcd02d5f8c --- /dev/null +++ b/tests/results/ngf-upgrade/release-2.1.2/release-2.1.2-plus.md @@ -0,0 +1,57 @@ +# Results + +## Test environment + +NGINX Plus: true + +NGINX Gateway Fabric: + +- Commit: 8241478604f782eca497329ae47507b978d117b1 +- Date: 2025-09-25T01:19:35Z +- Dirty: false + +GKE Cluster: + +- Node count: 15 +- k8s version: v1.33.4-gke.1134000 +- vCPUs per node: 2 +- RAM per node: 4015672Ki +- Max pods per node: 110 +- Zone: us-south1-a +- Instance Type: e2-medium + +## Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 6000, 100.01, 99.61 +Duration [total, attack, wait] 59.994s, 59.992s, 2.553ms +Latencies [min, mean, 50, 90, 95, 99, max] 501.4µs, 629.899ms, 1.546ms, 2.856s, 5.518s, 7.81s, 8.341s +Bytes In [total, mean] 928271, 154.71 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 99.60% +Status Codes [code:count] 0:24 200:5976 +Error Set: +Get "https://cafe.example.com/tea": read tcp 10.206.0.17:60039->10.206.0.24:443: read: connection reset by peer +Get "https://cafe.example.com/tea": write tcp 10.206.0.17:44027->10.206.0.24:443: write: connection reset by peer +Get "https://cafe.example.com/tea": dial tcp 0.0.0.0:0->10.206.0.24:443: connect: connection refused +``` + +![https-plus.png](https-plus.png) + +## Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 6000, 100.01, 99.61 +Duration [total, attack, wait] 59.994s, 59.992s, 2.318ms +Latencies [min, mean, 50, 90, 95, 99, max] 492.213µs, 611.258ms, 1.381ms, 2.64s, 5.498s, 7.789s, 8.344s +Bytes In [total, mean] 962095, 160.35 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 99.60% +Status Codes [code:count] 0:24 200:5976 +Error Set: +Get "http://cafe.example.com/coffee": read tcp 10.206.0.17:42805->10.206.0.24:80: read: connection reset by peer +Get "http://cafe.example.com/coffee": read tcp 10.206.0.17:46097->10.206.0.24:80: read: connection reset by peer +Get "http://cafe.example.com/coffee": dial tcp 0.0.0.0:0->10.206.0.24:80: connect: connection refused +``` + +![http-plus.png](http-plus.png) diff --git a/tests/results/reconfig/release-2.1.2/release-2.1.2-oss.md b/tests/results/reconfig/release-2.1.2/release-2.1.2-oss.md new file mode 100644 index 0000000000..379726047f --- /dev/null +++ b/tests/results/reconfig/release-2.1.2/release-2.1.2-oss.md @@ -0,0 +1,111 @@ +# Results + +## Test environment + +NGINX Plus: false + +NGINX Gateway Fabric: + +- Commit: 8241478604f782eca497329ae47507b978d117b1 +- Date: 2025-09-24T18:19:40Z +- Dirty: false + +GKE Cluster: + +- Node count: 15 +- k8s version: v1.33.4-gke.1134000 +- vCPUs per node: 2 +- RAM per node: 4015668Ki +- Max pods per node: 110 +- Zone: us-east1-b +- Instance Type: e2-medium + +## Test 1: Resources exist before startup - NumResources 30 + +### Time to Ready + +Time To Ready Description: From when NGF starts to when the NGINX configuration is fully configured +- TimeToReadyTotal: 23s + +### Event Batch Processing + +- Event Batch Total: 10 +- Event Batch Processing Average Time: 12ms +- Event Batch Processing distribution: + - 500.0ms: 10 + - 1000.0ms: 10 + - 5000.0ms: 10 + - 10000.0ms: 10 + - 30000.0ms: 10 + - +Infms: 10 + +### NGINX Error Logs + +## Test 1: Resources exist before startup - NumResources 150 + +### Time to Ready + +Time To Ready Description: From when NGF starts to when the NGINX configuration is fully configured +- TimeToReadyTotal: 25s + +### Event Batch Processing + +- Event Batch Total: 9 +- Event Batch Processing Average Time: 37ms +- Event Batch Processing distribution: + - 500.0ms: 9 + - 1000.0ms: 9 + - 5000.0ms: 9 + - 10000.0ms: 9 + - 30000.0ms: 9 + - +Infms: 9 + +### NGINX Error Logs + +## Test 2: Start NGF, deploy Gateway, wait until NGINX agent instance connects to NGF, create many resources attached to GW - NumResources 30 + +### Time to Ready + +Time To Ready Description: From when NGINX receives the first configuration created by NGF to when the NGINX configuration is fully configured +- TimeToReadyTotal: 24s + +### Event Batch Processing + +- Event Batch Total: 272 +- Event Batch Processing Average Time: 28ms +- Event Batch Processing distribution: + - 500.0ms: 266 + - 1000.0ms: 272 + - 5000.0ms: 272 + - 10000.0ms: 272 + - 30000.0ms: 272 + - +Infms: 272 + +### NGINX Error Logs +2025/09/25 03:10:51 [emerg] 8#8: unexpected end of file, expecting "}" in /etc/nginx/conf.d/http.conf:459 +2025/09/25 03:10:56 [emerg] 8#8: unexpected end of file, expecting "}" in /etc/nginx/conf.d/http.conf:2433 + +## Test 2: Start NGF, deploy Gateway, wait until NGINX agent instance connects to NGF, create many resources attached to GW - NumResources 150 + +### Time to Ready + +Time To Ready Description: From when NGINX receives the first configuration created by NGF to when the NGINX configuration is fully configured +- TimeToReadyTotal: 123s + +### Event Batch Processing + +- Event Batch Total: 1315 +- Event Batch Processing Average Time: 23ms +- Event Batch Processing distribution: + - 500.0ms: 1277 + - 1000.0ms: 1314 + - 5000.0ms: 1315 + - 10000.0ms: 1315 + - 30000.0ms: 1315 + - +Infms: 1315 + +### NGINX Error Logs +2025/09/25 03:15:10 [emerg] 8#8: unexpected end of file, expecting "}" in /etc/nginx/conf.d/http.conf:1466 +2025/09/25 03:15:14 [emerg] 8#8: unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/http.conf:3065 +2025/09/25 03:15:15 [emerg] 8#8: unexpected end of file, expecting "}" in /etc/nginx/conf.d/http.conf:3560 +2025/09/25 03:15:23 [emerg] 8#8: directive "upstream" has no opening "{" in /etc/nginx/conf.d/http.conf:7773 diff --git a/tests/results/reconfig/release-2.1.2/release-2.1.2-plus.md b/tests/results/reconfig/release-2.1.2/release-2.1.2-plus.md new file mode 100644 index 0000000000..ffda419fd4 --- /dev/null +++ b/tests/results/reconfig/release-2.1.2/release-2.1.2-plus.md @@ -0,0 +1,105 @@ +# Results + +## Test environment + +NGINX Plus: true + +NGINX Gateway Fabric: + +- Commit: 8241478604f782eca497329ae47507b978d117b1 +- Date: 2025-09-25T01:19:35Z +- Dirty: false + +GKE Cluster: + +- Node count: 15 +- k8s version: v1.33.4-gke.1134000 +- vCPUs per node: 2 +- RAM per node: 4015672Ki +- Max pods per node: 110 +- Zone: us-south1-a +- Instance Type: e2-medium + +## Test 1: Resources exist before startup - NumResources 30 + +### Time to Ready + +Time To Ready Description: From when NGF starts to when the NGINX configuration is fully configured +- TimeToReadyTotal: 18s + +### Event Batch Processing + +- Event Batch Total: 8 +- Event Batch Processing Average Time: 22ms +- Event Batch Processing distribution: + - 500.0ms: 8 + - 1000.0ms: 8 + - 5000.0ms: 8 + - 10000.0ms: 8 + - 30000.0ms: 8 + - +Infms: 8 + +### NGINX Error Logs + +## Test 1: Resources exist before startup - NumResources 150 + +### Time to Ready + +Time To Ready Description: From when NGF starts to when the NGINX configuration is fully configured +- TimeToReadyTotal: 28s + +### Event Batch Processing + +- Event Batch Total: 8 +- Event Batch Processing Average Time: 39ms +- Event Batch Processing distribution: + - 500.0ms: 8 + - 1000.0ms: 8 + - 5000.0ms: 8 + - 10000.0ms: 8 + - 30000.0ms: 8 + - +Infms: 8 + +### NGINX Error Logs + +## Test 2: Start NGF, deploy Gateway, wait until NGINX agent instance connects to NGF, create many resources attached to GW - NumResources 30 + +### Time to Ready + +Time To Ready Description: From when NGINX receives the first configuration created by NGF to when the NGINX configuration is fully configured +- TimeToReadyTotal: 21s + +### Event Batch Processing + +- Event Batch Total: 206 +- Event Batch Processing Average Time: 41ms +- Event Batch Processing distribution: + - 500.0ms: 199 + - 1000.0ms: 203 + - 5000.0ms: 206 + - 10000.0ms: 206 + - 30000.0ms: 206 + - +Infms: 206 + +### NGINX Error Logs + +## Test 2: Start NGF, deploy Gateway, wait until NGINX agent instance connects to NGF, create many resources attached to GW - NumResources 150 + +### Time to Ready + +Time To Ready Description: From when NGINX receives the first configuration created by NGF to when the NGINX configuration is fully configured +- TimeToReadyTotal: 113s + +### Event Batch Processing + +- Event Batch Total: 1021 +- Event Batch Processing Average Time: 33ms +- Event Batch Processing distribution: + - 500.0ms: 1000 + - 1000.0ms: 1008 + - 5000.0ms: 1021 + - 10000.0ms: 1021 + - 30000.0ms: 1021 + - +Infms: 1021 + +### NGINX Error Logs diff --git a/tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/cpu-oss.png b/tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/cpu-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..30074d63715b9a04b8050c2871fc8e361b58b89e GIT binary patch literal 28851 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 PpM)dox@y^~R)PNqdgc1# literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/cpu-plus.png b/tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/cpu-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..9db69c224a317df9acc3309089925680975f905d GIT binary patch literal 28750 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 HP5u81$!V!& literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/memory-oss.png b/tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/memory-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbb0aa38825598ba26168d9c1a7d584fc7d9c37 GIT binary patch literal 27369 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 Ti7P31AKSj&2eh-O^o#!mChpyG literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/memory-plus.png b/tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/memory-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..cbd1eba2da8a1feca51fecc66423ba04d65c9891 GIT binary patch literal 23292 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 FzW@{XwtN5p literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/ttr-oss.png b/tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/ttr-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..7a1d6fa7bf082bef9b686d472c24d07924bd1579 GIT binary patch literal 70122 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≶T3{| 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 SXe{_5LS9-$>W!pn(EkGQ6h2%4 literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/ttr-plus.png b/tests/results/scale/release-2.1.2/TestScale_HTTPRoutes/ttr-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..8faa35b2a05eef830b75c59128d82a25038c03ef GIT binary patch literal 26103 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/cpu-plus.png b/tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/cpu-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..8186e3c23219535868e7a895afca86eb35722038 GIT binary patch literal 23874 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 A-v9sr literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/memory-oss.png b/tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/memory-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..2c03bd4670f3b437d2dccd0a27dd093a316144f2 GIT binary patch literal 20775 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 XZ(gA>)`u1mL8K&P9_EVay!pQX65?UR literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/memory-plus.png b/tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/memory-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..10b31c555840cd0282a9915a2e2b1c581dafed19 GIT binary patch literal 22420 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 RU;s%ZRptG=;&+;y`#;PfbFTmZ literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/ttr-plus.png b/tests/results/scale/release-2.1.2/TestScale_HTTPSListeners/ttr-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..1c9737db9ababd3d53f48a5670465017c5d4a0fb GIT binary patch literal 40537 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%0Do$G;e?Nr@DhQtBRA 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_Listeners/cpu-plus.png b/tests/results/scale/release-2.1.2/TestScale_Listeners/cpu-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..fa8ab25754c4a036b861091dc34746b629e5cb04 GIT binary patch literal 24344 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_Listeners/memory-oss.png b/tests/results/scale/release-2.1.2/TestScale_Listeners/memory-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..9ec851f531b1470c80270cfb8524ff5267bee674 GIT binary patch literal 23866 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_Listeners/memory-plus.png b/tests/results/scale/release-2.1.2/TestScale_Listeners/memory-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..63883a2966cbcf85b522c1830a5de83d60c552fc GIT binary patch literal 20525 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_Listeners/ngf-oss.log b/tests/results/scale/release-2.1.2/TestScale_Listeners/ngf-oss.log new file mode 100644 index 0000000000..bd4c80853f --- /dev/null +++ b/tests/results/scale/release-2.1.2/TestScale_Listeners/ngf-oss.log @@ -0,0 +1,2 @@ +{"level":"debug","ts":"2025-09-25T03:26:15Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-09-25T03:26:37Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} diff --git a/tests/results/scale/release-2.1.2/TestScale_Listeners/ngf-plus.log b/tests/results/scale/release-2.1.2/TestScale_Listeners/ngf-plus.log new file mode 100644 index 0000000000..857eaf1616 --- /dev/null +++ b/tests/results/scale/release-2.1.2/TestScale_Listeners/ngf-plus.log @@ -0,0 +1,5 @@ +{"level":"debug","ts":"2025-09-25T04:28:05Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-09-25T04:28:53Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-09-25T04:28:55Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-09-25T04:29:09Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} +{"level":"debug","ts":"2025-09-25T04:29:19Z","logger":"statusUpdater","msg":"Encountered error updating status","error":"Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"gateway\": the object has been modified; please apply your changes to the latest version and try again","namespace":"scale","name":"gateway","kind":"Gateway"} diff --git a/tests/results/scale/release-2.1.2/TestScale_Listeners/nginx-plus.log b/tests/results/scale/release-2.1.2/TestScale_Listeners/nginx-plus.log new file mode 100644 index 0000000000..d8a1ee95e5 --- /dev/null +++ b/tests/results/scale/release-2.1.2/TestScale_Listeners/nginx-plus.log @@ -0,0 +1,401 @@ +2025/09/25 04:28:44 [error] 57#57: *41 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 1.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-1_80/", host: "1.example.com" +2025/09/25 04:28:44 [error] 56#56: *42 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 1.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-1_80/", host: "1.example.com" +2025/09/25 04:28:44 [error] 60#60: *53 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 2.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-2_80/", host: "2.example.com" +2025/09/25 04:28:45 [error] 61#61: *54 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 2.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-2_80/", host: "2.example.com" +2025/09/25 04:28:45 [error] 60#60: *55 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 2.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-2_80/", host: "2.example.com" +2025/09/25 04:28:45 [error] 60#60: *56 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 2.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-2_80/", host: "2.example.com" +2025/09/25 04:28:45 [error] 60#60: *57 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 2.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-2_80/", host: "2.example.com" +2025/09/25 04:28:45 [error] 65#65: *68 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 3.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-3_80/", host: "3.example.com" +2025/09/25 04:28:45 [error] 64#64: *69 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 3.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-3_80/", host: "3.example.com" +2025/09/25 04:28:46 [error] 65#65: *70 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 3.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-3_80/", host: "3.example.com" +2025/09/25 04:28:46 [error] 65#65: *71 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 3.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-3_80/", host: "3.example.com" +2025/09/25 04:28:46 [error] 68#68: *83 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 4.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-4_80/", host: "4.example.com" +2025/09/25 04:28:46 [error] 69#69: *84 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 4.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-4_80/", host: "4.example.com" +2025/09/25 04:28:46 [error] 68#68: *85 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 4.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-4_80/", host: "4.example.com" +2025/09/25 04:28:47 [error] 72#72: *98 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 5.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-5_80/", host: "5.example.com" +2025/09/25 04:28:47 [error] 73#73: *99 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 5.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-5_80/", host: "5.example.com" +2025/09/25 04:28:47 [error] 72#72: *100 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 5.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-5_80/", host: "5.example.com" +2025/09/25 04:28:47 [error] 72#72: *101 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 5.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-5_80/", host: "5.example.com" +2025/09/25 04:28:47 [error] 72#72: *102 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 5.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-5_80/", host: "5.example.com" +2025/09/25 04:28:47 [error] 72#72: *103 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 5.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-5_80/", host: "5.example.com" +2025/09/25 04:28:48 [error] 77#77: *117 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 6.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-6_80/", host: "6.example.com" +2025/09/25 04:28:48 [error] 76#76: *118 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 6.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-6_80/", host: "6.example.com" +2025/09/25 04:28:48 [error] 77#77: *121 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 6.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-6_80/", host: "6.example.com" +2025/09/25 04:28:49 [error] 80#80: *134 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 7.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-7_80/", host: "7.example.com" +2025/09/25 04:28:49 [error] 81#81: *135 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 7.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-7_80/", host: "7.example.com" +2025/09/25 04:28:49 [error] 80#80: *136 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 7.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-7_80/", host: "7.example.com" +2025/09/25 04:28:49 [error] 80#80: *137 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 7.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-7_80/", host: "7.example.com" +2025/09/25 04:28:49 [error] 80#80: *138 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 7.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-7_80/", host: "7.example.com" +2025/09/25 04:28:49 [error] 80#80: *139 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 7.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-7_80/", host: "7.example.com" +2025/09/25 04:28:49 [error] 80#80: *143 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 7.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-7_80/", host: "7.example.com" +2025/09/25 04:28:50 [error] 85#85: *156 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 8.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-8_80/", host: "8.example.com" +2025/09/25 04:28:50 [error] 84#84: *157 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 8.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-8_80/", host: "8.example.com" +2025/09/25 04:28:50 [error] 85#85: *158 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 8.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-8_80/", host: "8.example.com" +2025/09/25 04:28:50 [error] 85#85: *162 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 8.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-8_80/", host: "8.example.com" +2025/09/25 04:28:51 [error] 88#88: *176 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 9.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-9_80/", host: "9.example.com" +2025/09/25 04:28:51 [error] 89#89: *177 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 9.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-9_80/", host: "9.example.com" +2025/09/25 04:28:51 [error] 88#88: *178 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 9.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-9_80/", host: "9.example.com" +2025/09/25 04:28:51 [error] 88#88: *185 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 9.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-9_80/", host: "9.example.com" +2025/09/25 04:28:52 [error] 92#92: *197 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 10.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-10_80/", host: "10.example.com" +2025/09/25 04:28:52 [error] 93#93: *198 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 10.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-10_80/", host: "10.example.com" +2025/09/25 04:28:52 [error] 92#92: *201 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 10.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-10_80/", host: "10.example.com" +2025/09/25 04:28:52 [error] 96#96: *218 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 11.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-11_80/", host: "11.example.com" +2025/09/25 04:28:53 [error] 97#97: *219 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 11.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-11_80/", host: "11.example.com" +2025/09/25 04:28:53 [error] 96#96: *220 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 11.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-11_80/", host: "11.example.com" +2025/09/25 04:28:53 [error] 96#96: *221 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 11.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-11_80/", host: "11.example.com" +2025/09/25 04:28:53 [error] 100#100: *246 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 12.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-12_80/", host: "12.example.com" +2025/09/25 04:28:54 [error] 101#101: *247 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 12.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-12_80/", host: "12.example.com" +2025/09/25 04:28:54 [error] 100#100: *248 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 12.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-12_80/", host: "12.example.com" +2025/09/25 04:28:54 [error] 100#100: *249 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 12.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-12_80/", host: "12.example.com" +2025/09/25 04:28:54 [error] 104#104: *266 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 13.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-13_80/", host: "13.example.com" +2025/09/25 04:28:54 [error] 105#105: *267 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 13.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-13_80/", host: "13.example.com" +2025/09/25 04:28:54 [error] 104#104: *269 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 13.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-13_80/", host: "13.example.com" +2025/09/25 04:28:55 [error] 104#104: *270 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 13.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-13_80/", host: "13.example.com" +2025/09/25 04:28:55 [error] 104#104: *271 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 13.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-13_80/", host: "13.example.com" +2025/09/25 04:28:55 [error] 108#108: *293 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 14.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-14_80/", host: "14.example.com" +2025/09/25 04:28:55 [error] 109#109: *294 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 14.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-14_80/", host: "14.example.com" +2025/09/25 04:28:56 [error] 108#108: *295 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 14.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-14_80/", host: "14.example.com" +2025/09/25 04:28:56 [error] 108#108: *296 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 14.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-14_80/", host: "14.example.com" +2025/09/25 04:28:56 [error] 108#108: *297 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 14.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-14_80/", host: "14.example.com" +2025/09/25 04:28:56 [error] 108#108: *298 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 14.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-14_80/", host: "14.example.com" +2025/09/25 04:28:56 [error] 108#108: *302 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 14.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-14_80/", host: "14.example.com" +2025/09/25 04:28:57 [error] 112#112: *322 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 15.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-15_80/", host: "15.example.com" +2025/09/25 04:28:57 [error] 113#113: *323 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 15.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-15_80/", host: "15.example.com" +2025/09/25 04:28:57 [error] 112#112: *324 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 15.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-15_80/", host: "15.example.com" +2025/09/25 04:28:57 [error] 112#112: *325 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 15.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-15_80/", host: "15.example.com" +2025/09/25 04:28:57 [error] 112#112: *330 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 15.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-15_80/", host: "15.example.com" +2025/09/25 04:28:58 [error] 117#117: *350 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 16.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-16_80/", host: "16.example.com" +2025/09/25 04:28:58 [error] 116#116: *351 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 16.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-16_80/", host: "16.example.com" +2025/09/25 04:28:58 [error] 117#117: *352 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 16.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-16_80/", host: "16.example.com" +2025/09/25 04:28:58 [error] 117#117: *353 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 16.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-16_80/", host: "16.example.com" +2025/09/25 04:28:58 [error] 117#117: *354 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 16.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-16_80/", host: "16.example.com" +2025/09/25 04:28:58 [error] 117#117: *355 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 16.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-16_80/", host: "16.example.com" +2025/09/25 04:28:58 [error] 117#117: *361 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 16.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-16_80/", host: "16.example.com" +2025/09/25 04:28:59 [error] 120#120: *381 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 17.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-17_80/", host: "17.example.com" +2025/09/25 04:28:59 [error] 121#121: *382 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 17.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-17_80/", host: "17.example.com" +2025/09/25 04:28:59 [error] 120#120: *383 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 17.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-17_80/", host: "17.example.com" +2025/09/25 04:28:59 [error] 120#120: *384 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 17.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-17_80/", host: "17.example.com" +2025/09/25 04:28:59 [error] 120#120: *385 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 17.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-17_80/", host: "17.example.com" +2025/09/25 04:29:00 [error] 120#120: *386 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 17.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-17_80/", host: "17.example.com" +2025/09/25 04:29:00 [error] 120#120: *392 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 17.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-17_80/", host: "17.example.com" +2025/09/25 04:29:00 [error] 124#124: *413 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 18.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-18_80/", host: "18.example.com" +2025/09/25 04:29:00 [error] 125#125: *414 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 18.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-18_80/", host: "18.example.com" +2025/09/25 04:29:01 [error] 124#124: *415 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 18.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-18_80/", host: "18.example.com" +2025/09/25 04:29:01 [error] 124#124: *416 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 18.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-18_80/", host: "18.example.com" +2025/09/25 04:29:01 [error] 124#124: *417 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 18.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-18_80/", host: "18.example.com" +2025/09/25 04:29:01 [error] 124#124: *424 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 18.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-18_80/", host: "18.example.com" +2025/09/25 04:29:02 [error] 128#128: *445 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 19.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-19_80/", host: "19.example.com" +2025/09/25 04:29:02 [error] 129#129: *446 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 19.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-19_80/", host: "19.example.com" +2025/09/25 04:29:02 [error] 128#128: *447 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 19.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-19_80/", host: "19.example.com" +2025/09/25 04:29:02 [error] 128#128: *454 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 19.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-19_80/", host: "19.example.com" +2025/09/25 04:29:03 [error] 132#132: *476 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 20.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-20_80/", host: "20.example.com" +2025/09/25 04:29:03 [error] 133#133: *477 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 20.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-20_80/", host: "20.example.com" +2025/09/25 04:29:03 [error] 132#132: *478 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 20.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-20_80/", host: "20.example.com" +2025/09/25 04:29:03 [error] 132#132: *479 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 20.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-20_80/", host: "20.example.com" +2025/09/25 04:29:03 [error] 132#132: *480 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 20.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-20_80/", host: "20.example.com" +2025/09/25 04:29:03 [error] 132#132: *481 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 20.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-20_80/", host: "20.example.com" +2025/09/25 04:29:03 [error] 132#132: *492 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 20.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-20_80/", host: "20.example.com" +2025/09/25 04:29:04 [error] 136#136: *511 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 21.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-21_80/", host: "21.example.com" +2025/09/25 04:29:04 [error] 137#137: *512 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 21.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-21_80/", host: "21.example.com" +2025/09/25 04:29:04 [error] 136#136: *513 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 21.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-21_80/", host: "21.example.com" +2025/09/25 04:29:04 [error] 136#136: *514 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 21.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-21_80/", host: "21.example.com" +2025/09/25 04:29:04 [error] 136#136: *516 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 21.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-21_80/", host: "21.example.com" +2025/09/25 04:29:05 [error] 136#136: *517 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 21.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-21_80/", host: "21.example.com" +2025/09/25 04:29:05 [error] 136#136: *523 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 21.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-21_80/", host: "21.example.com" +2025/09/25 04:29:05 [error] 136#136: *533 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 21.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-21_80/", host: "21.example.com" +2025/09/25 04:29:05 [error] 140#140: *549 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 22.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-22_80/", host: "22.example.com" +2025/09/25 04:29:05 [error] 141#141: *550 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 22.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-22_80/", host: "22.example.com" +2025/09/25 04:29:06 [error] 140#140: *555 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 22.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-22_80/", host: "22.example.com" +2025/09/25 04:29:06 [error] 140#140: *566 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 22.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-22_80/", host: "22.example.com" +2025/09/25 04:29:06 [error] 144#144: *583 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 23.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-23_80/", host: "23.example.com" +2025/09/25 04:29:06 [error] 145#145: *584 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 23.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-23_80/", host: "23.example.com" +2025/09/25 04:29:07 [error] 144#144: *585 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 23.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-23_80/", host: "23.example.com" +2025/09/25 04:29:07 [error] 144#144: *592 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 23.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-23_80/", host: "23.example.com" +2025/09/25 04:29:07 [error] 144#144: *602 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 23.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-23_80/", host: "23.example.com" +2025/09/25 04:29:08 [error] 149#149: *620 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 24.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-24_80/", host: "24.example.com" +2025/09/25 04:29:08 [error] 150#150: *621 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 24.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-24_80/", host: "24.example.com" +2025/09/25 04:29:08 [error] 149#149: *622 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 24.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-24_80/", host: "24.example.com" +2025/09/25 04:29:08 [error] 149#149: *623 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 24.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-24_80/", host: "24.example.com" +2025/09/25 04:29:08 [error] 149#149: *624 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 24.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-24_80/", host: "24.example.com" +2025/09/25 04:29:08 [error] 149#149: *634 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 24.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-24_80/", host: "24.example.com" +2025/09/25 04:29:09 [error] 154#154: *658 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 25.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-25_80/", host: "25.example.com" +2025/09/25 04:29:09 [error] 153#153: *659 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 25.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-25_80/", host: "25.example.com" +2025/09/25 04:29:09 [error] 154#154: *660 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 25.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-25_80/", host: "25.example.com" +2025/09/25 04:29:09 [error] 154#154: *661 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 25.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-25_80/", host: "25.example.com" +2025/09/25 04:29:09 [error] 154#154: *670 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 25.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-25_80/", host: "25.example.com" +2025/09/25 04:29:10 [error] 157#157: *697 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 26.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-26_80/", host: "26.example.com" +2025/09/25 04:29:10 [error] 158#158: *698 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 26.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-26_80/", host: "26.example.com" +2025/09/25 04:29:10 [error] 157#157: *699 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 26.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-26_80/", host: "26.example.com" +2025/09/25 04:29:11 [error] 157#157: *704 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 26.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-26_80/", host: "26.example.com" +2025/09/25 04:29:11 [error] 157#157: *715 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 26.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-26_80/", host: "26.example.com" +2025/09/25 04:29:11 [error] 161#161: *736 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 27.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-27_80/", host: "27.example.com" +2025/09/25 04:29:11 [error] 162#162: *737 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 27.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-27_80/", host: "27.example.com" +2025/09/25 04:29:11 [error] 161#161: *742 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 27.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-27_80/", host: "27.example.com" +2025/09/25 04:29:12 [error] 161#161: *753 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 27.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-27_80/", host: "27.example.com" +2025/09/25 04:29:12 [error] 166#166: *776 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 28.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-28_80/", host: "28.example.com" +2025/09/25 04:29:12 [error] 167#167: *777 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 28.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-28_80/", host: "28.example.com" +2025/09/25 04:29:13 [error] 166#166: *778 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 28.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-28_80/", host: "28.example.com" +2025/09/25 04:29:13 [error] 166#166: *783 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 28.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-28_80/", host: "28.example.com" +2025/09/25 04:29:13 [error] 166#166: *795 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 28.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-28_80/", host: "28.example.com" +2025/09/25 04:29:14 [error] 170#170: *817 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 29.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-29_80/", host: "29.example.com" +2025/09/25 04:29:14 [error] 171#171: *818 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 29.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-29_80/", host: "29.example.com" +2025/09/25 04:29:14 [error] 170#170: *819 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 29.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-29_80/", host: "29.example.com" +2025/09/25 04:29:14 [error] 170#170: *820 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 29.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-29_80/", host: "29.example.com" +2025/09/25 04:29:14 [error] 170#170: *821 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 29.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-29_80/", host: "29.example.com" +2025/09/25 04:29:14 [error] 170#170: *823 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 29.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-29_80/", host: "29.example.com" +2025/09/25 04:29:14 [error] 170#170: *833 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 29.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-29_80/", host: "29.example.com" +2025/09/25 04:29:14 [error] 170#170: *845 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 29.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-29_80/", host: "29.example.com" +2025/09/25 04:29:15 [error] 174#174: *863 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 30.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-30_80/", host: "30.example.com" +2025/09/25 04:29:16 [error] 175#175: *864 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 30.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-30_80/", host: "30.example.com" +2025/09/25 04:29:16 [error] 174#174: *866 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 30.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-30_80/", host: "30.example.com" +2025/09/25 04:29:16 [error] 174#174: *874 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 30.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-30_80/", host: "30.example.com" +2025/09/25 04:29:16 [error] 174#174: *885 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 30.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-30_80/", host: "30.example.com" +2025/09/25 04:29:17 [error] 178#178: *906 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 31.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-31_80/", host: "31.example.com" +2025/09/25 04:29:17 [error] 179#179: *907 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 31.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-31_80/", host: "31.example.com" +2025/09/25 04:29:17 [error] 178#178: *908 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 31.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-31_80/", host: "31.example.com" +2025/09/25 04:29:17 [error] 178#178: *911 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 31.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-31_80/", host: "31.example.com" +2025/09/25 04:29:17 [error] 178#178: *921 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 31.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-31_80/", host: "31.example.com" +2025/09/25 04:29:17 [error] 178#178: *932 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 31.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-31_80/", host: "31.example.com" +2025/09/25 04:29:18 [error] 182#182: *967 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 32.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-32_80/", host: "32.example.com" +2025/09/25 04:29:18 [error] 183#183: *978 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 32.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-32_80/", host: "32.example.com" +2025/09/25 04:29:19 [error] 186#186: *1011 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 33.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-33_80/", host: "33.example.com" +2025/09/25 04:29:20 [error] 190#190: *1035 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 34.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-34_80/", host: "34.example.com" +2025/09/25 04:29:20 [error] 191#191: *1036 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 34.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-34_80/", host: "34.example.com" +2025/09/25 04:29:20 [error] 190#190: *1037 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 34.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-34_80/", host: "34.example.com" +2025/09/25 04:29:20 [error] 190#190: *1046 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 34.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-34_80/", host: "34.example.com" +2025/09/25 04:29:20 [error] 190#190: *1058 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 34.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-34_80/", host: "34.example.com" +2025/09/25 04:29:21 [error] 194#194: *1082 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 35.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-35_80/", host: "35.example.com" +2025/09/25 04:29:21 [error] 195#195: *1099 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 35.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-35_80/", host: "35.example.com" +2025/09/25 04:29:21 [error] 194#194: *1100 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 35.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-35_80/", host: "35.example.com" +2025/09/25 04:29:21 [error] 194#194: *1101 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 35.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-35_80/", host: "35.example.com" +2025/09/25 04:29:21 [error] 194#194: *1102 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 35.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-35_80/", host: "35.example.com" +2025/09/25 04:29:21 [error] 194#194: *1107 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 35.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-35_80/", host: "35.example.com" +2025/09/25 04:29:22 [error] 194#194: *1118 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 35.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-35_80/", host: "35.example.com" +2025/09/25 04:29:22 [error] 194#194: *1129 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 35.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-35_80/", host: "35.example.com" +2025/09/25 04:29:23 [error] 200#200: *1150 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 36.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-36_80/", host: "36.example.com" +2025/09/25 04:29:23 [error] 201#201: *1151 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 36.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-36_80/", host: "36.example.com" +2025/09/25 04:29:23 [error] 200#200: *1160 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 36.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-36_80/", host: "36.example.com" +2025/09/25 04:29:23 [error] 200#200: *1171 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 36.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-36_80/", host: "36.example.com" +2025/09/25 04:29:23 [error] 200#200: *1182 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 36.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-36_80/", host: "36.example.com" +2025/09/25 04:29:24 [error] 204#204: *1199 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 37.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-37_80/", host: "37.example.com" +2025/09/25 04:29:24 [error] 205#205: *1200 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 37.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-37_80/", host: "37.example.com" +2025/09/25 04:29:24 [error] 204#204: *1201 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 37.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-37_80/", host: "37.example.com" +2025/09/25 04:29:24 [error] 204#204: *1206 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 37.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-37_80/", host: "37.example.com" +2025/09/25 04:29:24 [error] 204#204: *1217 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 37.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-37_80/", host: "37.example.com" +2025/09/25 04:29:24 [error] 204#204: *1230 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 37.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-37_80/", host: "37.example.com" +2025/09/25 04:29:26 [error] 208#208: *1251 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 38.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-38_80/", host: "38.example.com" +2025/09/25 04:29:26 [error] 209#209: *1252 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 38.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-38_80/", host: "38.example.com" +2025/09/25 04:29:26 [error] 208#208: *1253 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 38.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-38_80/", host: "38.example.com" +2025/09/25 04:29:26 [error] 208#208: *1254 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 38.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-38_80/", host: "38.example.com" +2025/09/25 04:29:26 [error] 208#208: *1259 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 38.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-38_80/", host: "38.example.com" +2025/09/25 04:29:26 [error] 208#208: *1269 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 38.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-38_80/", host: "38.example.com" +2025/09/25 04:29:26 [error] 208#208: *1280 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 38.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-38_80/", host: "38.example.com" +2025/09/25 04:29:27 [error] 213#213: *1305 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 39.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-39_80/", host: "39.example.com" +2025/09/25 04:29:27 [error] 214#214: *1306 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 39.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-39_80/", host: "39.example.com" +2025/09/25 04:29:27 [error] 213#213: *1307 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 39.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-39_80/", host: "39.example.com" +2025/09/25 04:29:28 [error] 213#213: *1314 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 39.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-39_80/", host: "39.example.com" +2025/09/25 04:29:28 [error] 213#213: *1325 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 39.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-39_80/", host: "39.example.com" +2025/09/25 04:29:28 [error] 213#213: *1337 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 39.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-39_80/", host: "39.example.com" +2025/09/25 04:29:29 [error] 217#217: *1359 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 40.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-40_80/", host: "40.example.com" +2025/09/25 04:29:29 [error] 218#218: *1360 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 40.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-40_80/", host: "40.example.com" +2025/09/25 04:29:29 [error] 217#217: *1361 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 40.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-40_80/", host: "40.example.com" +2025/09/25 04:29:29 [error] 217#217: *1362 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 40.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-40_80/", host: "40.example.com" +2025/09/25 04:29:29 [error] 217#217: *1366 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 40.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-40_80/", host: "40.example.com" +2025/09/25 04:29:29 [error] 217#217: *1378 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 40.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-40_80/", host: "40.example.com" +2025/09/25 04:29:29 [error] 217#217: *1390 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 40.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-40_80/", host: "40.example.com" +2025/09/25 04:29:30 [error] 221#221: *1414 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 41.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-41_80/", host: "41.example.com" +2025/09/25 04:29:31 [error] 222#222: *1415 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 41.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-41_80/", host: "41.example.com" +2025/09/25 04:29:31 [error] 221#221: *1419 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 41.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-41_80/", host: "41.example.com" +2025/09/25 04:29:31 [error] 221#221: *1431 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 41.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-41_80/", host: "41.example.com" +2025/09/25 04:29:31 [error] 221#221: *1441 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 41.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-41_80/", host: "41.example.com" +2025/09/25 04:29:31 [error] 221#221: *1452 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 41.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-41_80/", host: "41.example.com" +2025/09/25 04:29:32 [error] 225#225: *1469 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 42.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-42_80/", host: "42.example.com" +2025/09/25 04:29:32 [error] 226#226: *1470 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 42.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-42_80/", host: "42.example.com" +2025/09/25 04:29:32 [error] 225#225: *1471 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 42.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-42_80/", host: "42.example.com" +2025/09/25 04:29:32 [error] 225#225: *1472 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 42.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-42_80/", host: "42.example.com" +2025/09/25 04:29:32 [error] 225#225: *1477 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 42.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-42_80/", host: "42.example.com" +2025/09/25 04:29:33 [error] 225#225: *1488 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 42.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-42_80/", host: "42.example.com" +2025/09/25 04:29:33 [error] 225#225: *1500 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 42.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-42_80/", host: "42.example.com" +2025/09/25 04:29:33 [error] 225#225: *1511 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 42.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-42_80/", host: "42.example.com" +2025/09/25 04:29:34 [error] 229#229: *1528 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 43.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-43_80/", host: "43.example.com" +2025/09/25 04:29:34 [error] 230#230: *1529 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 43.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-43_80/", host: "43.example.com" +2025/09/25 04:29:34 [error] 229#229: *1530 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 43.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-43_80/", host: "43.example.com" +2025/09/25 04:29:34 [error] 229#229: *1531 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 43.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-43_80/", host: "43.example.com" +2025/09/25 04:29:34 [error] 229#229: *1539 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 43.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-43_80/", host: "43.example.com" +2025/09/25 04:29:34 [error] 229#229: *1551 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 43.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-43_80/", host: "43.example.com" +2025/09/25 04:29:34 [error] 229#229: *1563 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 43.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-43_80/", host: "43.example.com" +2025/09/25 04:29:36 [error] 234#234: *1588 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 44.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-44_80/", host: "44.example.com" +2025/09/25 04:29:36 [error] 233#233: *1589 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 44.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-44_80/", host: "44.example.com" +2025/09/25 04:29:36 [error] 234#234: *1590 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 44.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-44_80/", host: "44.example.com" +2025/09/25 04:29:36 [error] 234#234: *1591 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 44.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-44_80/", host: "44.example.com" +2025/09/25 04:29:36 [error] 234#234: *1592 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 44.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-44_80/", host: "44.example.com" +2025/09/25 04:29:36 [error] 234#234: *1600 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 44.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-44_80/", host: "44.example.com" +2025/09/25 04:29:36 [error] 234#234: *1612 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 44.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-44_80/", host: "44.example.com" +2025/09/25 04:29:36 [error] 234#234: *1623 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 44.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-44_80/", host: "44.example.com" +2025/09/25 04:29:36 [error] 234#234: *1635 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 44.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-44_80/", host: "44.example.com" +2025/09/25 04:29:38 [error] 238#238: *1650 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 45.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-45_80/", host: "45.example.com" +2025/09/25 04:29:38 [error] 239#239: *1651 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 45.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-45_80/", host: "45.example.com" +2025/09/25 04:29:38 [error] 238#238: *1652 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 45.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-45_80/", host: "45.example.com" +2025/09/25 04:29:38 [error] 238#238: *1653 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 45.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-45_80/", host: "45.example.com" +2025/09/25 04:29:38 [error] 238#238: *1654 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 45.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-45_80/", host: "45.example.com" +2025/09/25 04:29:38 [error] 238#238: *1658 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 45.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-45_80/", host: "45.example.com" +2025/09/25 04:29:38 [error] 238#238: *1670 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 45.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-45_80/", host: "45.example.com" +2025/09/25 04:29:38 [error] 238#238: *1682 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 45.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-45_80/", host: "45.example.com" +2025/09/25 04:29:38 [error] 238#238: *1693 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 45.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-45_80/", host: "45.example.com" +2025/09/25 04:29:40 [error] 242#242: *1713 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 46.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-46_80/", host: "46.example.com" +2025/09/25 04:29:40 [error] 243#243: *1714 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 46.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-46_80/", host: "46.example.com" +2025/09/25 04:29:40 [error] 242#242: *1715 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 46.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-46_80/", host: "46.example.com" +2025/09/25 04:29:40 [error] 242#242: *1716 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 46.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-46_80/", host: "46.example.com" +2025/09/25 04:29:40 [error] 242#242: *1717 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 46.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-46_80/", host: "46.example.com" +2025/09/25 04:29:40 [error] 242#242: *1728 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 46.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-46_80/", host: "46.example.com" +2025/09/25 04:29:41 [error] 242#242: *1738 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 46.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-46_80/", host: "46.example.com" +2025/09/25 04:29:41 [error] 242#242: *1748 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 46.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-46_80/", host: "46.example.com" +2025/09/25 04:29:41 [error] 242#242: *1760 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 46.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-46_80/", host: "46.example.com" +2025/09/25 04:29:42 [error] 246#246: *1776 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 47.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-47_80/", host: "47.example.com" +2025/09/25 04:29:42 [error] 247#247: *1777 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 47.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-47_80/", host: "47.example.com" +2025/09/25 04:29:42 [error] 246#246: *1778 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 47.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-47_80/", host: "47.example.com" +2025/09/25 04:29:42 [error] 246#246: *1786 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 47.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-47_80/", host: "47.example.com" +2025/09/25 04:29:42 [error] 246#246: *1797 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 47.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-47_80/", host: "47.example.com" +2025/09/25 04:29:42 [error] 246#246: *1809 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 47.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-47_80/", host: "47.example.com" +2025/09/25 04:29:42 [error] 246#246: *1821 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 47.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-47_80/", host: "47.example.com" +2025/09/25 04:29:44 [error] 250#250: *1838 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 48.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-48_80/", host: "48.example.com" +2025/09/25 04:29:44 [error] 251#251: *1839 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 48.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-48_80/", host: "48.example.com" +2025/09/25 04:29:44 [error] 250#250: *1840 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 48.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-48_80/", host: "48.example.com" +2025/09/25 04:29:44 [error] 250#250: *1849 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 48.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-48_80/", host: "48.example.com" +2025/09/25 04:29:44 [error] 250#250: *1861 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 48.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-48_80/", host: "48.example.com" +2025/09/25 04:29:44 [error] 250#250: *1874 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 48.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-48_80/", host: "48.example.com" +2025/09/25 04:29:44 [error] 250#250: *1886 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 48.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-48_80/", host: "48.example.com" +2025/09/25 04:29:46 [error] 254#254: *1902 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 49.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-49_80/", host: "49.example.com" +2025/09/25 04:29:46 [error] 255#255: *1903 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 49.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-49_80/", host: "49.example.com" +2025/09/25 04:29:46 [error] 254#254: *1904 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 49.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-49_80/", host: "49.example.com" +2025/09/25 04:29:46 [error] 254#254: *1905 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 49.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-49_80/", host: "49.example.com" +2025/09/25 04:29:46 [error] 254#254: *1906 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 49.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-49_80/", host: "49.example.com" +2025/09/25 04:29:46 [error] 254#254: *1915 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 49.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-49_80/", host: "49.example.com" +2025/09/25 04:29:46 [error] 254#254: *1927 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 49.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-49_80/", host: "49.example.com" +2025/09/25 04:29:46 [error] 254#254: *1938 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 49.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-49_80/", host: "49.example.com" +2025/09/25 04:29:46 [error] 254#254: *1950 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 49.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-49_80/", host: "49.example.com" +2025/09/25 04:29:48 [error] 259#259: *1969 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 50.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-50_80/", host: "50.example.com" +2025/09/25 04:29:48 [error] 260#260: *1970 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 50.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-50_80/", host: "50.example.com" +2025/09/25 04:29:48 [error] 259#259: *1971 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 50.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-50_80/", host: "50.example.com" +2025/09/25 04:29:48 [error] 259#259: *1972 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 50.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-50_80/", host: "50.example.com" +2025/09/25 04:29:49 [error] 259#259: *1973 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 50.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-50_80/", host: "50.example.com" +2025/09/25 04:29:49 [error] 259#259: *1979 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 50.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-50_80/", host: "50.example.com" +2025/09/25 04:29:49 [error] 259#259: *1991 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 50.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-50_80/", host: "50.example.com" +2025/09/25 04:29:49 [error] 259#259: *2003 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 50.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-50_80/", host: "50.example.com" +2025/09/25 04:29:49 [error] 259#259: *2014 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 50.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-50_80/", host: "50.example.com" +2025/09/25 04:29:50 [error] 263#263: *2036 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 51.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-51_80/", host: "51.example.com" +2025/09/25 04:29:51 [error] 264#264: *2037 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 51.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-51_80/", host: "51.example.com" +2025/09/25 04:29:51 [error] 263#263: *2038 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 51.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-51_80/", host: "51.example.com" +2025/09/25 04:29:51 [error] 263#263: *2039 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 51.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-51_80/", host: "51.example.com" +2025/09/25 04:29:51 [error] 263#263: *2042 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 51.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-51_80/", host: "51.example.com" +2025/09/25 04:29:51 [error] 263#263: *2052 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 51.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-51_80/", host: "51.example.com" +2025/09/25 04:29:51 [error] 263#263: *2062 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 51.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-51_80/", host: "51.example.com" +2025/09/25 04:29:51 [error] 263#263: *2074 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 51.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-51_80/", host: "51.example.com" +2025/09/25 04:29:51 [error] 263#263: *2086 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 51.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-51_80/", host: "51.example.com" +2025/09/25 04:29:53 [error] 268#268: *2105 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 52.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-52_80/", host: "52.example.com" +2025/09/25 04:29:53 [error] 269#269: *2106 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 52.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-52_80/", host: "52.example.com" +2025/09/25 04:29:53 [error] 268#268: *2116 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 52.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-52_80/", host: "52.example.com" +2025/09/25 04:29:53 [error] 268#268: *2128 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 52.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-52_80/", host: "52.example.com" +2025/09/25 04:29:53 [error] 268#268: *2139 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 52.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-52_80/", host: "52.example.com" +2025/09/25 04:29:53 [error] 268#268: *2151 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 52.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-52_80/", host: "52.example.com" +2025/09/25 04:29:55 [error] 272#272: *2174 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 53.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-53_80/", host: "53.example.com" +2025/09/25 04:29:55 [error] 273#273: *2175 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 53.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-53_80/", host: "53.example.com" +2025/09/25 04:29:55 [error] 272#272: *2176 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 53.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-53_80/", host: "53.example.com" +2025/09/25 04:29:55 [error] 272#272: *2177 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 53.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-53_80/", host: "53.example.com" +2025/09/25 04:29:55 [error] 272#272: *2181 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 53.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-53_80/", host: "53.example.com" +2025/09/25 04:29:55 [error] 272#272: *2192 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 53.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-53_80/", host: "53.example.com" +2025/09/25 04:29:56 [error] 272#272: *2203 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 53.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-53_80/", host: "53.example.com" +2025/09/25 04:29:56 [error] 272#272: *2214 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 53.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-53_80/", host: "53.example.com" +2025/09/25 04:29:56 [error] 272#272: *2225 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 53.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-53_80/", host: "53.example.com" +2025/09/25 04:29:57 [error] 277#277: *2245 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 54.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-54_80/", host: "54.example.com" +2025/09/25 04:29:57 [error] 278#278: *2246 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 54.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-54_80/", host: "54.example.com" +2025/09/25 04:29:58 [error] 277#277: *2247 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 54.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-54_80/", host: "54.example.com" +2025/09/25 04:29:58 [error] 277#277: *2248 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 54.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-54_80/", host: "54.example.com" +2025/09/25 04:29:58 [error] 277#277: *2249 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 54.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-54_80/", host: "54.example.com" +2025/09/25 04:29:58 [error] 277#277: *2257 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 54.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-54_80/", host: "54.example.com" +2025/09/25 04:29:58 [error] 277#277: *2269 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 54.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-54_80/", host: "54.example.com" +2025/09/25 04:29:58 [error] 277#277: *2280 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 54.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-54_80/", host: "54.example.com" +2025/09/25 04:29:58 [error] 277#277: *2292 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 54.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-54_80/", host: "54.example.com" +2025/09/25 04:29:58 [error] 277#277: *2304 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 54.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-54_80/", host: "54.example.com" +2025/09/25 04:30:00 [error] 281#281: *2317 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/09/25 04:30:00 [error] 282#282: *2318 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/09/25 04:30:00 [error] 281#281: *2319 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/09/25 04:30:00 [error] 281#281: *2320 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/09/25 04:30:00 [error] 281#281: *2321 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/09/25 04:30:00 [error] 281#281: *2322 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/09/25 04:30:00 [error] 281#281: *2327 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/09/25 04:30:00 [error] 281#281: *2338 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/09/25 04:30:01 [error] 281#281: *2349 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/09/25 04:30:01 [error] 281#281: *2359 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/09/25 04:30:01 [error] 281#281: *2370 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 55.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-55_80/", host: "55.example.com" +2025/09/25 04:30:02 [error] 286#286: *2392 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 56.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-56_80/", host: "56.example.com" +2025/09/25 04:30:02 [error] 287#287: *2393 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 56.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-56_80/", host: "56.example.com" +2025/09/25 04:30:02 [error] 286#286: *2394 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 56.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-56_80/", host: "56.example.com" +2025/09/25 04:30:03 [error] 286#286: *2395 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 56.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-56_80/", host: "56.example.com" +2025/09/25 04:30:03 [error] 286#286: *2397 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 56.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-56_80/", host: "56.example.com" +2025/09/25 04:30:03 [error] 286#286: *2407 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 56.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-56_80/", host: "56.example.com" +2025/09/25 04:30:03 [error] 286#286: *2418 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 56.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-56_80/", host: "56.example.com" +2025/09/25 04:30:03 [error] 286#286: *2430 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 56.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-56_80/", host: "56.example.com" +2025/09/25 04:30:03 [error] 286#286: *2441 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 56.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-56_80/", host: "56.example.com" +2025/09/25 04:30:03 [error] 286#286: *2453 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 56.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-56_80/", host: "56.example.com" +2025/09/25 04:30:05 [error] 290#290: *2467 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 57.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-57_80/", host: "57.example.com" +2025/09/25 04:30:05 [error] 291#291: *2468 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 57.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-57_80/", host: "57.example.com" +2025/09/25 04:30:05 [error] 290#290: *2470 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 57.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-57_80/", host: "57.example.com" +2025/09/25 04:30:05 [error] 290#290: *2480 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 57.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-57_80/", host: "57.example.com" +2025/09/25 04:30:05 [error] 290#290: *2492 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 57.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-57_80/", host: "57.example.com" +2025/09/25 04:30:05 [error] 290#290: *2504 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 57.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-57_80/", host: "57.example.com" +2025/09/25 04:30:05 [error] 290#290: *2515 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 57.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-57_80/", host: "57.example.com" +2025/09/25 04:30:05 [error] 290#290: *2526 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 57.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-57_80/", host: "57.example.com" +2025/09/25 04:30:07 [error] 296#296: *2542 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 58.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-58_80/", host: "58.example.com" +2025/09/25 04:30:07 [error] 295#295: *2544 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 58.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-58_80/", host: "58.example.com" +2025/09/25 04:30:07 [error] 296#296: *2554 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 58.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-58_80/", host: "58.example.com" +2025/09/25 04:30:07 [error] 296#296: *2565 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 58.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-58_80/", host: "58.example.com" +2025/09/25 04:30:08 [error] 296#296: *2576 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 58.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-58_80/", host: "58.example.com" +2025/09/25 04:30:08 [error] 296#296: *2588 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 58.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-58_80/", host: "58.example.com" +2025/09/25 04:30:08 [error] 296#296: *2598 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 58.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-58_80/", host: "58.example.com" +2025/09/25 04:30:09 [error] 299#299: *2615 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/09/25 04:30:10 [error] 300#300: *2616 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/09/25 04:30:10 [error] 299#299: *2617 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/09/25 04:30:10 [error] 299#299: *2618 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/09/25 04:30:10 [error] 299#299: *2619 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/09/25 04:30:10 [error] 299#299: *2622 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/09/25 04:30:10 [error] 299#299: *2632 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/09/25 04:30:10 [error] 299#299: *2644 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/09/25 04:30:10 [error] 299#299: *2655 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/09/25 04:30:10 [error] 299#299: *2666 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/09/25 04:30:10 [error] 299#299: *2678 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 59.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-59_80/", host: "59.example.com" +2025/09/25 04:30:12 [error] 303#303: *2694 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 60.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-60_80/", host: "60.example.com" +2025/09/25 04:30:12 [error] 304#304: *2695 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 60.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-60_80/", host: "60.example.com" +2025/09/25 04:30:12 [error] 303#303: *2696 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 60.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-60_80/", host: "60.example.com" +2025/09/25 04:30:12 [error] 303#303: *2697 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 60.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-60_80/", host: "60.example.com" +2025/09/25 04:30:13 [error] 303#303: *2705 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 60.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-60_80/", host: "60.example.com" +2025/09/25 04:30:13 [error] 303#303: *2716 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 60.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-60_80/", host: "60.example.com" +2025/09/25 04:30:13 [error] 303#303: *2727 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 60.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-60_80/", host: "60.example.com" +2025/09/25 04:30:13 [error] 303#303: *2738 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 60.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-60_80/", host: "60.example.com" +2025/09/25 04:30:13 [error] 303#303: *2750 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 60.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-60_80/", host: "60.example.com" +2025/09/25 04:30:13 [error] 303#303: *2760 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 60.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-60_80/", host: "60.example.com" +2025/09/25 04:30:15 [error] 307#307: *2773 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 61.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-61_80/", host: "61.example.com" +2025/09/25 04:30:15 [error] 308#308: *2775 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 61.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-61_80/", host: "61.example.com" +2025/09/25 04:30:15 [error] 307#307: *2786 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 61.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-61_80/", host: "61.example.com" +2025/09/25 04:30:15 [error] 307#307: *2797 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 61.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-61_80/", host: "61.example.com" +2025/09/25 04:30:15 [error] 307#307: *2809 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 61.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-61_80/", host: "61.example.com" +2025/09/25 04:30:15 [error] 307#307: *2820 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 61.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-61_80/", host: "61.example.com" +2025/09/25 04:30:15 [error] 307#307: *2832 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 61.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-61_80/", host: "61.example.com" +2025/09/25 04:30:17 [error] 311#311: *2849 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/09/25 04:30:17 [error] 312#312: *2850 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/09/25 04:30:17 [error] 311#311: *2851 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/09/25 04:30:17 [error] 311#311: *2852 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/09/25 04:30:17 [error] 311#311: *2857 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/09/25 04:30:18 [error] 311#311: *2868 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/09/25 04:30:18 [error] 311#311: *2879 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/09/25 04:30:18 [error] 311#311: *2891 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/09/25 04:30:18 [error] 311#311: *2901 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/09/25 04:30:18 [error] 311#311: *2912 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 62.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-62_80/", host: "62.example.com" +2025/09/25 04:30:20 [error] 315#315: *2929 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 63.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-63_80/", host: "63.example.com" +2025/09/25 04:30:20 [error] 316#316: *2930 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 63.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-63_80/", host: "63.example.com" +2025/09/25 04:30:20 [error] 315#315: *2940 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 63.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-63_80/", host: "63.example.com" +2025/09/25 04:30:20 [error] 315#315: *2951 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 63.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-63_80/", host: "63.example.com" +2025/09/25 04:30:20 [error] 315#315: *2963 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 63.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-63_80/", host: "63.example.com" +2025/09/25 04:30:20 [error] 315#315: *2975 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 63.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-63_80/", host: "63.example.com" +2025/09/25 04:30:20 [error] 315#315: *2985 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 63.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-63_80/", host: "63.example.com" +2025/09/25 04:30:20 [error] 315#315: *2996 no live upstreams while connecting to upstream, client: 34.174.37.91, server: 63.example.com, request: "GET / HTTP/1.1", upstream: "http://scale_backend-63_80/", host: "63.example.com" diff --git a/tests/results/scale/release-2.1.2/TestScale_Listeners/ttr-oss.png b/tests/results/scale/release-2.1.2/TestScale_Listeners/ttr-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..62676d3cdbb2c8ce64195e2d8bf24920746f61e6 GIT binary patch literal 18413 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 ILgUu|0*5A~zW@LL literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_Listeners/ttr-plus.png b/tests/results/scale/release-2.1.2/TestScale_Listeners/ttr-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7433d343f3a489c2329f5199edbc2619b273f8f8 GIT binary patch literal 49361 zcmc$`bySsI_b$8jPw4gMS64J5h5|EVcl9C3cTR^%t(j_g@(%sz+(r0aa zp7*@JbG|>%7@uRXw<7F&-D}Ob=5@_^2g=EaV`GwILLd-qi8mq&5C}3g1ab$4eg}Mq z=spo0c*C%IqhmP%F(Z`-FNvacM5Bihl@A9 z@eD8Z`;LX8)BmFJd9(y)ZB&voGeWx`Rrq@qRb&b-xtXavUiPVCsL_FEQvVWn? zXsLuO&$Hd5M@~qkMvpX&`@Gc<~yrDn(r04C2cwb_XhTs0oLw^in z#Lq^wurwjw@oY$+!ft;Drv(KI@w>nD;&c)3=v?>ypMS{njSjlhx~=bBD#hB<{r%SS zek2|jle1xB8C_?-IydK|?)*9>FY$$P40XY}pKmpxQC;qR5^%ddTWz>J=!%Stbeyto zcl>dfT)R_~-@hq@o<`(VYEj#7CWy|Faay;^M;X3~>-k4`hp#=H%5$rv{rcp?O~ppv z*>SPwRpRWW(c{ln`XA9B4b{OB7l0B6A0Hnxdh~4!=aU$#7T2FlwDX^o%*@P$g@rK` z*BxZWYTxnlyc+dfeigR(>NVa-p@!qt@o2-<$zup@$iSbeX*0P)XOEh*_-QAW{+jVSgn)(aF4PrwwRxcBm)~N0eGgI zh;zlPT}u!4I82;{UQ;xTrCuLp2Q$^6LlCDRBP|U!m*RBRQvl+&p_uyJVzR=jdvke6CzDilbA3VOx>d5+9&Rj925uOvrheCb_rZe)u4l`!in&88J&989LNjCK zp_UN2V@!OZo?l|~Xi-Ppoy^z3WAn;`I2mzp1Gy@xu?U)0G%T4W{a)FH?yI z1_r!+A7+2l&yDtYRLIdsx%LsMYFe+v8#8I|fu9l+6EmM2u}@w-L!)&1I+tAo_PLk; zVrwdqot+(6<%q_Ia*K(^JTI*wzh7)uHe79UjB3)L3(Y7dWVtUsm~}d>odrhpDr~aM zgb)%E8d~BeD)b91?X#=x`}b>m^DWgcaUZ^dgYBD2e86e`%i}=bDW$J|h9$%})!pIZ zWILFo&VF-bHPw?6A|gLkW-|D);jHHqm4}mu2mfxk?OfwWaQ3S+gM)*%9kj8$7h9!J z&-6OOr~r*&1`%`)Iz(j2tOGV*54?iPBZu{(@BG|u`zpmcb;-SaRWaddek5D z}!QDy?JGd(>`qT^;=)bfltSS=>{ z)Lykvor9fSaW7asMp^&gJ?_Ck1hh!t-LjtNgC(%7xh5a*@xBqcxw)Cl7vp^%Cx|cR zn*(MZZf?ljT7Sltj`wQtwaCW$`e(zl){mYL%s zN51Pni{LYJvs1`PNykbI+KWAo^S69>`&Ql4fLXt@|1F^mwn$JKd;cz9l3!qsn$5B16}>}4YVV=c4S+q1V9y4q09%j@m!<^MD1b2{U? z3yf;N$gv&^@;%XORNHm?!H2rfZ=Rg&&ZZ{MA?)j7x8VkawB*#(n)p z&Q?=zRz0s*$H&KC&NvyI?o5Lia4|+T3;Yc@ne(*$s9(#x9rxAG2Or#kHD4`|G@wI3 z5L_`<3UKB_Hre_!{&tlo71~whz@1`T{98KU)6VGm4X>sv~?TPZ! zDce2@$0>YFzwcCtNOjSS#T=LA+%HOkFlb=9saIRZNORX0yR&u9haefCp`q!3h3vYm z^2ijfe(z$MtOPN_{o?N3yAC^3XUoi<QK938_$LO_sw zCwrFcFku41(cw(J>nDGI@OvJYi&QsY3#vex{Eq7Za)!%7ARP!+h=a53;~QPJso!hH z0`UXcOP8ezTn>b+^y1=O5Mg>KgP`>x`qmn~w;_eDn#NbfUt)`d$4wIro;RT{XU6*bo2;ik z(};KexJCeoqX8**{#ldk{-A8Ok?2g78ux(}g9Gb1IH$Va z`^4k0^#>$iJ}#~^kd>>8i<$3Z4!eB5UG-MN8dLMG$7wCdYus*s_G;`mgX&j)eWn2k z1VnQ-X5;Uo{tzaCIU{a-T&5)mD9bnw3H_NNhaylKGn@WRU)UwIWP)@cXLKdy6*?; zm>&(?;xrj`JtAn=cj>`8;CYCo?r3Lsc{O`;b+SEqx-~wyW`B#(7-4!u1v@*IkgBCG zQZ~CFQ%QN8b?JnKhkqD@r?vV#Y#(;BMyy;NW5cTXgC8x-IN5$=*YoD0ZMOs(yg$Ce z#XMg2swhwL9k^aznLY;y1@*#BL?0 z?`!x*DF_kAlz3dZK*oT(EQSkc?;WSft@ZNkPJw?S+K}V_6-h;NJ~G6$||LHP0D=X2AlN;1283&6Ky$9O>jQ$}W_P(@jIIa_&P% zZo8Aw`tR#7@4xsQR%`cE5BJuwAb*$Wt3odg|9xkw&e->({zrNJe_u^0|3&TvTHKLv zwA&5v`nyCShWk%p?~yEL*qa4Q8tGa8edWOYw=fuCN|yNN-W&feF^ve55LyO#xl5+^ z6{Z_S`tNH3+P@`(S#0l(f;gZytXQ7&an@Xx*f zv&6q=)Y#+t@4@^%r2jvUhjI5}YLk}VCD>hMT4kX7??O%Ec5RDedsQELTE&weh|076 zpC^}oEkB?iMfZ@-N<39kyW+Y+6?l$@(%)r(nx8_Rs#_0g z7uS=m@$ZIRJJYq}spn@P=}yjGk1X2^Tj~Kvn}{LKEW$x@Vo_$WuCh{lpWCsjG|SDp zr(J!@Tj}XT>a0?@{+L9OCX4zb!4q%`JG8Am+1VxD$^xOXa3)Y1nWJ{?p0e|^@$k5A z7FOCzwGp;0-77 z{nxF7M3G(K=}{zKSE1|27ptUH@y;AHRj&q`E=Fo0jnh)yWqgN{PpyhHyP{LRiAl2? zYMtGfGyaixWG=C2WNdZ;5xxN68bo4dPd)1ffMs;89OM&IHTCX0I7^giyZW-D@YaF1 z9F#!}X21MDM{YCu(0F8~4iyGuirurAQSjDp3hzW};$0)->JnpH!Z#-;E$G3&k4_o9aq9@U8 zTIW%+D=KDwj|84&n-RsJV~8F0=Q6u?g9VR)jCCqM;3YjVRum8Qdklu@7@`8Ps}mgw zj1fN)?Kl#e;!)QY?3ZH|?#t1toG$jjgw;P0XDF3s${;~TED!B1ZK9dgh z>Yg2w779OzA!q%DlLkX3hWtWG7dN>pi$5Y?N(Yk_xO&lUjmvi=2TX(bf0zc%imsYb z=NE2g2&}fpOp(6dKeKOeJ(hjnnx;xw?edx<_IV)9&u#`XMwQ8d&*ZFupA@~n!M=(x ze~_PKvq)%~PUJRm^A>&9vvUe?DHdd;Sf|f=N?BEF_%`#K>ZnJNOGs@HKy;@$cc*UN z)BX$%^CRFhmhz$bkx4bdvastMuC%Fg`mS|Ov{$3f8x^tx`CPNd-F!Yj@r@{Oabj6E z2v6w!na2{}d*mrQw>L^okUwp024Y{duW#MW_9FVG3NDDfH9?NYfOy1*g2m;HaF zX5;pcKI48G8L=#HsJFK{;jmaNr`WB|tQ|9>^w@pGZlQBlI=I0en;$<+NBiFGHV2zN zk1rR ze}>n+E)n^<g$htW3$%fXQtfGebu zR3}vE<>J$@OGza?Mu9kb?fJG)7Sx#ho9bHET5n>nd$0-9n{Q^(Wcun4M?DW67ILgl zR$Y3>tUKYGp6i&CoLjtg&v*v)p1G%7zuQi1Y?}S)Z&o%35(si5+N!XrdYHR}+9;jXeGT z0S&MrE=lz$8{Q=g{5y>k7W|p1OAZ*u+CAt@GCTNgn_8IyX&;i;c4)o3nPqyD(#51- zdvAsK6MVEe#S|Nmkp<~U<}V_WNo#}7>Fz&kF0h}hQ;%B7(gV)gN&Y=;>RNYXEGdH?`HR|>s{#WV#}|JSCh(yz0cYRst*RQ^~|pgs3@xWvuf3iU8Zt8(dv zPI^U`>$MikB$U5zkrcbv1+Txy2b*}<_V>O3y5#mF&WJG~;U%rIOk}nSb6d(4SqS)? z!fEnTzs~uoRhYCr54#lMCwpVnd=UASjY4=Jd%lGAyz+n4XL&=vPZ)CF??qt7*0p_$ zPlN17pnlVK&3w5ld~*o+8mfd{Zp97qn4dSYyjDeS9ggQ@0^5hF0-RUb-E#pqNm_h3 zMGmujHwx1;*ZKBZ!V2rE*GC~Q8C!mwzkI;W8Dm0jX7TD4{+U7;#Z0oSP|dbEXD{O% zj&fU_=!<$3f8L&517${7r5-Jf*txIT$^Azlwmm*~GH=NPknsPopi?ebO#Js4&T3>Y za7YIjjn;J6abe*PnhG&5vbAh;zr51#uKQwb71{d+ri*MveeOh0Lho2i?c&7y21fN4 zm1h4=SCajmX+ZuRL|II>)g4;Hb{$5r&9jG;9ZiTxWmWtby3FuPTYRl~6MYi}fjw9E zS^h<;B{{ZHN2J4xBLj-QY9QqdC}wf0j^CbnADb>TivC7{)3h~$+jlC&f8gU6wA>P3Zf4s|8T}oZuLXgRcC#}kF0zYSTX)Qc9 zZGA#nw1wXcb!0~JI_YM)oa6mI*d~rIy>t+8dW*hI;%&er@ zk9o#XWjV_ShYG5>v*DFv#>&Z7cGwcvuT|}o@^|)mI|7=5H7$eTb|5P0%ID;GgFK#M z^>98(-Rk1DuJ|p{4_{fQ5t+|>Pe6`EixL=FgL*vHX}RC8uXJ>P8ji=EZU(bC{qlY+ z-c2-=v;x(zy~?;6*>@vaOFS+luC)a}-qy5f8-VRHi0kWroR35KYkEe)fNaP&Wzopr zPV_SD71`n6vhKB$sPq9ZkmPkMxm&QjN&Y2Zvcx-roHe(C1;l}`0Ds2kZE*{6=m%(j z`~_>u`>Pbl1o?Bon*`PlKH$;xBfS^{PVWu=F;_xWJ*n4CkF!FZ4wf7(nP&Fid0fJ`VqmbgXJq6Kv6G}!|3)9XQ-cR1F!~}&b~N$J6#n$SLBz`2a}3AJc|_46 zTEbrdY2L6N6GFHm&QI1IwH?9mDf|l?a}*z1@-`n9ka8&H zXKDDR@awNv#8*hQ#`ux5_C%FC1;gENRf=^r8eetuk+B9Op57JBCZ1Bc&5bA}@^87` zZn+tIvH&F0u*#R|2`ORU=Eqi0?FQ}H4{K_06*e<3z^9dY6 zL+$q1mf6Hj`BLt_+*F00HK5pJ)HeO>{$?>eBA3XT$z8V_!i;p7G-=k9->m+;q>=7idp zH|To3{`d_;kCwI(r7I|8_l6FLAXTn`#2oCUS=(#S)AM8C`ph==W8h$S^gwjZ)!Hc9Ee*YAKum{g3faH|C2-_-TVGYBHka| zKk_}5rTSchVl1vV%qXcIVxwvC!KHVdGA74TRi`Q8MaZ|z0(tp4k!Kt_dXx%jdeTeTJ+MQY-k@!nS*iNKaRK`V{&cCF zp;5j-Y-~teyxK-#oi{BSN(%f5EDIZ6B~;OkT8Stryp7gS)$sp`0FUJQ=}*s)*dJ!l6(vk9o(P806<*`kUxI+j6?rhR=24O+y%o*&LLPX zlr+YY`TDX;6WEv{kPwDO2tL_!2|6_s@ruR~As7UUtb$fOidRg076-mqNg99X= z1ilsjriAi|F}4)7#NCD9z3UyMn*iQWKr&^{`1+P)QypfTM$+#;7{z}|enYFYN(rP~(o8ek?5$S7BnD9m3=ZE`s2qa|+wU z?9=y>g$+G)aKio^lTu){wF_HYq!61m-hs#pq$Sh~71Io*4@s*XuY)+z`zSVNuSC9n z04)-LB*HvWZ`ARNl)>c>UGg+y8&226?}o7~g%Roezs-nO&UXGD>^GmLk=;^)RCFu8 z!HR7BdhEcywZZ=HeqN9|@ zPFZkNwtj%6klh%ZZT?WTevZ=@A?OT^=x5Y$%65SWuG5ZY*uWLW0u%f3ZG*NAu@5% zKrnjg6jFLyr}U&MP1eJ?K%N^>W#%eu1lj(gj^tftM%X$L`D(1}~XovVL zP8ry~_z9OvyV6ptMD+)dv_V6}jX^jcCnslxQBMNsE@{y@>r{1daoMO=2RVx@p3GFE zai1EkbJUzub9*#h9O>(rmp}CNNkBO!xF;f-FCFXiDhxi8*|m%+V7xfC}C)DYIb3@YfPJ=0F$gdvc;5(n#_hA za@K%u=E4YNa7aUcC<_pxH(>iTfL>hh>NrlaJ5|koA9H)U_7rH6FBJnVVt2^6s*y<}jFF6nwb!%eYq^V$@$0@i2F;y46i;v5Sr zf3Ba`=G7yM>^$ng$clb1|NObzbQqqIJ+_p>C%JW}qj#-uQd#m5a28Z3^=^SaAYH?y zYjwj_?SV%D3i|m$CbPSQJaJgjJsg}njq@#^9#niC8TcPtm4IdJlwx4gm=};8ju+0} zGL@m%!?wjZnxZqkC@FW}o!1pr%4)RMdzcT3j7yZ<#ZEvx2GRVe&HD2Log?$39feaq zI=Xx8pigGqnG4HOmI2z-c{rpf+r(o6be%Lw5G;htVPSYGBI_j1pB0lyS17T~;;R)- zpTw+C;GqUe$*>fPgsatIX&xuAB@6?H8t&{}rls+BCCaUFLxc*g%pw{k8h?ISEERYj z%*s{031ehyYYPZ(%bjtqZf>0 zB06o}lZuK-j|;r@ND*xT-QC@w*~+YPa(Zo<+V^*-FuQ|kCj`=7%(s6;*kz|1=W5ez zb><{9Cs<^Y7vty!^Y5APAv#v6ylf*GDrMqu`==@p7|hCg(#@9QTmi)@3QE1@1{@{uLVg+KU05V>iS99hBBKieCOK&{L+l7**u zoSTF#Qo5|AZ6)G@j*w)>nQG9|!|c8;6{)P}v+ za{K}8Y4#m++dEHy5Yp3*f`r%nJ30f@!HtF9`L>&cnx!&Zo(f5oU&pzIw zj2Re=y3*8U(>F3QX=2^%=7WiZ59q6k<>3!jq=^u^X9B+s{a{0alGf_K7OkpX{U-x7 zm#AwI17)|6nKKVb&=|V{9SHz@f79G{>0J|LV)Zi8Op^z%_Kp}gRihmRrDYR4FfvxR z*eJ%;qZI0qG<=f*FtS25$o$^1VB-QuaQ_d2l2D{&NR=3P4PWFVcK)X-T<-9{{1$WQ z@{tw>!K}+?Iu0%a0JYM;7wGNW)_vV8o?U@o2%dCEpb`pfA08Fci?VFKSG$H00ApXla59B&lV}w4-ZXQ7lW1Pyta87jmxkGZHLD zH_#t}DovC|La{v$pyhan1vnCf;z6vdY&sjYQPx}f%H8aC`u)B1N>=+%y^kc^C+Tb7 zK;9r2X(?$W!zTbIe9Gj5nYQB93za-Q|Nq$W2*J!O>6tcbH|%1+{Udxv$xxB#*ca_$ z9J4N}MHHr7@?W@7O~)X*SzHj0|aVVvx$#QCwSX)p@ve-#Yo1GSbj6(`5pv&qf7JHacTQBdD4JI`%Mb59|8k#NO^lhnHz6(zi2;LO7yh@EWGG>VF%wziKU^8?JA zY?autE|TCVd^mG;bQiaxs-0ZUi8o1)_r^t!o`qhh^x#=afaOw{aZm3&%NvFczcH^ z5n>(?bn{~{_Py=PG}Oe`v| zdry+>BtG_)o6J21^iyW)?-1o_`hu-ui);l!TKWluG!UDZ#_T6t%>4}(t zds280Z8tt%_WDXRQLjwn-{a8#s0)0O%76Q((v2XQ1cU33zFgu1eO`B88cm`M_-#$b z>#o0Zf1WL4iGo_mXGx@kvVguk-eZ#xr|kGc-6}k~M4CE`vu=g} zZhdW@gzAa3*u907afWw@)dN$+f}8mNZ7-0&LIx1UsAh#?2SKU1Oyw1M13s;ds9;&V zgNNGXyp=!{gq`DeiwrQM2_~&3wl8HOe!1y_Kn!q9wxLMl*4smY`RlSW0fR)e=9GU$ zG_QEP<|8QZNbebVUX*VORN-;X0$-p(%uY0q`w*8x1WnCxN8nK@oZ&Z*l+TO94ZFFq zxTyCGrWW*eIs!}vG5I|mn$F#hX)ZK?7;qaX^SI^4sS-d5!BvxFbmYEc?{%oV>?X{y zSDe*asW_bfJW=bTEg_y{1UD+X0TN``{N%@a_q}q)Ij0C@thR5!Dd%e-GYZUdBon>6zUTeb`QdpkO@4&ZI?u^TA=_Gzn_JMjg1%AW1|eG=V6tBClF z?}P^C2{GIzHoOooa@H7619ggTSu<*T-`15JyABL_G9kLx5i=$I$|uLcR7d~TVH_G1 z46+UH6CF0<<~91x#RCxKQ2(-H)t7H55*xm1TNMu(CABEr3`+A0T#U|a1mX11BHdj4 z7HL(7em$Pc;1X`oErl?*jEy@S#FBd`njSyqtQu6(#qPacFxRJ*(!Ltu9Wuz8TR)qkt0{h%80t`+ZH3Srm1UQ5c{ zXTlNAuU8^_%I4PAI#A56Vfm1t#FkqDtoyVMVjH5dep{Yj4RPo7)~Q~I_j8DTTYPR+grIOuoAn!%h*U& zOe@d(pmE>|jPZeiu7vKfV;KuwGf2jlzRQDir? z@cqbpbETI`X8ZU;Ryk*akak((NR_6LLRji!b}ChqnW<@ir?SG&S_BJl z)AB?gf%LZUVV%!dBB`;wh4_&yb?(o^=Q__`^BEmHZYL~yq~R;-3KuKyzQ^%JrHv1k zp?;9l57qF!N`Je3|FA$lp+r$p%;jgdSr9l%1`flRwWftP4CeSM_vv#Le@Dioz|BpO zfvt)#H$2A4DnJJmbh{T%jmOm{N0Lp3iVfz64s`>q8(aa0nE zCVvWH)zV~i8_Vg}HH#om0oU_@_}saQq_vzC4LX9#!{Aj>nT`AAT{5zXQXja6(xVo? zmKaPuXr5*mBmS11n;rgy?p{;d@Hyt*3Fv-Q2kn6&&#{Mq;!*I(j7fQkvZ;caeewV! zM$gDRe9a=oEwgNhbue9!BmWU?r8nYGSJp|EDPKo$b-~B!IF=~wT;i1#&I3P}DFt&i zVVc?C?iY65Q0)GarQ3zD4m#MR%Xt%JRA4j8HRZjKv+?>J5*^RV=PnW&$LZxQj!rRf z|EBeIPB~}?0nJEOt;~*C#O0HE!E(V07De6DH9bI_OL!&~uGXVy6C7rm9=l8ag}X0e zs@~TDP+wF|2wD`o)8|2bhB@4P zN_KYJ`%aJtK^(6~Wtu)@Z!KE_;h|lOWM7FT_tEKB9|lbv*@ifNz3->GqAldZm=8bN zEoDbK3O=#?p*vFy#I!NS-%HviKuz_nI@@9aGB=A-@Ku(v5;@Q+hk^VyQ!Ni@XJoG_ z;qJ2G2?O$5fx*e=@n~kPtKZ5j?F$0pc4Rs)M?t&d$8Qx{0d3=w!Fqo>~`0=hm$+? ztofD#eTX~$fTjOnp7_zNUyLDxxPFwx2ztxDf9Ra{CeAFJUIJ}`b-$c_7BouHoSTU* z4M&uQ44&@qNeb-W71cIxd>@!OEAzJ;Q?cgetRWD;_Y-qu0WI+p5Z@9Fs>4{wN2caW@rX#6cc65Ow5YRUS2dCHfaCEe8Kd>%k>-y;8+e|4W9N3Pfi0jm&)hrT%H( zpllR%nmV#kDAN@p(`m!jGW1i2B2IN90YB_S*PAKYk|2t>br2l-+mTi03UY`u6h8eX zzwn8^+c_j`BCQd59NmMI<0Q#vn_O7vtOB18`b zoRsyhDKu(M^cRP&VFw@ZVd9jbuVNwHP-X9h;_C~6!9kV7+0z0__MWoBBSKnw)6%kQ z+Dc#q{qPuW%M~`ri3GMYE+UVdI9 z!&_MtSLLbXAbS=$E0hpy0fw!zuc;yL{Yneilou);F2R7x%;TgNNP=p@uTpc{pFv>$ z)7|AChoU6dW3t2P&E9M{Ee^i!DkJ=a4f!=4I#|-*#+IwMjyQhtBj+yZ*k{;Te~Uqj z@PlW_>G2%`fB=CmtV~#e{v>p^c0wHUHxD_wUp$4$AiCxerw{#@@Q=KA7D{1L8R3>_ zHvH7_w(Tql0ud_Z%~LmVk6ov1Ohb@!fyy{*Z*Cnqot0s58PR zdMamVe_=g)w)o9I6R{yW(tUAqmRg`CK}|TwP*vv2?%=M(0zAd>L?~F{^@92w`XePG zdM-ipK^e+n3y_(+UIV>Oi4X`)`HG~xmvJJDs;#~6aq<9kZ= zA@rPTaX90z?g}Gs&_K(S8d2Z11tu2)9R=^#`xSeb5#$;Go_7BzRa&y{wfxb(J*8jt z>Gu5x!zh7Wo5K3>LvnjfPt%SF9R=y9{guy&MbTX0-O|^W8hm0OSJibxc$A28w(Nal zEH(V6E7Xh_K_6qp;VoDIjdL+7mcTR89l9*>5gl_=0^ZSIf7MnQr3?YokjeDOaX=A+ z;Pt`-o^E%h0{Q7)9*K6g+_bq{lhC9P0;O%ge9xPaOZ0DS)a2GRW!`Pp+pm7|N#USF z<_->>e1EImHedqeXZ{sP{D#=$@OPegATl=%Y!S~qUUFiZq;myE!0@{HHS$xb627{3=kD~gQJ%fz$f}~L|^b8rWj7vHnOXW ztK#xg9Y}2&zkl+?n(*_6bbowLudnww;6UAX7*}_KAzHm?I9k0_ z@n`axH7pjnb&zg_;x3dYH*L)4Ex`H@acM!{ct*m9LfB&-yS?m4g8O_x|E|*smd~qv zb0Kff2Q&Kl{aNpOD^e9Wp3T@TM0g&j)zrZSBOVQDK%w|5b}x_lGVTN?qWj_SqRM(U z`I}@m3#=$VN~nBdwo#29RtlDxBvl8ciDtppH-CM^mQ$5WlZT$ zZgW6FiPVuUU;wq3B$eO~FV~l_gD^~?Oa&XPk{q=hGWaT^K89HqaPz6hc7TUN=aTpj z7|0wm19o2Vh+TYnN9E7Q6oY>#7&=$n@1=gXXtzgAQ{ruWmg%w!oLJ{>(uLyCpyn%N zVmn+CdQS&)J2ihk&o|7ka_U=sdKw4m$R$h%({F_wX_6l+9D!j0iJ?AdsPu#Rex;(h(&&mwlaSK71U4AC;%{rKN1;eDRi~B8~aEmo6 zi&}%Tv$Gra{Fr(7TM285KFrjef%!;h#31pIqY;%FVQ{7r$-`e{+;M;hpovqvAuHRRg$isQC?N*AL4)+98VZ**l{6ZeO%gX(BoyC3YI_tK>F$lK^d6R|6-;fn z{Wd<=6HPF|=;Pyq5NIVE##llaimHTSz~r~b_~!8pm{ixOw7fb@y_uSwZRj>E^Y6a5 z>;%ax#Rx>sN>Dg#O4z*1yj}tuRJbXA`JCV76};2=KX9ym zyUQpR*our6EIae;wGexZB5mcq_~Q7;I%r56a}?c~e8w(pf%WQoX|A1@_9;h{2V4Sr zILqF9qD$7{*HY*b66EpGEP5%gMsU8N!z^uWckZy4=Yx%n4H#t>0CUJ-Ry3(D{Kxr5 zKG1M$!T;@o!RJ_Q7ZWaqDlm_8x;u*tnZ4R^?E2vZhE2g^3Obv7&`OnysIJz;%|;5w z!C)<7P<*){&G4IX_tv}EpW0a~QGj#2w${JNcTACQnh}3daE7Mk-RgchM~14ix6~e% z7r8PAY**G!?+oCA7w`~=>2=y@o4vWFw~3tKVH3Z9{{}Mi z;JO`OY=0RjK&@@PTRALbtwn*>u(k{+Vig-N`zEx&?%1lR?ISa8nYtv8&Ch3s#ryYf znf`J9ySW;3PVeh6!CXqN(Q@d(K2Ctqgk|qVilQQ@MZnarnq-7rPyD9)(^N(G&DKWO zWuW9=W9u)el^<=cHj|~S1|7>Ag0xtm8|{I&JnsZruWh{Et=gEdO1}GH5ssHWq1QPc zP9>0XvD*%wJ&=06o{AWuPGHQ9s;=g0xQSwOH8##RR4aiMJlZtjj3;|u#r3-2z-8KK zvnhyj$caRpH(C{rW2#hH+Y3$5#bA4BRb9Etckr1mXoN_To|v9PADuvzv+0W~%A|L< zc|I+o7xqcP6!CmIC3GT*2zng%C?IJdwKDtJ2FAuO;&~YT&c^+_;+GG^E)_npP(IgW z?Q!S1)y*Z7P`1X_4hjilS73%z=19HQ2u9H+Jfi2KoD}p9cRhjioEX$4N6W$~!NUod z-R7~zZ#>r0KJg!X4xa+C1Vo3kjBtMS#d0EDwKKw)*dN)+na0wO50m7UiS%fR2Z%hxJ0H~YZgF27CUKV!W8-+L%nZ`wH*Pk~ zC=h^dKaG$s;`E#v)RDc|sPqK437*FQhOQwj0s@}ksT1JY0Avs_Meht8C!yFfu(X$Z zv*+ck=4DEMe?O3cV=YL4`g?nyZ0u1qg2zw!h;%;xsoL40?IdUAGkiMB35`77-CXjy zGPJCZ=JuO8d^dY{w3XeE+h7bdPo$|E7AHoy2E-wex5b97w z!#+h46~wiTQ`=X(iR4kwlW(}{@|1F}pV$&VGq+G<;c!icizE6&ol50|U97yP)S}P`t)JGmKqxru?xhKEtW* zxGIkJ;QWELL3Cve$!-(dG0Y?ORKccF_emk~!lakhNeC(v-x<&&N2k+4|x ziPDAsVx=7n_kkxBU4SPGaN8{X0-Y(~Ah&F)ZFu77`79F17#!o(Gh$1jpoM_fZ4^G_ z?B7L!H#P~k!HscWUZ*+~7eCJX!~q2@u?lq3AF40vZmA(gL^lSgxa8n2tJp#5%`f$I zbWJX%`-2<)j&9fb#=Cq2g*(ME=Hq~{;TbB1u zkN-ZCt1I7SJ{ycKza1qD-}!N|^N#HdV5bB;n?AnNceBpB^`{635mw-(kT6X+U2aAK zDbQ(1S**%0s>z!R7L~sQ4;iYrUi=9j(%=Y&_P}#rz%84zklMYYWu)d44)x7EiripQ zG|TI`cn>ROtTlseyb^xAgNZ}1LJ7T)1pL*j>1CXVToOg1!b07zfc_Vev9fMeT)9!P zsr)Kx(xnV~=Dpj7Yc-<)wHNtZwqhjAaLi?jjUZ+!@+MIkQR&4F#t9GyIa)>?JPih& zhhQc$2B)?2E>Oa9R8}r3=DyvHLDTSB1P#bTohP~=+}qb0{x8DbI;_gA>mJ@9T~Z>c z64KousC0+qrW>R?1W}}0x>LG0ozf-Uf=D;gUCM85pL5>#dB1!ucvoe(g8TyLAIRK5dEP;yT}@Z>g$7e=4095*AmxTE}Pl2h^p zb=+81SzamgE)byK`DF=nRN}*awV$mV-H;)QW}5vX+$I(;I=))>Th|>FU?4kbJ$MfcD&_`mhw{K#g)A1T`Khu=VEJ1`cu9yi%)+}*` zAc%lER8$zch!Ab1z-JA*C1v$|3km7@JpI0ysm%fBgd3ss4+0O!k?I-4mfHR*|6vcw zw8L4;6HOmHBAbR}RsVby>eTGth!l3*5kCSVmq#axH? zGc)RC`cn&5TB0m1(h1bV)_#;oXe(0q1imK34tp|+IFzQe-%N?0$rF7TqA?;yB=7uY zsyOQ$)8%kPvm$IyJ427PMjS)j|Cw^#j7yIBbES4dX^g46T-ibSZt<>{{q*5yDuw3n zI$w*PFO3?gG}>R5_2m^8WNzG+X0UeFHAQ4@#tob4I`%xOX#3;2(Nh7^Q(y=)zRmK+ zN<563p}(=Kg^vo>IgrpfFho7mb7Uup)8s8ezib{;D2=f-2kpOggfP6vb8vXKUemHF%QF& z9P@()hBMDYRqM?4->Z~eWGnmJne_%^1kf<*Qq9A%VFT&@_Jff~{g+MOMc9mF#EQ70 zHa-<-2Q)`a^_<$d@i6cda&pI*e+Xr_cy90i{jo#yH*V9-XLMB*5-k1@h>|$_u5xB3 zxm@zt4`r*G({{y7bP*AfnG9hs{I$U5ph5!J>!MHZS7ZxT-0AGwmUq|VNZvB9*bL2Sz=Q=c=WfW+dNfiy!q0bZ6>{uiy09tZ^bDG&m%$cZjPQ`2<=;2ZYT zWBC)jpaG>!Xj$O&{JaHj7b5qsLe%j{Z7LZ$LD1_qXD}e4H zNXMnVve1%jMzEogTs&pAx3-U95HpsLMO*_a#!KD;*O-rzH1dBqr=3NlWZH(!4GRp? z{l+WRMjqS(Yo(9Nm{lPmf(ZMh%qBYvOmrM}xU9N6+;<1-`;S$|ZJel>u4ZGt;xNTs zG)AZvf1JPY5X!vjrh9oDqEutZ7w0*)8oWW`o^&aWWP)IksBzTwg2T>q()w?~(8v>-xFHb!))`U8cKM=Wu);F(z>}y~>HNx{_Nsq#m z(C{C99pJ>J@eIBbT@3cAPFQVu#3z_wj;ve-88q)wyw8?;Om|Ao3~66&KzJlSf&P|> zXA1WBoahkKPbwc(`46`dhEl)PTG|x}GYUjLup61|vrx<;Me(jtI{9!Ml|8_&DGOAm zRq|otLthOkDIYYy;5vLQLHkS$syyUY&`_c zw_e}&tT!gvPnkn*#t;D_geS6RYCU_j4z*fg$uUJp7;aZw>P(gV@OS4Y;E)YCiqE3Y zHjZ!T(9LRzN?~ep4;OZbHWdxMZuQesAjRHyCM#g>Y9N!19b4?wTN`>dxhA)kecSC@B}Vq@_`nJ9bRwe$Z~Fj8#?h9@ufBGIb}< zYV$CNs!P5{RW*`~qNCcz+@F?CN|vH!^eO^TXGWnQAiR3Cq}A1zsa?G=$<5ViVN13b zKOs}qmI9TD0md3=B-7LFEQ{@%=vosM^O=syG&Ucdg+X`cK1{TTgtS9jc-zrtiTQO| z*VGT1cbUX|EfyHpmaXkkg(Hs@(I~Z~N0#kAZe@iz*eF(JtC2K$d7RuO60gd4X)7>@ zY8YZL{yZ&Pk2vx{ww;zP9HC?hl!dRM)udoZWS%ZUx#>Hvmt<}?J&LS!GY)fFnqD^^ zC%UGJMU;-S4mA!Eli{SyERi+DtGc zlWfp2tIT(!H&jF|rGtG5zbHx+e$fafC@PpT5gN{6?VYhv@O=5`1Owq_a5VZOM?V7( zzn=6rsom8mE8_)3W+-?@+1u9?rPF>yUCJB_3vNgy2}V}7F)d2rWLSfQLcEA#tcS^> z8=nN8KgOT9?Z9D)j3Lm%7x`o?#=r%(t$Lr(R+K2Y+R$_yRkvjJz}wdN7CeMv^IMO* zWC0piM+&n}&2~jR!70Izwrpos$=%gr^JMQ|NbY>2GB$TvI1mrVvuBXpYSh;mDq_Yz z|FdMxvGoSHLZ!)i!khjZ@tkd)rWZSjVGn7K9KYw8 z<~u{hZvpFA2N$S8JwJS*#aIHGJ2LN|bHO(#DrH(kJ zc0`_{QK>$aUGidWAG2yB5CWg}!Z>(4YL&PhKweO=|!{j{;J z`O;!6&~5M)-m*|IkaaNDN2UF-&6uJQx-PckPsCL?(TJ0Hf8hlqgB|k-_z&>zKR~MFp zenF87ROUga6P^#I9NDnY6iHA{m!J@SU-?Y>Q@m5Pt4>30mFZ>_^6LOnW{6M0=fmw4 z^z-#ECPnR%(d_TdxL}i8PhBW(zCZt&?3l8Ni50^7kjd4tK`Jddw&oN~@V0Ap^}FCIts<@UttE;BEt!T(U?n6|EXcZM10GvYDm` zl3aZDta>4*b~qhXgW$Y`H8?z%AA|W4{Rj_e9`OxB_wB3#+Gd)OQxkS0_sPcxQ%B+2AcG=W3`$sG-d86dY zFn!Ay6B&xqA#@98!(7%3_v(_@MIzDJgME*r4lzpCBhXsrE34FEmA9S^BxP`N9`LSf z)6LODe$6kS&1NB&m0k)G-eE{e87kk=TI0qAH=b`w2==eD5JR4|18|v{&v0VPVU%Z3 zUAi?ysM<(ZFm|zjxTwz51FZ+Z$<1@OsKBmyzYcDJ%J1;{`?+<+*SaE|+^DP`ye;E} zmCM#>FKS;e>?PV!E+?Ws>|CAaT;AzotoHtFiO)-6V|aeeg3Y6@O1N=NTVuxk8(ZBF zO+~dL8sp$KadVzrG_&rIY0Nv}--v@;wp0P}$x?G_b0YrmXBe+^`L1QGeqCbByLX1E z&&#DFhlH80kUO);C5PaKO;jguI*vw^N22BqgWD!nyx(B@`t|E~J@@p%4N?k<^o)#F z;HU`f3@?Fa>=|&dgx7l7us5=1XZ+>@Q6(LSJlLw%LF?YeKgSdkJ}e>yifj5X{rjbV zCs?Ypb}_QYF;X)O#nj{ekfw}WNitKydpXqdoBh;H_%LfA%1BOHjS%|HdUVD%m6X{V zL9?iXYDO>_p8q<q`43b zDGJc|n&jUiKom0xjbh&}nn`A>eWVGGjMR6XRwviIP&@8lJWyF*LhqoSW2dlTv~7ke4v*!608wR<9@uATP#P(^$UbtV&=i>w2*TdTx(^o=3C zdSFYpAS2*HrS;Ox5WTbYQJDl&@Ws-8ceS%xj9zU+Qw|Mv({+VG8b%$*5a)<0p>ZOP zl+?>uto9QH5*(Qi%|KutTjRg?w0o8;K<|25mnDOYR;vgee77;HYv=tjInS$QCB9L^ zxkE)JWUIo9Y|qf6*vvaqD$QTA~@?C)d1Aab8N0&V77^O zXjIahW>Xd$^Ihj&)A`hYA2K1t>`4K`bKIN41zSx{jc=@l!%*2EQ&^T2aLB?0E zRlT|XEmrFD6VTk^{NU4TIX90V*#lATTjb0tXZ)Pm&(nWMBq^8-mc~R|GT{edrPU6| zummGS;z8KuXg)K-H;Z`M@ATbgzB~`2%>^D!B{X^DCc6%B%kRs%+eYvGc)=2wf06fn z{~30kc%Mo+mY ziA%>B&-AmSNSkhBWW-HH55bN{T}G8YE>QV`C>H2sfwA*p%jpO(BsG5fw*Tb`V6NW( z{$(5+D316h_pe)JKbs5+)`r18^AS1nHpaMsBvEjp6vH_C6D3~$aGrbk zqC-$lKqM&VdZ`qN&AcO5NttcCC3w~0dg1tVag6;|#LzgKFQ$XI5 zR!c~dz@%KAK1B-BFRlN6Ip=KY-$98DV87JUatPc|8jiVR^Zgtfib!uQ`rkWnQC*5~R(tZKsx66$*V=}!F4AL!EtZRsd?TShv1@)Y9(>&ZQ_a%^R!kxT#Y0&eHzrU zpm;jch{35;D!BcP-}Py8+R$t>D?~&}BK}Qk@!wm(ib@U>Mo%cqF-=igzx2UtIE4op z)yvE4;S-_RG?w%Odd`|Wt$s4dIX{t@uH#^Qj**pNBeL2=UzJMI;r63Fh`tPBsyL`T zBwxldyZA4g^*p1yg64%Ynzv>v_jYRy`bYL9%TSI;FMEdmw7@C+gWZ{ODQE0M@Id$S z_BjC8hY;dT_t&8VlYR5?VjV`~lYQS4o~xO4yR$z}A6y;$HqQoQ%}-NzE?9dpX{MDG z!qEB7|D2IAhc^Rl)IDyRbXcHh1JTJ}d4&qUFdi*C(CTUN3+S)!6(5&Bp<>`Hx-WTy zAM6Jr6}{9*jD|b4&;J~edy+Ta>3%>+hyYJBI0CR5XOySKP^m}6PDWkYf;_$wRbvbt zc;n82uT=u``U_34w`u~$BrzO~qe|xbLL+IBpYp*AtS3e5p1vsEIA*Kl5M1~bal^8ynt7wfPu{u)JeXT=?exAsmuUi~ zv7oE>XyxI@2JoB<>~1}kW(X$eu{0T=FkP@|4R4O1>--hwkr&)Z*NZ(^!+0z6 zi89ft1?HS#nyur*E5s6`)15csHFTjcIFggx4o=F4MA$t6H40ugy!!Zcicax6pr_ww;W8EO} zMze+uSfvy47ZG9vs6fVHTX3ht(O35^`Ig5Xx|21)BR#=WQ$aL7dTRI`Rm)#&QFKZA zvx$bG?35wiL)B`nML0l6oyyK+af8IhbOmko8?NZ5)q>wENec1todbMvjA99F93h{P zio&)QY;0w*3A|KQ9w%ZN%zt9@PKVK(ba&;c%+LQR8fDWy6p=FP z8+1RPH#t@6qu30uDdM5?&FhIGUe9CAplrB)cY{=D=vvop5VfB>^RyLl@V9%tN|pwd zKWVYIg9iV^^z?MDx3UcY7X$^0!X7}jF`@BB+aJ|0$TU-w2N#Y|#q7Jkb5bhVgyh z8eO;AN!*OnS$cOBO=*&B+o{zh zlaD0=TW%NL6AZ*D<`d@hz|4H#lem+08d(V>aJy|&@k_*>C9r4?oO3tu#iguKRb_=8<=R&mYO@Y4v#Qe)5c z>uuUZQOP#6=@)aQ^HE$thY_Bo#wu)ud&R6z3f&sEN5Y?AX~_|nInK&Y(J`1Zi^wDJ zUj5q;bw}TiC8J_v>vY1WY;G#QJ`oK^y)FYD`D(Yy3mt-B;saXtTwE6%Z9U~a(C0`}!G z5y~#}$=QZ&LtLzEwle*-8k<Z*C3%1BPI8tPlx;pfppQ!pZ-|blPb7?i5hEH-bs|OluYJoGJ7z=9CyMT%Go&xFsfy7K}NophWCspK=<8r(8@l%2fJGnDh zEGd-#1};$a1Iu?nqkGrIc+ucrFQdMK1M7#gm1}@=|NAUzBvcD$;z&y3ubX6`ndLpW zYQw9nop(l73bQuUGU2}<>@?MO;Ii-aO%5}R{+oZ93glZ+XESyU2^ClN3j>_dDTPWt zoNN}xAI-3%fg&ZYXbLlm|9QR6rYii{#ipTYj0+7bY!;Tr$OAH$Yknz;xWx~j5*6P# zu)GsIu+x7#!rwVWUIi%>3}z4Fqe6RGx2z*8Ll-Zat$b2+U^qN9Wb>m29kP7xIk{8g zeFWTOv8Fq$P>QjPZuC$w^EtACtCu6MI{*D_FB#rXYmd%nGn}*lLYL&V#g~Ll^i^Nu zF?WKOfD@+7#G)U?701{Wso%&5&pTZo(NUg}MvutqUbRy{y_~JRY&WTGdd!LNFGsq-|@Iwse0HR8lLA9wr zB2z}9%`JxbPX_FYI>@aMxdwq)e=qk2^I-P;fcXaRu-n7XQgJxA995rrd2y;eM3Z(| z+7lh!-opd+F-+1jpio&E) zcGU7IoA{EGr5-d7hFW0n9SjY1Z7<@-9K@Ow1=NSH{?u@Q$}5>!OXG2ta)n?3YG#~a zBK1K!xpNu&`#PK#tPriZ%$Z)T+eUI7$2%K88*gT!r^L(Cz@zB zPOfJda#B@_j|IOt=g7ssxgq9$v+_}7M7bCXnQfdH+q}nQcr6?Ufq0ed->wUEzk~{awdbRE`$&1 zbEiTW#oQl`o*drD00M&T8~5-H4dd}5+XJ5~x_(NsAvE`XC(O2)rAD#uCq#*aspG@A-4r!s+xfxR4%t;{n0 z0Lk%;y}vUmNXG!$peaB|?zZEY#-H~5sb1*-nwd1nh+BU9Mt5&3bwv)qZxt4TZG{j+ z5krKBpTNudG!wF)+k~iVVkSaQIIx>@6T1^;aQEf6AAKm0EEqBqsj36=?Dta9_S>#E zrZmV)gM4$l57f!fYx#-1OPkdYhzfb-%X~Iu7ulY0c0ZHL02o{&1T$gro1ory+*t7T z!Dbj4x^tikaF)rsAT$c*!k>MEWNmCe0BuJ`Jm>*e`!CFf*Av2jG4a8TI^Qm;Ln8_^ zbafKaZ&mn@p0m*@`F}S#jId{P7gR~&GFt1y`x0(xWSH#plcBy=(dnZ|eEQUnED0_e zWhOjP?CF=>FDn79V1|OB&r5d)@U)3Z0@2*@{CgyIwK<6K#!<>sua>!dLky@*WCseFl(vAacAEHX_9H)ogap zn@yVjA?gJ-U%aZ;;jL#MvG z+FxBrGxmk#zbX-+=hy@DC0c4~T!4r4x*+Q9?JZoAMSHkkBNiWxylCxt3CaYuhc9;= zhmOoBn7xunvkiBgqKWx9Py1z%2J_^**8lSiC2?bYG!m&v>3I1Z~TJc~RjA{A++;zB}O$w-s zv4%_IpLTT4?QW=QV{u^7XHpSzo))HC!(etr&dOogzLlPj4Bz!mvbmfc?Uq*my()GX zpyX5EzIP0CTfs5nCXdD87`Q~c=+rX!xGW%z1i87-8u zqZi}^@nr|N3___+F5s1IydeFcp5kKgGmlwN_+!BDZ4*4c78E9~hXRk~Sl8@gCk2ak zb7xTg>)O8IYxF~XcragIvAhf>B<&QY1*%5bgKEA|BNKj21c=DsF{j1=+AXNZv8zpg zd0_;k8>zYjj%d(UUDuCd%QX2pny{$&ml|K{N1&a|qYxCdj34vFJ-CSqMltZhTn!+q zhOvGQ3t%Iy26I&MAwS}Ry(ty6h;q3562VB_>Q_YRxfOyo;OKEjlGnKd6QcH*bLy(I zmP{AJ!t4ipg%IA8Uz?p|f$&O;KRrkxTUk-5_!TjYjJCEmBfrPqY~|}`W1uQ;rRVC0 zb}#;U<%)N4dP7xS%v0RQF_J(mo|LoBUK_(Kck&XB(=YCnrnX06LVX^kaMI9ajs?$- z>&!~OC6k4hCeyJ`0YwLJSK=5#BNy%f7wfDRA1@97cS7sGO`PeoBw%|<+#%LGvUbtum;86Nag@;eQ58^TnMCqe%w zlWhWHM(o;tyM-?`4;zKU5ueZAdnUs_XLo`@(t{qCNj0UYHhQq*7|vbo>!Vf5<0-X5WxP7oJD`pWNTQ#9f4b7k!~`1gzjXy5FbhP{DTt$~x5l1RC!1IIQSlhK_m z%O+$xf$_;=p!}FIoYSVO{O*eX_u958UU~}`c7c&++wf5>Cj(3f5TF?U4m8N)IZ_7i zHsUw!54lCdC=)YHpi#dlEs%kT1)l1wm3I&52UlwZJocb!X$_W%BTabzu8rUB*#d?D zv)V(f#wtq!X#0+6fxl#KY{lEKHP1gH^U9%E@A!0-FexFgcUPGSwlUSoOGC!jQ=Aug zxGS&^c7={Va?uRnKzx>A#J@jt8zF(jd=|#Io(|4K#s^BSFb}@wm15bE(B{+!=6+=8 zT&K8}32UUKFQ1q(@6-5(YE8?OA^cY=b&fUzrrrP&B|vu`?$1Ml5di-I=;Q!Ek00uq5XUf6#=cH9ZZm;8`3C%G3D)pQkts z0#OO(s#NEZ;0Gu~ijQ&@WoF012X8!U$1h`Y4$vt@Diu^fkah4#z&uzY9cGH(3m&kK zHjxTNDyNIxP`T;*Juh^QN+f3dD3Pt)PsunU3SP>ovpY%)#4su;*lK zh5kcPh%L&(>3}WabIbkx$GRWts%8qG^ntUOM#W5=uMufh+`*|bUaI4R-zRlIu_4ifZs}b{RxFATb^$J*035Wuf z^Aj+;Y-expZj-M~KuG8gc-+s}V|#O2{? zw7EutWzwBl@s@8Sw&wRM7kAUbW!UyphiIfqH4^hp>$t*ab1~`XGsf7>b~1mUvc_Ki z{MI}TtRis?)Xk-Mtp5j*KqiOlyrt$7=WWc6IMF#AVP6%LXA5q!ENJ26&( z=!dp@@ZYqMWq1z;7ypNnnS6fw8gpLh5%q8(?^DSKtx+S zUg>_zd6B{^O{>tV3wReGznO8?G|laK^P8d5W}q~UDvex@rNyi!|04@KGZ5VsXWUM; zavz#g)N%{CTv9jL$E&zIsPd=6@Jp(!rA8aySFo|$~sjaQPo(~rduCo6u zd@&pJ>TU)8M8)CViU}JKmEkjvFC!Ni^jx@>03RR%3;+*Q8|(O>3S@LAK}G6|VqvkD zs<#t*I=O#r^%b4i-`Ah}OVYIa-f@`cbu(HmKfoSs@k;YW!_1}sLCfg9D&TToc&pUi z@X}qx?_Y4MM>4yH6}ZdX)k+ZA)p6rW;G@X(tKVRN7JO_MnC1v_s(Bh2&%5KkziwdP z6Pc)r0o$3poEehVueh(tYw#5K*1+CSfqKihG_f}1Nna_Z+HaME2sD0c22Ly-zIvLU zc;n-QbR3}lpf;u*hAI4JR=RLtY@w_A{R3SwhHfpQvB#B!jK}xH6mpG-x`V|ZeY?Iy z7jm8maM*#gMZfNySSX0LNkKcZkK0tw_&3r1^C~IhA`BIjlnj9RU!%c(=3&EHWbcRf z0HMxPxt3BXA{?xGZng>!i;Ihka8YD9*9aPlpTX^q@1Xg{age1R_XCltczUX)>08l~ z%T631_5I#h0vL=2Xuim2^%&R$(6S{J8w@yiO)<8W_LT4br86W`9|Mt+DD@Y?&nG=U zU)^7iGI7TE>ZV_d03l)HolPUNkqdKrN`IaFvuFH!Dv>z@+Bx7IFLDJGUw7PC!>Z)W zA6UcA_z}seYYmXX{wML^!2Wncpfb}jU|#)l$%}7nWJD42+TGpVH;Kv4>Eye9ZdxWSq#;2d9brGywD)YG4;KWsf`6^`UQ#r<`t z2TE9Ed!z3bw$hY}M^(?O{g3%vMtY?6bg}VsYFBpGuW$khl84^Um6%x>2&QtTYWpBV za37GXDHJBr7GEk&ONJR4BDlLZ8`y(`SIK?1qa>Zj+IcS!A0xH9UR+Wx=y|q%b=B~@ zq_`Lrhr9tyj+Jfo0K#(Q#aYl(w10VPyH#-xSDEJ9e=WK6qv*hU^Fgufx{Q#-wUmJZ z2gn02Nn3TPv!C?Q7IOz5DcMuO5LIhOzQ%vM-F~ZbfV)Tg_ ziW6(EPUb-2Ukz(ru1eQmDyQB<2;A6bXU7{={?PhO{UMs(^FOxg+{3@x(sJ490vjZe zD{J_xq9m+g8uU}L{>oyt597&8S5z6^O;fA|B$!lGYsl0f1| z1aVdLtiux{r{jFC>OWo?Cm5v7+(t-Fr1z&v78`88l`@s;E=^vQB=>7F-bmOk)CD6z z)bg3x(}(c!KA11{as4ea-fbr6*v)}~o4l#;xmcN?BTAY^<)kO`W~u-f$bJNU0yc{+ z0;$7xKO2q#h60~tIqU09^k9+}nCSW}n|!ysjCfVY{q@!F4lge&FFuJt--0u>7xv=p z)n=};ImTedVE5uLzeq$ZSxfg$ol(1uB z4b4nm+pktM`#&53hvuV`0+;2N zIs^HzN+izH$O4C1IQN;qKKX+HFK!K{dn6NPf~j>-j92{(e+; z)#mJeItwFxzFFQ=iC%JFsSE;_m;*awP|Rnzz;v)t+`9f2s62TRn@TvVN++&qmHg{V ztKbMiI8ymd-p?ob8X|a$`DXCV&PXy`*9ICo$ASxc9Ll2|fM@Oi7AH|>Q zv)Bj);UGD+40mp0B~p-t>yrc*m~q7~W1n+Lj~F(5?4l0ifWQdqsWtj$wcnrf&i@M- zDD+dOE)KuKq20nSTR5m?FKh(bsZX=?pe#PVz?`Ko;|X;g6i*0Y>CoA@A1A;ArL}?; z{KM1Gej1e*G0H{&fF}R5*=eE4_qwqC>QN7r=q0L*)LT*6~jlqBq(Cg zo=iaBW<6nUWzdvU-}G86C#q8j=vSr;S4sn1G074JmFzu1Jb5(cr4T{SX^KpnNU2@F z(0nD8vzaVVjFs&>n1`0F;u(`gB&8DNQkU{qc{V*KJ6b$LbC}~5OYya{{UCn))!VL< zaQm;zAxGbGv>@#T?(b*diljaa>@ih5xHkZkkwy9fU(loJp*3J%ho-3cN6YSb`SC4QWu@mkFP(-qnN6>`<}^iNZcSx=L+CY(0qw)42J(ENmkg#k^PIii#0(h>uT zZu3HFM&RUaeD)~6!!tD!4E^%uvXf(RB-fb{{0z=7Z$6s@BKwbGfyiv6)iE&>^)g|& zn|+XLVXH=azUTvD*B4K6L=*@_jU=Uz1IQOtf~%Rc*o+yv5g=e2CLkx2KrkV=N4*#UjdLtaOY5gu~lnu?-XO->?rA7C$az>G`k7N0N218J5v7MgR5(&WT2N=0056g45LD4iuzduDyf z!I%2W;OO&SY>{&-j-T|&C=efbQ_zft75J8_1aoH0?NuO1wQMbve;X1~F*Rj2l4@KC z)KxrSr@NZH>BHM~3_s^hKa>C8*id+2m=4knpb1mz=m0j;muHcNl#0y4bLRVQnOj(k zZxUd;@I=C=SZj~Wk^}2eEc-9YD`-2!5FtrF0|d}TH3yHpO;lSO%aDM2m$X{>w><0t zbbLA#&5cLIKDfVRb4-kMix@wj-=4YobNTyEtyBGRWoL-CUV5+mGUr6IB8 zt�byLq`MbN3km(%#e~BkruGMxqT-V|8M?#$Noe8}*7y2(JSwUX10}RYr8po#3#i zPQjk_QKy9N7f;l3a8j}#En>SLW3G$!Yb-}BOt8do-Hi4HBD0~p!pN5)Aw&q!<2_iO z?XW^qNm9)xTQ;0?I{GL0j_+@RN#f1mn__iAwY4#j5Wh5ZayO7g!X=$#&fqpL80jeb zZ5h*-Tj{Trfq+HNnmkJB0o5>M#sv6#Vge^zW{>ayn&Cp8LDy;WRh))d>NMsOSh>BuqVQIWDCs@tBT~Gc zXHr)Ilu{;Eu%>tIK7y+L${bpe2v`oD7-j#ha1fU8045zjUIl-dot%t4EqCfu68o#^ z)E%}xpc0-a`}Bx@Ss&zt zF0M|*yec^e@XLWf2h)BBq>C^7D*)8^97_PtEg-Onoj3LoJ}-0v?Ul|NH!M&VH9 zD$}#%HTm&yajBkM?d{p*@KqZtn-->vZx|DUcp3A?4>qC~pIuUYqxM2c+`%=2vsmjh zb;s6T@=6FAkTT;s+pC;B`4@q1d@_Me!%tO34oykVCM64Ed$b2?rkd~i0 z6hZNWqQcW4p1UQUVwAxlU$8*hk4578Y_jh5+sF$XaJ*|JhX!yiaQ z5G>sHd1YHVbPeyxyB>`Uu!K;FEe>l8^Sz@+Jbd~5Dz}Gyse>P15ma8Y9-4lw@$%uc z-_w3Q(fziuF90xr5TCq6+?_(yqOhP)OPb-o*tp)nly4U+rmxM9DtVZ0S7RP~P_1Xd z#o=9w+>h`YX06>$q$B24Sk_o7f_guX_ z+f-`PbkjdEKP=Xe_qqv~GUYYEkPD+8=@Df7aV`#oN9uJ0U$aKmz0GlossU`f%RDqh z>3XqX@c6#aWZ}n6goCjCA}y%Ga+496c{Ym_f8c||vM+gO$yQk2hbA>Y>0{o?3K;u9;EllcXWS#{ zUGqAXZrC>K^mGtwv&RgY;yKaFSks{?1BJ+ye_JyGT2ehbK4Z5{pW5 zAdH%yLxAM<)u3<4*P;P7Re)3C$%HD0rCu|LvP2G*PPbRZ0097x@Pay@?ojt4VHYQp zCrYI1_G58;QnTmoN$$uEo^hl#{GBjwb;+F#@qd&g4_sm7IRj{9@wD@^Sb$u)PT}Q9 zDLo=3(3V8Bh|Tv>h;LcmQsq2DpgUj@pk55wtg6O9C*C z7-vcqNQj~a+uECm%}@{_HN*)`4T0_w>I)7CT&QaIC`QA# zdA&F92xVUa0Zo+^pmf=cHR8wu)SX2ed2l^3x9E#KFI=LXTry1w`PS<3wTHF8-5YMOk+J&3ps^QaQ zMN7JdK-3sLlZ?@bsKzin6YU zNs<40PAS;`m#D7gDaIm6aO9>nbEr4iTb1qgk0UWa_1QsOePS=4uN;gk10NT0k2fMct6yoq_B0D>DOaH0IjG67Q!Y8*1yn*zNY<)@E88^2jp)vC=4cS^+w(5OCA4l$+$Ww_7vPX5ljIt+UL=csn(;c|T zIC&SZltrhm1*oGN>pDPD2PQUs1wVlHg5f3o`Rsu)>6Azne~8bgg>;Iq?_CZV%HDyj ziTzi<=Bc;`!w^8=SNp{y$i?5r$}J}Tba*-b^;@LAk>RD~_g8PlO30<(X2t(B(#M+N zj|5AAsk2Ys@gO+hUQur|H?fyqOBae&8{7W| z_|>sD3}$8o5){xbfGBr|L--T|$p~IPsV>Gk=kINrZs{$Ifxlz!_>4fm0<#ZM6P~&3 zTPMyy9K7r3j~zB+_=Y}?XzjJ960Uzn#*;UMsr9M6sQ7&^HVud`C&70*sbF* zaz!OVMdRO)fp{QS%J~3}g3cYWcIuwAt_M1UPFovjT0fGM;$+w-_~Crb1dJw@jjTcW zGi>(XwI2rxzZf?x&x>(9NIkHw}BIOn4+=^3v3B zMbore+Yb4w4|l-L2Hx}M#CagVJZLpi{(}&3k#u1Gi=#D)o4ewkg5)Kw^Pf;gF@osg z@E;yjz9B%TdZBp@8aLv9Iz(bM=|K@J}T z9v8J})fS`Fvq~GH9L$B;D1%SJa3EQ0oD77rVMY3KXP^cG62?RO z`wM%xEC5q655Nsfgd|mnYc-w1eSh24ndp{_hT3iLUzCBN1N_3+dL8*g8cfoQk8Nhn zjqQt_$6Ql>g-yWEqL$zEu#P#)X+|nH(bvkc!H|Cm(_NgI_I4kdaVRnb5HdCL%W654 z;KSQmec5F(i2jD*RUjKlL; zM$qd5XDdO!%L{)PaD6})4j1(dV%QSA?i2|#~IG-4SHuv6n-q0wAuz* zEGi_4Z?|{Y^HQ9r;Ll927M>(^sy{4qdX`@{`ZT>t!P-qkcs)T zH~MD}s9toc&9Mhtw_<+-+3?%V#UD7XM55DYXVb(Th!7zEV{0*!-&07xcC_y!ja2Ru zehPd*2xtwp)oN1bj}pklAU+@iT85QaV@AAH(FQ6HzfiL;q*TzP*c6`HSRn3YR2KF< zzdId;&$o({%xSwGw$A{Bc%_gwtgTKoI=a<|0-cGF9ach+@94r^H1b;0=aiqJz3TW3 zGYw6CiZCK@b=}*p>!RWxRhgjoEvoI?_y_3NH8DUhR;1mFXXV)4I2(95&r9Sf5dE)K z{dcP~@N|X$t?+o++|;BE%XaI1QlsmPO$5pMm`cZkUPceBLvV#`u+L8xgQMQlS(}r+ zqAQ?j#3qv?hTwXsqhf6@0hdcDReFJ3b_?biTHgSYx-uS8AjP!GyAcCoh8xgJwZA8{ z;77E}yt}=U++;uH*Zdm@_m3?I6D+Kbra^_>2{>V*DZ{y0vO2ki<`Mh{sfw!S7w`Y` z2>63szKONWh5$S<3)9BZB6{2VRPI6c|His$RsZ=q+ZRsj(wKDckjeT`kl8&{BCM1mAuS*(AfdE03eutE(jh2dfCx&1y5NGalyr* ze*U52wLW`4_dWN_XJ$S#(;m*kM?!4Ig)JxW>|Ove)0kK0LU@UFK>AQz;c&d#$@6^e za(D5`9U!lBy}&gkx}od-c|o8YHx9a9;+a*U=T}!&qC;*oT*vSr3)#rTg2ZN=YpwT{qNJ>FkWSE+-isb#hp;R(~gxL!Cd8 z`egN+5<0DHFimmbUU{ziDbd;59#rj_P0(}z z&w<$=)!+NLQ3Vz8`nyvaOzta94N$DT7Lx8hYf;yueJJpRf+>`v9zlQu6s1Mn+WKk& z{QqMJQ?vW6W!(Gej!Hce*)!6pFgFM&-JnYXY6AUXM7NG<*a3n`LPpiRRua#LeqSLW z1Ka)nBxkPQp{JwUgo-Q8eMTg3az3;l8(#J zyiyDz>Vmzt(hxL&`EyN03}eazk6X0^aYb6{(*pkl7v=8cc%^CQR->vIu)7GF)ZmaYMGS`1I3(qpa4=lOa;BYrRV^!?6Fo{)wQRUz-J)+PPC^b{Zb;lHaE ztQG-6;p&uBQfg50Sb810Z@)PjLHkS2U3>uFhj7rB^ozm$&1Bw+8J*<+}9b{Ou*CO|!zGbtDkW!gHSFC;DvB$G1S8(?UV)s_;jE~0d z=A=E3V>vCnSDH&-Rgga-(e5uGU)O&IE{ckofz+Ez|3;mt6&8Vs|V+N!fCSHHq?GTRV( z$#_=KQ|O#?r_$~~`M0@1sf1U{_4|q?n~gp;F$;@qd;4p1;^Kiz{o5P-h1Fv&S=X*z zL!SSJB;-m8Jj;TiI`%!vKfYK<^^kXuk)E8pa9C`_##Em)SGT}crY7~IP*^kH_atc* zbBP5Le--`Y=U7V51QTG55vJrT02~Fhyx5NF?%Gq4DE@wY7FSVm> zCK_TB4L;Lzu8O&C6EWH56a2M0Low6{7j(epGBdx_Q;LQUdORMvt-Fh7KA(d@A{*5| zekhTYU89I$|4XvE)0eNJvPn?(6>|b31h0>#=YnI!QvOFGO(lahH=zhJingzNUZT~+2}|Z z^-4TkaU1m<*a=B*WAEfc{|auM_z6ocFGSv#>Y>xGd3vPKw=VwBH0#5zVy=Rp>Y5DJ zeG8E*28VFR<^76HB}U|HvcF3o4mViTJ1trL^fqaDUwHfvYE6&XMDerX$jz(OXIW*B zP>UQb8xU_dml#pHr3Tyiln|wLOo}{KFRE9esVSA1IW*uA5wRElMEO+JK&+*xT9?2Q zrgid68ge@o;l|7_VI#hlGR909T2ioC!^pkNw^7U1c2OW>X~!?Q4wfrPs(u^Ra)pGP zP2TTXuzY>y8NH@yiiGc<*^IkqWV01v45gT6v1$7HbmTh$VeX4}Xy#eT!-A2k29u2M zI|x!LXO(UZ{DfvAze4qj#!s!ijUwetDc=|awo;Arw~qf}^n%{wcb=DcYUS>-Bwg!P;h zYLrGK{cZTt9T|Dj4(DDE!$2xD?kM@)(Cf+>z62?3dTL5Pa6-eFG6Exg#f+BlhOoM;lH*v{@}x3 zuCsa^=QOzXgUb<{bC1-0j={RLUG!4_$_WEpB2fxkK&)NItSN(sdrh6v%V1dYN*%|( z>h${CCp<6fB13y8!_wYKG^CPCh1uWEG%`mRF^Fllx2Q_9vsBB-U9+s_a>P8Bn^?OL zp41d4+8WCn-J^j>y*}AUnU0O}e;Q|XTC*tPx-u_IwH@Z(hF3~2n&$9*L9Qp7&49qrCYb(QxF=}R}XyInU!^#`r+5Zk?HGO zxHqcWgBplnVhqn^Z>h*X^i->9vV7QciMw_os=(wpb8?zjXINI*X27tLFo|Q{?%v7Q zAQbJ1_IaG2wVWPwkC?l^`Yp}Ef25hBduq;Zde1S2F;&w4;J(F|6>uu>)6>cA*ykNS zeCI%t{k|AF@t&(P7?6A1Ef9P(Wb7 zbv(7US+#FYdDuMSk8Vi*7^X6FyC$1R{g~MEy${TXXA~OTq942pg;ELzD$R(Gp9;8` zOF)Fr)*Og%d_&(zJA+~mV#=22l4g^ygBFoz>qd2ymBwwQ;>k}OEPNaY!^Ikjwk+ihDNgWk>E@4a8XK5?KQ?w{S|r!tPjp7DSK zIlE@;E~K>{xhH?4Hb5@{IR`pCdesSc`plUKZe3x^PF!$sFz_wU-F)%Gt)t=zF|~|V zhLOy#3mE?C0+VlT0wlmDc-f|M>J(D$Mwm(sSG}#?sHteD;lw|7hK5#CJkDmWH$NvQ z2RyCRl$6?! zEmV?1BTYrs@2fVob_EJJx zTK&kPz3VQt9M{s*+XJ8Kx}mk6+WMDMcB@p(LF=KgLo4_ly5xp&yu+mFgxmPb4svqi zA|oTC6(3GKtsUh(A+6SyMw|QPOL!RmmkxB>3WJ(IZ%+hPZi@1XrPCftV-J#?*MftBoXBaYsoUDy z8O6|iww?X`B~J7GiHV768j4W@bvs2+dNW!Z5ryfpaA+fn#P+(;G4hfJq`|!HVnAhvNnK=Fmu{gWDsTyUX9;gnwnREaNk7XK`=jddnCTB1 zft{qFq~ze>SYBGf+wov`(JOn%tE555s0U}Xk6-tPyTb4 zoguW2SUE&^eVtEjJ?G5gm+L=U*QD}n$S#0-W1v7X<`2bJ;*&8tW zBw+M!=dyjU-9HZBPbj9@m%M*}Tbne-A#a8_qrEm!iON` z%)KmYdDUUtmq!l_)WJLd3#wY1ViP(Ed-4t=yh;*?QqF+(Q{Ml+#zEYS*&84y2Oxd$ z=A7^Or!V~e6rc)!%oJuIxblz1`;P}YtMx6sd$GX*#behr;iaAr^rD+x@01#kBsXO> z|5;^GP$TcXtTd-nfVkkB4WHr8L}ItQNzgc3p?{u@h-P1-DjeiVVoo?&niT^Flc}*F zSpfFiyRTV9QSgseD+XH9DkL{C3U^Xti4cfWI5@)FDh@Z%(Iu1b4s6`tPg_JY#;gu) z6v@T>yqOYql3YwPCZ@Y@ZG1jfiP4;A%X8%1@5jO-PwTbeg#0RHctJ2;vY!(M;nhy0 zh${@vbmn;$e_(e0++&b1%%_4n%-4snML<4@(Kz9r(z%`dT%PB}T)SJ}{cobx0XNi4 zlxO0%uUr878pO}D zA5nMDi5;9aeu=P;t|Ru(Kq&nPi49}SuyYnyhO??;{^yHhxsM!(WyyP@>BlQ4m&c{e z{m58jWkceq;G_l6IL`P_1(jwRnpYvJzk3a}D0HB4h8_Qag@0~j+=$w$pQ^Tzumc+c zF(HD+iI0y6YLmL9GaEZs>_`L$RiuIxge`JQ5j(3@jwyG3V}K1Odh>PM6l*Q7JW(#y zfIPS|?0-SK_Hn>PMwFH#ClQD(U&ho17uVT*|HH9%`y3;2C9kQUXo0-2zbC3Ch{Q%6 zJ&;I`jFK{QOG}*s`$?Q(B`+`UabjZVYw{?cLn%f$2YPBk3r7L4QIO%rPYeM=Mb=*p z-!c?5ASjmgpXaElV*pXv{Kw<%paw;qacODX92_a}@q;s6S$%p%mR*^Ffq~7<&Hn!W zU=E92*X!S2t{hqPvlG{AYb?HSu(^AChuX9%5^Pst%eqM|tbl2cNMN8G?}4p@Jk zrC`R(BbaY6aXULZjUmS(*X7&OJ6czgfj7Qyb5FbHRV{K#tm;p4|DldOE5G{zE(&81N_ zH8o>nV<6V1?9AT{t2b6jViY{UvBO^qz!ok{f-SVyETR#BKqn=eqTdU85l73NjYYBE z2=uRzn>Dqyg4Vqobv7Q$#Jk*CL5j4d*x0uwFME!1mJb*6{at&fp}}jA0%HURZEj%! zvD4F6Ep2QD3Y~23+-Vw3^IWQC!;`?ELEf-85hHT@0iT-Et!E%iphRsmoS8V|8l0fB zzy}PbWM`=sa+wg-GB7qCO^^=2n=7p0-D?zrCPM9hpY;ZN1ce*}%*fDffq zGQkttwKDwcMSJNkj@jWs#cU}{Pu~(g-9&NF}vdbVcguksYSrJ-Z}F7`eo)3ahN}# z(Me$v>e;ZqX`QiLOG+A4e{l1wU>fFaaFALRzSx0g-o1W#kyKAj(9J|tF#o@tZi!d?Q=G?U)DyLj(1{YBl@qeu28AYzG}U_EI{gDzn}hiu4*+O#0>c8;~e zvoX>^KZvoRhY$Ckm)e$S`U+;@%V{ZO!0SZ3&L@k)O^U zEm!c+3Doqe{%i3@{^d1>5q}R9$~+5D+?{WQ$oFz84l3jLN0J@oB=?ZB5Gdk8H^0g| z>Gwa3i4-!yRY67Y3E44}oi1L+aPdU)NM=!zy(QV4K!sFM3FgRy2ZQliF~!c^%I%^L zY@ZwFoOThf99B(T(qFUF`D_0f3VnZg9Cp&zw0=D)7yZ4s$^^IJ;SEF&TDm&KaU0YD28{?^bRnTF9Ez3pIS%p1wxtwHv$jx{$;Vk$)v!T z{DFmj0L!G1i_<%l1xi$EFPwB|pZ;y3s+D}V5A3<2q%1S61na7O0*(6}^7xz5>h- zoAvKYKr&lC3v7FQuwi1FiMzq`ZD+()XKI#OIiUI5s6nghOVot+yK?_cgg;%Wh1e8uD^o=J?? zFyTSctGK}er%}4q!&bvJ%#<1@CP(7nwN8)$P#<019IKDf*4B1~W^n}t1*xg2K0ZFs z>2+=2$mI_#mqN-IUb%$&2QsW2CP*nN+JSVM_7_V!Q0`#-1#J3fR?(38+V;#4g%Hkj zT08{DW#pB0XWYLDD)Z|z%EJL>W@hmCwB+Q8{i>xREGQhl`~%gUSBCxcsk)(ol;Pba zLn&R|nC~N#<5f$-ktF(2A)P)PNJO3vDu_o`PRi7bTdU znmRLAI6ns=eW*7wTx3Z7`t>V(tf;66rGk0z@FCRVVzJm->f8Dg@DW6c<~}#52ro(h zK7RP7ieLg_xO+d@0rCIqhvCHkg~^OogN-U+I*NL#X2`pDpV(_)E?w^=X98igu!A`O zm<~NxE5I~u8v479(xke1w#+L8J`_^UqOr94Zi_(Gsrm8a6u)_E2k@N$UhyQ*zPhVH zOv|lGWn2|Vo#1A1zl=w z+}(F!#voKhYu&j+epN>K5S~2plME(9(n$4sY|naUg(y_h&wR1&yXcqv>C-X#FF83v zG4(f@+*`Y~s$Kv`OdWYgLxWcMmZ>DvP+f;hwtxd72r>hJW*M`j1II#WBN3C^CEHta zF?oG+lUud^3$hJ-qLrcehmdMF#-<@x(jreMFSYT+X($nLSMh8<>pJ49fQ*f^E7w$Wie*pw7DrPv*4L~<3< z%_x-F@YiQhc4oA|De0gF*sr;nBJUYBSyR|iPj7tW$zE9crVe+6;VCTk9{vN7=!EAw6)8BAK*hdlhnIoZCWJhT9hM(GMOx=!LOqJ-IgN>FK2QLC5bN zH$3G(a4@8x^^*!rNn=7!By28^6G`YEX_JLiG2mUnlEvo`y&N>Su5xpk6pG|w0|a2m9Q0_|_LjVR{3^8F1jr1U9lolt z*ekxkVK%4Z1>KdgGVjA6M#oPJ+b5G5js1LA9`f$WLjivN7*UtIWU91qdsbFvLnhhW9Q_gI^sYFia-b?0_I+wx_bU&{P3_5^H=C0z(C(s>bd`v z{2a`lJtFDezc})Jz-2r}F*p7C2bJTsCZriZr&skLHrJA*l%A6ExUdiY4$epWWJ}WL zSdG*PMXoN>Z;5{9D6xwaW7N{lgc(`hVoG4wzBzGM0 z;vjIpxWG3~NwKi7=z+L4Xm?iRu{gHQ5g#K zUFZFm&tA=@`>;ed5Axt{w}?8;^@g&_>u_tBn@{!TKjz8x)YVzs-qlT+#fucr*=(;g z!J#K)DH`b~^{y#n%)mE?*zB*du?uW$RhZGfWV~Q}dNQ{=YcA)s_M~IcaJDf?_nXYcpnf132?uym1MYCtN7{` zdXFCl`$opX2-#ZjIR2M``-ipr|Nr6ZD`?1~w|V>S-Dds{o#lBL!w1};DVIZKw9?*$ zXNUKeCHAj?@>y5~r~)>xDmGohaptXABnb)0OYyA@d}epWtlXnhclOtOZjH9k7#svVvI2VN`%L1iaywH!@+6%M3eV7o(p^K?f4K9 zLwE-7oDz-Mj>kBiWD*y>awQ9gTd?um)|N;jGI*6xMnHxV5)$&Z#zKTeCWrf8`JkhX%I3b4@#A&=HCa~Dw+l5>eKKPP8K;ag+0N7>#H0SCtJvcDK zRY72X1`2h!qw3l}MT0>7sHr*bHft~3)7>rA5G&%uz0x>jd!+Q_&x97jgrt&*6?EO9 zvTN7jCbK{ZI9CfFK2QW8`p8r;(8eO(ydf;%=Hv|95rQ-k1nIVcc16m39bQUOQWD@K z?!lzGoLr4nZXdoaEh`%v6BM?iP?Ino-3{vaeQ5av1)HAyhQcqQq6uC5U2Eg*7<<>E^vT~pN z7*V8WBPr=kW(4~;U%J1CuOZ&s*#uk2tygpv_7$>W-uiZs724e0`_AY(1AB>|y;{24 zQ>yTe_hSI+4Sc1zI~rny@MShuR(&AX_!;7ZpTuvImYt>QVnieCz;a=dlE7F+V(=u* z#_^nu(p4wROp^geQ?esd=Mckqj)_{%E0IU0eP`owg3PC literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_UpstreamServers/cpu-oss.png b/tests/results/scale/release-2.1.2/TestScale_UpstreamServers/cpu-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..db141348b8f78f43361ef830d6716d358f5adfb1 GIT binary patch literal 20746 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_UpstreamServers/cpu-plus.png b/tests/results/scale/release-2.1.2/TestScale_UpstreamServers/cpu-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..e4ee4b3fb56da484d6d0ada5677231c33fd76bfe GIT binary patch literal 22515 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

_l+2 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

nuY;r;xRH_K`bxC4 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 literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_UpstreamServers/memory-oss.png b/tests/results/scale/release-2.1.2/TestScale_UpstreamServers/memory-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..89c22ffe731cb14490c88442ca0e59d64d05ff42 GIT binary patch literal 22552 zcmdRWWmJ}1*yd}Xub_ZRNOz}#bPFQgA#Kp9q_lvdqymC~ba!`&3JOS7xn(6)6=rK$Y?!(y?1`^ z?1C?zV`6^JC3#VDMzfy0o|_t@);+6dpuBV@BVszq!tLF(3J&x3FQT?aJhmP@e46v; zXETG}P`@O@rJ|yuq>Yx5_(&TbeSG+Yvsvtccl3~($#_9VsFKNA%b)Pup_>ajmIZ7~ z0n{+E-=YF#7vQ%a2_^vw<(;5X2!9*}`C!0Xrg*IIhiHn?ITUJ-2m=d+`rOH=4KI1# zZ-j?i=lXy7ie3_-fs1$;ZJmMF)VH@g-zPkF^<~0nWroWvqjZMye_p^5GU6r{Bpt2y zsG*gyt=~^)evk5F#3b;}dCU{bYxS$^DvpUAoR=oB|T>K^OF z&o;J-Z{NPr($fC?#J|~3c#f0af0`HiE zaf7XtRFm-TXn0HvF(IMzW;<`g$-z?nwAaaIg2&Ai*E$g{uFdbFC(op$qz-M5MkY=o zSwid?RqfmaN$ZXts{^tkPz1OAJ9?#6pb$+}}!^2a)a^-Mm zg+$QF%F1eayv{8rJ3C!5PQbh;wNvCUcjbyff%8I78jEHwpXbru-o~_PdrX*2zV(KCE^y zx3*sKIv(_DhdZ;ewVRZb2`AOox{s7w?@oA~emJhTpZ&@2ap0h$(!J1|F_^Dk^I~%r zmh(RP87w(dKr*AOoLpNZn{GA?QXzJB!^M4KyYVu`&p1Kn)zPXCA3pHJTFv@W{Heoj$JC0#!H z&eI?71_lPoZGX13MBlZHTw6+$i^8NTw;q{w)7IC|>s`2nP5P^+XG-wzR3OKqgFr^_ zf*YUf*8JpG|B5Cco!#c}!}m~%2`AWcDFSge z!=>id((K3ZQ2aqg=PGqxym%oUN`AaI9XjDM9lW=<$E22C8uz?r4Cdk!k9CYefvw=j z*jQb4^}d}hBhEjwvj_Exva+)B^0gbyBqRB=ZLO_;UF+Z$gc97myo7{=O0hh7D{kRo zVa=fw4X}FUG;rI+zO0q$F|X6(?d@$6UYjjp_w9bIxsEsz*pC0woTU!sNDNgqe zmI?;@`^!Z8M@NtRMUN({m+}Jx1H);VSXkuH&$i}OCWfY_rgpLpwwLDIe3YEW=}<|p zd@z1nY%dMkZq0Y^@9!@S79?<)DjvpRTUc7^>gZ_Z>ClyxJfCSD9v&{Aqot=W=O8F5 zDiU_vu{u>os~8$`_}K}>85C3;KctfEj2F(y$r&Nn$s5Sb%-m7>@$=`WJH`RFk?VE4 z=o+fRlEjM((6x1vqs zAJ(}#8XKo2Gs3o#cr!4dNhJv@sivmp|Er~?C2AWMf(@LWC#UUrEj)tP-xdZ~l9f>1 zJWb!mLKrl*@0@jDxMa=h^S3nC1?jyD!-Gsz-(X{pMB#_GI85@g8`QeMOd5I}Z?hEC z-g*4(O^0SB13kTKoq_+??vuo|?`6ktEDP#(@+!uk3&g#8^=e^Z0oKK1F3#BxmxRa4 zWj@J&wQ@Sd&+j6YpY4x!1}3H!E1m=qkAp8!)`xY~h}{!_;}!kLW!f=RV#;;rPIEBH z;E9X6y1I>x4LCQ$Y6;jMnJOvnShen?*x#ioJR-uw?H6oe2k8_T)WHgrfem)NF7U&h z{vJvwQJP?fCt)>G&c?&z^ykO>6&xMb$d+)1(-m7UuGsdbrY4CuFv95e*>VPlUnEv= zY26ANYd4qWU$-Zy^U5dMLf3Af*boBhI5)-iE3z=Y{P9sX&6d zqrYvJe3QQ3(sgqlbJS8)>;O9)e=!$VU0of{pd@m<)w?v1r(5s-LS8-yH#s@^@$AoN za9IUeS>|SDd*Fckz^--0cpMk|$}9(0M=A>P^HRg9$Y(i_+uABSG2^La^!HDTZn+f` zJ3Cx-?ag%>dHP;tnxmtKW_S;FjA3m;Y%vSCV0p0!SodZ)ykMm|b8~aS#nv4x<}@6y z*m{^AZY^y7_QlCJsB>Na-3a@jp#ESH7SpzFTa)S=1j6qjWN_z^2CvhwurSjEkMiTT zao43huqyb0&u`9k8rHj4wLG;Dotl|&zT&+|E2YxcfkK_z1rI9!iEkrZNu&zqx4(m$ zn1lqj3IT_~(VuXo>^KZDF-{*0%A@|iKB0s86n=hwi?SS;*TdBs+tZU{_9(f?8Q3Iu z@7`t8DShyP6XoL#AOEQkFT~HrrjXH#JcWhvg9i_Ow6r`dHB)*1{O_-#C$TXxPOvMC zKBLP1qR`ywXviFng0BDHrV+iGjnAv}IO?`~z>2}qsH&-DC?%Y9dYzQ4Ebpw0q^-%x z$f(?AgTzG2JjbXGe4w$hF)S0mVNxb^!sM6-sz5O1uUm zCpmcvnOj9gF!X1K(^XYf_fu})z3VvnyX3^vl3Nu=-nn zk$yb$fBA*(s7cL3cAPgSE|W%-Dh>*Dkp@XxsRI5_l3JoZZ1_%TlVf_BtD#zZefpw@ z!d*iijWtVGZK7B}@4i)_B{X+AbIXLOzMy3=Ev$f7dN-L|k8NBWh590^mX~q-Hw#9#;Sn5Z zdDS)LkIfb{In{!sI?e>@Llf_Px@YaN4M<9lw#Kg7A7N@pkKu?N4IZzQPhk=-aETbO zH=yzpkqv0$_7t2jeJeBFEBf0d@Ei(F*WR&tLEZX^dXYy^_u#E9m9U!brESJA+GN-H zkw_&vL)*x$u;DBkY@{ksuqU^$5uKRJ-)-K$8oW8pQzt9Z=N@Rr@{-RrhQbr7(SvumBDpKER7%eSl^$c?52t*KDI&GLzBU~ z*OZx(%eqE=fk)qCtpL;}ubcbzSj_hLwCDO*DJesPOq`rY~lrq*o2fGLq2G?l}BCZ4g6?sZLC z*;99j5-~3$!#HXln_nrs{DDr2BF=*IqhlU>L50TkFwUl>8~*p{ylSp}82^dVxRngG zk=@KOf~+?^Hjd>jr0;Vo!!pe057>|IY|0c=wUI(U3hJdZAnY%H(~8^9zVQAH>{YQ0;#QsE!K~)&fxQ!Ydz`v= zl5%xgjP>W3@9D+`taYOB{UGL|x|(}aOUJGc?Y_EgKru36R`?)KVFFvZY0>rSTZ<9j z)>~~Te0CqW-W$DZ-^V6w78YO*swQ3JzM$09lMTXBVWBTERYxV|Dbihi>Ww)j0Xtg~ zQz@`#@`mV>AiQuJ?)ytZ3IP=}Bj>UkRqB@x!(PWKY+O~Iltmut(UR4xnmjpJ1Pi`_ z8=_rLWqPn=EV4GyQr$!juyx!8>1nTp7MnUZPqDiYRm1bf0byPhic$hpFvezz5tmH`I!$-QpKmF`~KWB zFZc{+SD(`ek^PMe>RnKaqQuDN6wAtCluYKuCef@+mt;7qmW02s(57%QEO`v>f}zON zhMZ&eyNZnSfq>o=gWsE#C)`bowRr&nTX>4nY-h5Y3~}?=22ov{qrId8g|##K`r)ili}?Tt6Fq%Dm_GWapGZDVUIdo zO5%DDX3#@K8)xvq6cm>Kr0aMovLX%zmrc~g8Dl{0$lUy2(d8qtwT}$vLCiEW+`S|NvLYM=+j4htEVS-o3E_nb}L(bUOwK|ve6G>DV%$?br3@LMg z-bI1wXBrheaT}E#rPUp!JQ|1f>!ltm6Fe!55)K0lhVS7VYFQ^O)m7>^W|KNO&HMUNabs*3>G?Sdh2$|MJJ}m-^VExoYx_?evRr zx9=D5$_b><%1CU0xlBEKA>1A?Wj$!lZpKAOBE6qqFdrOO8olE&b7-Bu`7%00L#A#Q z-nmh8L$7IZNMN=vf}|`oFa!Gu0belU!6`S*a9T?!?wa2 zleric+nHSD0vf{}b21#(cU5@gt#V+Y^rsrsQ0!^3_D(8q4;XXC@p5{l#;@PZrl9_-dHqdeYW(o9YF#p4ca)Oo*C*7H=eHT*SLm}-Z2 zmFDJ_ryN|{q-K{RcI=&s1nlqFJE49n;jxO{%XjbSpb=W#w0HW#B6$d3xF0**dK2Ep zrNm>Ud~hUc8kM@H{BgM8h3ak;hBq3_G@k(8_Qqz^{+w3YK2+6FTFxRr5&LD6hs*Rb zYL6U~fO?SberyMYP;WNZZFs5D3XfGXlQ1=`oL|sasz=|dL-G1V`_Mzxt1Fn{^~ZSe zw?p^^QJ;5}3vu5XypxrLVF#`Tn9Fp>s$F$OhT`3Jzft1b`<0NsjoSm_>2J%&Elkg$ z{20=CaG%MpbVRy#{(hxd<_j^GfJXZbtE03IaY)5{km@ko?XwTE!H@#2oWJdIZAX*l zIN_qi_<9HMlG zs|!x0dOmx}C<|hN=WEQmI85BQ_}Pea-l2Ma-fZG)dn_*wDPPxMz8~)G+qZ8rC_*K! z%t0yfwx(ORJ}qgsjeZy(McGxVTL=$A?!Mmm=g*&}K*GZiQXv;k7M7f2`%5_FdYYQE z&#U^-Z*XZwNSS!GwLKtaoM$7*)wQXT3QG+N3W9{%dbpH{i>ueUw!EB2M5O+hD^D|L zaLG|1&f=To8>TWry$s#U9H|f;&npIEEFrL-wY4w+W#8W3WKf7HwH#!hcvdhtG8s)s zevUo+Adr5SzhIm-?dWr^6FBv~-p7qMB<8md&Rw{at6Pz;RbT+cV&$6A90YR8bakK05w5#gnMGPTOYYt=;c~}7UB92FV_b^4J<{ z#PsLKXMcWNe;Db3LqbC048_%x=BwN1skzB0F?!MlqD2$P`Kyi=Nl9~ezj%=$v70`glszM1_lOdYDn!FBcBd%SavMYFvAF` zY|ifkagS&oq~)Pyz8YaQ+F3i9%wgxvs1M1aKa!6b8nmfXY@He&*Izdv86x&QR( zQ*|w^wb7~)KnE91UN^@brf+YN4-R2E&yqbuj6*Wu!O+B~xKWw`Q!hTXqHU{!+ubP% z)%RB*%i6}sxMAk{UeIn^b_F|B_fP%LBT5vd3!^sLlp(NVflZ+8uD}vy`0zs%>bj(^ zWg+S`Yz14bHe{s$g%T%VVhPvw#g7Jy_QSJ@4?ZL<~G&`arei;qDZ9@QHy)hJO3J5$xBkoFpH4sxw3xE615d-tMh zG2v}dG)noJWg)I6R1;Ms_#P1ve=ppJG$i}cMXX0s<^0KN*DjcRKl@%ce2=Agj0*4e zN}fF8m8gj^uqLOMg16reN;RdE1V8)faRJr$Z4UQ~zm+p1dE<^23e|tx=N0F()!2dF zglgKjAGKVH$fzDjH%feDEE9CqBkZ?yC>@5fBGHIS?+1_ncQzZ3=zVdN_W|7PGQ;Wa zr}5m9t-gnsqmj8nVPHKHFXxxPA`n?|0mUt$iYK*lwUJWh{omO8>4Xk+5^wy4@4ZTO z!b5qN!y0q?yn3f~kWJ&LC;vt4<_ab%@%pmwt9J||ajTbrw zGZ|tVP2_T9DuuY&PisoHKSd!Mjrbcet6wTqS*s-muq=0alEFuy1Rh_+qRQ%9eWQ4H z>-14A@&uJ=Oah4>@z{HekB4=m5fA>G8YWNJu;F2XgTA`FZ3@I88&Yy2J&Pi4AwOOlaqieC&A1Te3-xo}4X@!hc$x*A@TM@`#yXD$*Ij zqoizcbo4#zhGeu9uH0ONLm=_m%DIxHb_gq);v&k7j7A%MZChFwY8@o-`Q0ij0UQMb zp4ivQnf5AY+5`a-_)yglNzL9_V>i*zHw;LF5uqG{;rW!o@Ex+dKc$AsOmh&RaL;T1 z3BjctA$1M^HWqgdmE^O5GSkm#bF;Gd#eLj$s(^$T6qF)911&tJov}YFG_n62(PN z_d6{uEQUL5ChGMM>H(<4@1;gRt)UU<|GW-SsT90kdxB^~VxrOZVn4u49i5#MMNhs1 zs-@4abvPFh5y3biU_ToKVVbnKU8QcYY1{DwY3@R^B!71x3>?z|HQ&#@yjbLrB8fGs@xYpEy*wOCR7r)jz&8- zWyN7Y0z(5-iqq@BoUAM&5%HBE^m|6%JDAO_X%OQ_WAkSUbTqfd9PppB%9bhJn2*ed54a=dMV&lS8mel zZSf!Ou2I~6{H@ryE#Cca3%lVvAN=PABu5`Aq@qu3(zk~hk)82H+K%~U`G8T`!$PCR z4#0K`3@0Ae+>ihUja68uENRZO$qX+$vm&G8 zDZ+*yot=gyCheh~TQs8etd7inKag!rAvBSVi+%$lPYQ|3HQ$pDR@crs}O$5*?F&mpz zV8X(~!#x5=dwY7wU;KIhdrne}OlNNSF1>)Kw@i=T>19-+Zt3=wou6EtXe!MDgRv7& zKGEX^B@fdmHr;Z!-Brjg=;`U%wF@a37&0m=Ki16nCHV6AALgDpk|Y+@{Jd%AFUl%j zxif1wLl&;~)Jc~hHjBP@-2fDF)Us^+;TRbabtVK4M9F{FnsXsgIY2 z<_#{{hl!+Ds31X9kKdZ@xwK#S3O0DBx_2`xuq&I<1f|LSGr~Kem#DraR$V~?@$YQq z!bJQuCom`0xA&@eu~C$NRN$4%)**mOPzAbXA>K8o2~0|&{e<4RPRsNiM5|0>d*w8t z3An-GC-+`GHf=(p5K1)BNc`s08a2jN{nH=Hh~M-SYxFq?vB_S0Zyg}R6?0f zZC{M-7AOCy>sDTn$&myZi5us0wH3j`#KILfja$2oXowH{Ho|caCVcv zJ{TWbc>F7*T8`CX5bwGU40WHw;S`H^bu*E==P7U=DMFwU-twK(MKT0$QJH{b2d563iUOUo?9$Rci!yAYJGA`# z578?6`ueJ>s)mN5F6+N1fQrB(WWV}&n1w+m>OdhWlJMGPKU`6Ba_R*jupsD4*fEP| zh)%yIvB}KNM%X6EueJvbCnlHcJr03~9?a8?ij3SDGEKk`nCVY3GVe-q?6|-&*o?!e za3EKWJokHvCj`U`DAYe%fEk}{z^XYO7JqwO)mNqu2^?hoNH%vNygh+Yn^@g$smLV5 z^vElHrz05gbd;)@dWB!EV#rx8hL#<9e7PMbUcGA;d6q8G@_q2mK__7kt;*jrl1=#W z3w+#F{Y6dwYuB!=HJqM6`7t;;%Ie1lc^t6Oo4yoBze5C9U3SNueLvt%%9QhyrnL_R zRtm#5x#}q3<2c`yBoj`rp{a>U1(-08%_tC&BRxG~k&%D^Bi?~b&`JIyC)FF3>mtnK zq9h){jo|GUtkn^hd@{Iz9tgl^aot(20$KqIh40PH9Wi$;fdTFB?}r3AJ3qgpt<7yQ zE5nBfZ&I?Hf6L_UBnwKca?v49Yi+y^3k%Et8VSAMFMz@!iw&g^9nVmrm>2?LzdJ=b zLFmOD7nuU=z|pd=y{Sjep}rDtn(~(r+j_&tY$%mExCGqemTMjEm+6gLS6^dyUd?O0 zp=174wT&Y`)##mmFe&7hBWH z&G{VWyXeTzYbBa^smaA@*+#mKyJQJl0c>g>#jNdn8K?f+z2BHWoTTMrk|ut-AQ>92 zSR6qvaMl;OE>rti*<(soZBh^+0gcj|+IWE%hW&efVrlop%~3vPGDHCoNN)ijwJYpp z;ex*ni`$c2@R7{YuTC)o4dMbnTv)_<4)*M%Br3`z+>n@TVFpnFh6Tw9^SBeKb0}PL z0XA*m)R)#V?CwHTY5DqdaP(&rgsXMJv!pq#`e?a8h^@8M`HtJw5LIL=JDW=2M775`G7i;ZfBrVQc^%)aQ8`b(63*=#OB0q32upY7^JXm z94jFA@S89FRtKyTFj~NPNW3B9GWjzzqYx)>*J178Cpt0!lb+nt$)#B|eE4wSEa{-u z2g4&2{W|j;9}n-(+#DeR0r128_OtN4U=m*TuA-w5pR~x=#gV+W{OMc|Hbae(5Q(zJ z%jE$+%ND3|;HyRV|Aa#=3CtsgK(v=iVV~+zK}L=f?@s;Q*>rs2e%LwQ%{CvxBOd$p#h2}&~C8mlrnN~6c{#mHeU5t zhDyw}h_e*_~W~lY^5AuK!*C+xvxP3+pg(p4Oexr%Bq{pQXWmE*js-Yqpfh*BU~w#uRCG>n?1j{ft#*o@ z9svYb20BF!&Yf zPEu!G8pYrDhUD3j(y#6$d`iWFrg(wO~_^fk!eob~Q|MkYE>5s#^Hv0tSnjh*x#> zQQYhJ6xJtNMdBAwV)mtuC8mk7Pis<=zQp|#YJW8GTwBku72#)Cpp#Sb2wgr)e-eqU zgN-!Q)rEF`J^A|jTHxEaMBHXwKwNGD)x4v`2cj5IFvLO@3X%(utWfaTiREQhG7hbB z?{*n;lp=)=>Mn4a|7A)V^}mIGQiO+Q`L>G!k^1GjqArGIPpS+ANRY<3$;& z%J5fz9NW>#Zf71*(bGVVdLTigqoZYHWH=g*o`WW5u|KE3J&4DDK(L@{=#H6}S*%vo-)%3!sovQ&rtM*d(z(UDRs8{4%Qd=uy&MxycnOY;vKGA3pS-Tmdi2 z&cb3Dd(SU`xOJ@KYkNDk(wgo)b6;-I)+H_ZAQGV>pnp(cE@ikAz-y~FcWQy63gUl+&*_vJGd>Le+n|53yhTy)dOK=7V z4c&`?uf)C#1UpEQF5HwsQxULg7XtPIA`+#KoJlKy93`(QzOi0hLO`ni;XH+Nv{}=w zmODqwpsBQ@?8d}GtjPMkKwryXb9d8tY=g7 zpgVM!f&vs3P-TozFtM?%fb3xecQB2KaNTtNho*(|VtbDf5;Dw!bP`VV33CA&#AnfT z5sELTArCbL^+hlpBnVJ8(K~W*J`IAfHO@EG-+{)2b zhUj+OUE*N4CK*ys@a&&QsRtok&oleo?KIi z3-x}j2YN_$+7U8|>&_>__mDin?7<+0CCKy$g>86Z0R~)!jLY-*U|$el;%m2$tEHy8 zd^T0KzX9@S@Y%poP)>kCuMD;k%syXS2mIG+sCcF?OHD&V!*Vd6OvHT;oGpQ0VppPS z%{|6eBPZL-sNaXx?Ake+d96QwtXqq1Px@1|7Q2IlXKQN*DbpV=-;bG!;W?ei( zvu2rgCC6a&gp1Wi+bbix@QGzRJIDk;4S+8J;y7$F0dCxuMB|C0Ub+Q8I;ja7!7U!C z3jh#T*9WX`e5dGaYXhWrB!Wo|(ndt|_~px&P>};OaHtY*<`TS4lKjar-4)FOt?WPE z+*qvwo14m@=35nnK25bXH`-5`n z7bM=C4)RHwMx5a;#%M*l%Gv}KH8lwRc$M5Q?=}8SxwjN|d0?PGxbGF>CKng~ zO@U`0>hyGi3>`^CM98_N%lSX~#}1uff+AzyHBJlEACDeAa&mGylzQY;;{idBqjp{5 z_sxULfuqOC&ku(}J&zUClRan4>(2^8S+f~ti8_Oco}T2vCCDp57X>(mA1-?o3k}UQ zxapT2a~ycA4KAngtp~-Ck8l`FW{NHVkx6R~Uo02|$o&;A5fKq6RqK7z($WkHcniA| zZ^skNECoB7?o^tAht<=m$fw?l=CvI^+TWybou?`ps)g8-rIvAtoq+p6Ie$J8Ssb6A z+ccm_ukx`5Ks7gYIEAnh8XEl&m0UmsD!5jQNMCX6c+BLo#wKmHu>VcR&Gb`qJBn@B(5^n|#+^olIUzn6srKK77rYnHV?yBqqQKO4X%ynUmSW=^I z+${fEt{#70kdZJrAGs*@ZI3#W_85TQM`oT2gO3KQ#DwuS6?ydmFxNx>tqT(3`H*}$ zJrERwU=TO}*oZ(VJbEB#NDYmqos)6wR!u;mQ=oz4v$Jezx5jTV6V;bG9 zXidQ3Ve0&Fq2Rsb`{-zIL*fm{OnoQsl)H${TV!vmd${DUKEMKq)!SyVns#P(7EHkx zM2t$p+kIe3tOS9$kD;6bTItE}X>pI@_V+@gqnq@BNQsRm(hoHPH@*mB98m8zG#a_g zMw_}{225xn$>lJ7%e%~IxY1q+p=Ss9Do?V(jp2IAsXV3PnlNJ{O!u{#@U zYv7`s(M!j`5K78_2cVSCjUXS(W!Vf{@W!1wy^GyVbXI%+zRVnIH0H5878e%~9IRjO zzHjSwIPzK2N0ZdEeaJq7uD;-{69($D@j|H)uth6hd<_bAw-$N@otCvhF6iod0449u zA6Cjhz?8B-uufwD5LtK{$h3tojh&^6R?zFzuLKCSX!3!vq)^AMbC!xW?*5>9Lws>X%R`xEsP1asA zT4zr=hlw=+$tW`lrOpT- zHt^e&dCj-XsL=-tXVIY=bm|+^-zPxJe(oxUMhlNLz{k%@MJ%-exRcoce#`Lg#1Uj5xUa-5 z46F$NwF9VEe?=ty_gDDKtEe6&g1n^hQ>GRYI;eu~YVU;r?z$=3+D2Bog}gA4dD;GS)h*O1Rvx_h_QsIgh9&9;kDnEr&|$1e0TA(=w727M;&lhgnoAD z7~24S2{fc$8v;Cb5Kb-h$4%1L;9KB@ieGG+_%?Eyc6Sz44k|@eJKKhxbX=Zb)=`si482%%UGW`m!6KBbFsYP-qf*Tb)QYR+pBkT*jj! zx4M1^+B;yHZJ-n9Kqc9S3e*p3igixmj#1mv9VdVgwcVCdqK$XFM*sNIOUfuuZ{S0C!KyMgc-;-u$}F6zqjC$ z$(%oXKtW|CAIPxZ`rzNt{xcr!=z;S> zx9N0$;^bNMePlD@+UY#}6CWFU2&z8}0qI!CSUL16IjN|`!%_jm!OloU#GF@j3JcY% zQo287u06{`OxT;kQNPf@bAJYj_n=6Zwzs!W>~)7=4h~HnB*8sta)NG(GBR)f=7Fca zD4^;BY|+*3>PE!7dmB1hzONZv8moMk0u2N@dGz5~D}A7CK8`i{`SCU+&4dy{yQB6e z9>#hlD$qYu+pYFteVKk3}$|_ljj`b^fkEwKUIeGk}?$kZ(aA>wx>*!O+Gg zzjpzIpz+Wl0r_)xjk9gp%~#Arvvvs@{}6iK369PT&TO2~^3XNF!OWbUm#1H0qYt8E zkpDk??PyH;yksdzdV_gz)as16m`vBj$f>P8f{--qQKBA5S2zw zoSy6=F$%&6#0_5SVRa3S?d6irOQJHj-dTtI61k5U3ED3oE0VR1=6;Yi+)+noI8`RR zr>DojW4j+%TT%fBM)W@WqhE!OKt>FO;h1~9!%OexUcRB#%%O>hcBG0gOdrVb8ni6* z+>D(FBED+@X_v6;r&CTRK2oS`j@xZLH$%OSXg+Toy$!xULOL?~j`K6#Seua|=F0Jt zbEwKvEYV}%-XfSWV3JQDzaJj{fSU|8KS%xE6tt9FAj-A8j7^%EoBN0QJBzY~^S>_P zT+cS%BOogr931?8p*0{cFYo2szO2jSF2BnL4OlohY^|)IE9ek{)W1MI<#)7WJ9g*W zxZsYjYzRJ$RPpP5j*Z0p&;O_?3HML_hOP5mEXe4E5c$MWW&sZ*q*`IA5QYys*g<6r zg$Jk=prX(#G!j=-RDAaAwsTvRUh&v__qynQ$YL%k4(!8pa7eqwxl*M#;Uqy6Or z8I6_3S#eR>Th)ALrD7%oRZ3Nh%NT8@dHWC{Ush8cWWE`{bQOhLRC-5hUQJ8O8FGY! zgM*#Rz}*viKR`!(-S3F!)t)+tL0tJo^+80^{206eJV^QA(u!Tc?W8VM3+HkkCSSsT zV7`w_)n_;asOBMkfB5hrEQMzn7})Z}`r=}oqZ=U|*L*gTv+(bGb>WBE8abM|+CVw^zPohp z`IK*SCb_F+BoljYCXzvXF&w1PhDLy>AuDp|>VYcqSBa@o+-i;DPQvMa!ponR8s1xD zKM7)YyI%1f9PF*?am>fia0Hd8lRzBcJ!Aw`6oO8y?}m<;!gd?~mNR=5Bhm7k#~FO4 z9Id(2s8j2*@rmC)9=eKBQ&Yt<#3_G3puF8JTzt>=)B~cN`XC)UJ$-t1HZyeE@x44x z8zx=I6T-hJvJ|~HQCC1jmWK>go#2yf*EaPo0Da^l?tESRxRlscLypxN8)ziE7w>g! zbe;L26%Tn8_(3wDfe>y7Ar&C6cSJA$sp4eW z&hf&N9R_9^Na}MvW6Asnh*w6Tf1}}WY)!JpybXFT#^6tAmT}~~b8s&;uTkJQ%W}j= z_DRsHVZi0HO6l4aMY{O|Q*G8rs7}a*T}wOvJg>^tv_#^-=Du7iey%=_MnAb3IXCa4 zd8Hd?xb15*zKK<#rxj!w8S7mCR#@<8Ueqw2OhR46HHt_ur9$xaeDPU)$ z5?0^?i%8)kesEzxB>eFiEbLbup(6d9BMhhfUje&j9Xrm3`(f`ZZ3D`|UUB<<~85>E+!NBuUAw zX3U94LTLc70?@CZ?`iKBbmbN9&@5;3yfzXgtJxj#A3>X2F0@Sk{CJ(D?fC+3q6>Hm zM~OE>QdTOLP~I`{U2v2wot+$vjK2WuLwYU${)M)}VW$#Pvv*eZJH(a?xB0f%p^l*Z z=}^?s_Fv)iX8T8UHwda4_;)gE8ewtYB8If2@DGWnFp`FCGwg|uyC6RqvC_{mO zf2lZY_{gvj2r1hMjeK627k3WBLHL}705iPA+cL7U#6U$=89G#B&RD+ zNNW)~6qQ-93IU!vHw+~Vzch#+S*ze6b2V*b=LCA>pf4zyk?)~OF%<{N1Wol#ckJ;q2(G+ zJAhvZJrtqDx)9x-@Wt)gKut*~uVz`uk@fRaie@A?xR$3Mt24lgT70Y#FJ{|Q;R5PMiBQI>-veXd|H6aZv#E>dQw_QVLZ#$ zg!Wnrgxf9*YwKQ=wLsnXv{L5ui^5O=qE;&V>d;9Z#bb{YZ(luVxPo|EL@e_P;2B(r zpDqOjNY(e*nNgc+Ip>-q6AjxlqWg7KOL8Kx8eN5#Sp1;&$dG9<*@fbR`}Or)<$jkh z`XvoAJ#rrO-=T>Jg~(@E)FC$yZB)ss_=aSICh2-NorB|@iEup2ZP{66YG)j;Y65Y=eT zzhCL-DT_RJ&-tFWMSSyY4(*-=8NIp% zYOZ!plX0T65~Yg?Q}fOH6~(3;`D0xQ#0_{Wn%e}}K{WQTyDu+XR=<)JSzJLfbwKPE{I)!`D+tER4*Ew`~0;WasQbaVu1(HD~v zV-pj4Iy$8Fjg5^hN2>taQ&FR|?*((kU4cKdCnX$zXHl@QUC@71`j6a_Q&4bZmlH%T z0QCX(x|ohh44m)DOMW-1*gydK9Fx=w{{vS4@w?F%3JpE>D4q8{K=F2HR3YdQY6UCJ zM?+V4sk-A&dc26?W$Ulg3Pv=lH39RtNt< zAZ~P;&t0HWfo>>1ehy(_rnztcTCZuPD1#A2TE zr&zuyuUb%a=4DaHhg6Ekh@u|-tn_UMwiqpp#~K_4imjZ{lM0bD3yTW&Nt2pcS!`DyFUbzDpFE^`3&9c@6)OKChMYaf)?TF2 z&0ID)voRLQ#vW2+WnPpdD4pd3l@hs)J&{}qRkb!vw=$H7JJ66bB?Vk(wSK>XEf?_U z_os{hd{eryhhS(HPa@jjV-^A_*v)_p;&1vH;$pi=g(u zEmR7*lPsK5m=sNAyT0%8o`qFCHi9ZkA1nJ?(+;eFxl;-~2uRM1qq;>a^R*$1+Mp{6 zO+~(gtsw|@^oSi)7fce{FiSnn(ug1rF^(f&pR{__nv}G0K^Lk`WH47SBU=HvB~dDc zg<0g|F@u;XuUv>oV4isd6IGN{F`^I&Oxm5HS>@W+m4bhCjv#@FjA^al{$@-JjFFtu z3HVlAkzbeP6pGua7S6<{ls`G`l8K#tclX>(U(sGVN;pgOP+rMKS+j}l-J6%>{-R3| zukW33TPiaKMz!&j1!1yqJsGtZ`AP<7%r%3Gs{bqzLAMO$D5q2=C`d}TxUU`&Y9gO{ z4WEKMhw9swGZz9WppHU)(tK!a`=HY$1R7f;xumdAVz;I)7+`>hHdpzDfYWwOXwAYn z!6Db#KzbR5%2Sx?$p9aGD^MPNgY|g!&w9L+Xv8cBFnvkW#v`o)8KYRDa-mN)tjBFl zSPzD)oM-EC5i@YqSGHU*_*wPxKdO9hR2ZI=ir_uY2Vs{y)ud_@Ij&0xEt6$GzX38G z4Ljy@YJQD0BV<|A$$1a|2_Y|~8ZpU%qsZDl3n7m}eeh{J3Ur8-Djn~?y+#b1$PF)- z^1XFPWj#F)AqI-_28<-NZ&kVWaqH`UY~&n7q1S)et`!m8mkXdeARf1a5{2T>2m|zx z^INL_=JD5WDPQ4(<#3qx3b|t=if|Ub1{S9Rjw-21$;IwcEx}`qs{#U9s z(_5zbje4La7NfmVcRd$sF<|QzSMbK3{|T;6oty=H;E6mVK4i6aANGFZP=aArpNUH- zd;G@Hnwfmg#oIsU6v7mr%FiH%BN^F6(%9PG4wPC}Ru;rbp=VQm!_NfhM#$a{sa!?& z#7l`RqiFeb;9Lpu@%sk`@4x2o3@REPdP^xh#d?a?~NIi~++$`CV{o zgLKfXB4D`~65Na1801uyy?V28NJRCX_e3O~POf^2A0|PKA_sj2RJE5Z|1(yBgq4e{ z#~-W}pVYFuy}v6~fCDjT`YfnS`Z!kk@cU>SWJ9`t`1M5m@GV%j1fl1_<&5XAdWdte zu}S%qA3o%_=wmGNb)X#~&6-Ym=m9a~8)ll%_U8*YwZH?+fR-dU7&-p}#P0x~(1Z#l zJLQJ}^Pe`}hNSqCxysCl#%2Vf0CW|=4+YZz?_trOO7 zj!#Ewb`vuf{X?fG^u?>#dL)FB(dm*ORXd*Ya+F3-8rLRH^MzzR;x`dCAH=dhjVeK6G+Ys~S>o%nzRc$p%;Q zz+=6_>}-hT#Y#y#JR$nALJy|2)2Kxm#x2lcr40;E5k6feu~?=U92~KP zTL@#|RMn(W?^;YK(}Y4@j*`A4rBYk>`moVx{Rhi&Xp$a!W1{uJ0vEicw607yf25Ce z@h0w8ihl5}K-%AF&yLS|01Pn-_3rFk9m=z#bj0pJMMaUMe1U|{d|@Y=)6AhJ)`F3<%M)lNC-Jx27ZQyhQ~wC;poh6l;88@7@`e4C(0V z)|Ju1TY?K&Mt6C5UcY`V5aRdh)zHdLdOE!=+ZEVxiZE8Enz03dF1!c#U$~t+^%=5) zR&^&*a~m5T;$R?J^WFIq^6W5}s@^2(iOaH6GitpH3q)u8cd4BLj{q~1Nq58x3&IIB zpFfLb80Ihrd>??CX&uMaHP8-HR+t4q2o@1JBo2__(Al$=4_QRwP2UikmC}j|kVgqH zGMYiE31Ab@_;7%X2pFR2svD(((~B0 zA|tz?z_8Npk&8=Z%hMQc^B%xW)ACL{pK+yuOo#Yn0kk;F4na7nw5tRW0zEBo=)_R} zRYm*tmx-fF3s7<(*PdtqI&lxqLRu60d|CB|&1I;)%YZQjVC47j-~JSydvGF3_466o zj3@4tjJ#?V*4ASHGn90SSl)>S=p-EuegI;{L7*AFedlC+>fe_Ul7!;GFFFVKhK1dr`UX0TH38pVQW)B<+5vFUh`1M80wN=w1~0f%(oxZ5LYV=l zCz+U)~@ExDkg;Af#+FDe>5!i2}Acs^8)o8vQ_4_5c*aW&d8m zO^ME(n(-mii^azo^V0Y3-Fy1<4;=XbVg)$(qU>30I{_|k;gj#!yBVr@bQ~N?=x4J( zi5xdUVwaSZ1gA0NM?~3CJdlwQrXlOBQrwCUd){gPS;fL4`%FHN?-n{bA4ynb9DhB39?9{pI+4 zEkek(s8_8~2UPt4tfw)`W^jY*34|E}0s^B6vMLcE{Q2J0#2*6pxk@I`mzOpnt*ZLm zwPQh;ZYF-t8=4F0xVgERn6h$YKK(nMg=`~uSIS8_8;-<6_^WiD4%-~3sv8pzUGAOzK!ftVc^K*a}Lkd4I zD@!+^;+1?G*MU)~zViWh3PcSX8yg`sSFT*)iEZDw?-5FOn~us4)Lpx~p#cF1{tFFp zq|OThbd$@ZU3dfpJiNR)r{`21F9EV|MmO1@ETl?dfjje^n^V3%@5#J&}WD^@7Z&RiN{eYXB zn|Yc`T%AJGdmW{oYB$(FU5Ej6>mmk5do))@&IOp^iA37;KN0XAIo4w92Ns}vpfwX9 z@qtU*BoSK?fZp12-U1l{oFcWeJam(UBxj|^R#w77xo+q2+z)fay!QEplNnrq{IDIX zF0&b{u30S`Ss^1MgQKI=Md{ap8Uz{~`Xp^Y{U!0{*Dvj+$-#4DZp@B688pJ--;jHV zdLFrKcOt}3ys#TE9ss>=0>f@uGREJqrS*qOvGbe;bXNYiR?al4sdEd%p;ZH@2%>-~ zRO3aPU}{tp(FWX1Hiq6++l8!`%<;%f&7 zBigJcsYo`dV9AMzGg=DlBz&=ZTrSoPX|JKU-Z?Iv!u zD_7K(!rie0XE$n@daIX1@26r_p_WDzQZu_{_c5UEv9gp6SWY`tPJ+bs1T)E{4Pe!K` z_ksUuYi{mKbPG;;5OkDF(Ir06T5nR!PW^|Sj-!>|9|n0WRBo2#L}2!``P&7L-0;;a zT}z(}tGnXH;}R@@D>0dJ6*32I}(oCl$DjGm2h9`oi7rDq3=_5zKeNI zOeTwxi9@OGZNk;7iZgZlJVIpzMP@eTs-baQzvDLK*BVSZ-wn;l`^gJ$iRT(GBRD zu>g?V5S+-*&24QQ4hI?e5bwXX)EJmwC#kPFO|dATk@OBn??>SLDn z^#xM5`1||&=FE71X(*aduBlqGWJ%!dZ>o!n2T(^K*ETUR`Kn^C=krJ(AIDk6Z&6O~ zE{Po-+C ze+x4+xVXV1@EZOua}2al(%)SekK#--4&MJ9jl(e|$ACQmX~O>h)1|(?CS~y{4HqPm zX{C28vj&FG`aW;0gtnE!sD-cU1hpAgo+7z#%O>6^rwMN8-4-;m<}GJqr6XSun1AjF(9j37F*{%(o`Y9P8@p zqNRuecKYz}aHW|1;sBmzq8y?Tn~Y*mVB@yLtyfpK13=wMT)YJa!}aZRo#{Lh7AAA~{?MG5Mu>baWKHa!fyYA(mB5&1B!r zu!J8(npCHr8bL+fBQd@T*KnLM6sMb(rq<_WJXgb58dhBV+XR r_ZI#3R%`-SEPJ5XOgyW-MOWb9g^}tL|`Y^ literal 0 HcmV?d00001 diff --git a/tests/results/scale/release-2.1.2/TestScale_UpstreamServers/memory-plus.png b/tests/results/scale/release-2.1.2/TestScale_UpstreamServers/memory-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..c470237a66b832b9e0a4bbac9d68dea13bfb6c07 GIT binary patch literal 22197 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-affinity-https-oss.png b/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-affinity-https-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..c308a72beb2e219f28f89c6f2b18c2947605e440 GIT binary patch literal 9899 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-http-oss.png b/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-http-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..593a4e3a148139f6b5409514a8cdd5a086dc1985 GIT binary patch literal 9834 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-http-plus.png b/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..cd4aa2c1c298bd6c0def58e539bc49ff4a43e753 GIT binary patch literal 10268 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 BzAn$VLf;|? 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-https-plus.png b/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-down-https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..cd4aa2c1c298bd6c0def58e539bc49ff4a43e753 GIT binary patch literal 10268 zcmeHt2T+sg`tJv}RaD%gfGC0mWd#8RAyTu5$VS>K(wiz^|>helqhwkez>^KRl6AJNF~VK?HYB z;U05g^picFgT3my|Zg==#Id%!;2I7V|t^ca>({wMX&UD2ww`GiQNr8M#awg8Js^G zSQQ>y7*=OfN^GtqR?JCMd}wd36e^IElG=?R!*&jS2oi)n&C7=zd{NDde0MAtLGErn zfdpOo4_~?~SmZwTkwm3+=Z!>HEhlpsT#k*euW!o4%?u)!HPK~5z~@+3DtpcN4E-w9 z6tBXlzOx}lG$Yx5T3iGhs7jl;zw-dIMU&riwzp{0F`l-Kf_Bv^^A(0>W~Br!XN#!M z=eJwLEc5MfDH6(=h08$M0K9YeFCC0^MvHvA51RaHw>fJQ-ZR|`52dnykdc{d`TbqtjdnRTE4~|J5?5PaX=#Uv zHZJe^Qm1uAt%u!iodIt6dM1?Aqx*s^-7KdT+zh zBC6xdyk`C03z)DbwXqkRi7MW6ZOJ+fA3t7_Rg5Qa)+iH%)uE83#l`VvqK&7mi_07= zMzM3>N(7Phx@n&RTm~Ukto-V``}K(w zkKEZLTU zM@vgfhO&yYJq4-EXBe0MGk(jH@C@;J_~Abuq*r=28IO4T!ty{R#fX29%Bjfro*!IW znn=xAa_-K(+V&b3ZS6O;MJyoKz9Fhvech=e?V^!GW?I@$RtCLLUz4p#t`!TlJN7G* z(8XfXRlH`p%f07kdJ1BF(A7!NjR_|b$=4cRE@#843J3``zc`hoZu>f+1Ku;y80)?I zWr(mELP%R8b!Kx?)0*A}y)@#Lo?NICGYI60lJfKOB@%oNPmk1w?pL^Z*{>@nke)d+GxH%rBGsko#VOlAe*4~t-1Ww7q%ACKtUgsg z{$o>z?MV}qb>UTmE1>j zufA);@QbQ;mwHU}6ga@=#$se~;lsnj%Y*P$cQ$NEQ1+B88hap-P~X%fBPFFX;Itfb zV-ojcpbMOO8WTmW3o=P*Hqh4e1S%4 z+REFY0=G?ka#y~5ehVACwzdX6-%K(q;LOc)WN_h&i;H@(ih2pEYjGY;II2hg8@HoJ zkEZ8fTn7UNJiC&;t!}q!ZP>Dt)LfFuuAl8I5j%aoWpS*5u$&}@XHKPt`Y8AGC~);I zUA)-(TN0Gr+60lj_)!Y_GE4cEUl%QhtnRxwx*R2{=JyzW+EetVqyeAyV_Yo#Tp4o% z+K>0PR^it>qBQPpHoAOyX0TFatD3xLLh#+YccB(sx^oYCdeEmSfGv~lsRr@3ufwo6 z+FtiMq>=p+UNN_C?)d47#^%>pEuUsJ2Fbi=+5x+67A_vbFQ)D}-SLheYe|=1;a6Y% zJoGLkLR<;j4YslwU@@akX=Gfujoj;qbq^P(b!P29ef?(*4Gp-boQlPd1(oe-Wq@mA zV`Is`jBQU3g+j~nsF;TJ)hDVCKsoO7hWovY<=?_Ds!N6Y_NN@21RSBPd&A=6!jEV_ z5!Y}?Nst)I$jqLmlDPmD5#qkh})+@@3E;vbru=K=0}noKn*OM55|Clk-} z^2w!`9RM`hq7U|MF+A*#G)f3vuwy!uGA`6K?AZxatnbk(i$*FKq+d(A%B zEzwCbYll)xH%#sHcr1=nzCHQ#h~f3P|FJ9gr7em{g@wz2FLUsa&@-J`7T(2F>u8(6 zH71?bj-mR`S3-*?y8_Y>VBzb+#0&-kxNHV?_4B=sE>BUVWGJLAOOHlA*@~wT5lc*3 zPO75UT>n}}x?z#(&A|#^02#BY0AETdTx*l}%X?_9s+FP~ijp;bzAewT?v!mUphz*Z z`hbd81#7Xv#&0TlIf}|zDIv4QWa}Oa8#X+3Xn!tmXryLvRzu@0T+*3sRSwu<;Zk~( zowDlpq;=7J_DTyA23@XWcIh=htA=P<_=kQS3J=2a*DBa6eG>X{K8yixG5?u7S3J!k z-9K=>kIEU7C9IVY)=NTm9`J*`N5N?-IXWfGgO*j2ppN$&s`-@|$ee;fCv?K}WWef| zjBTy(J%-6T~ zwoHtUKHht3I21GZ;^ft{OvB*F$Vl#@ELZN<=jyn)IM}ob_zWX#iplyjbjM(H(V-M& zWnJMeV9I4F4?<`306>W2G6KJw+y4Ij`z|YQE2trr+mk1+R0plkmCr{Qs4I=A7li== zI}Ma6&~x^WPD~iQJbeQu;*^SzfI#Rz1xX1B3HaE>(GNfabmw1UT&?E^D>DPBFan!n z&!0a(&Hi+HSo}2y>F_z`D4fKM$k4*8Yjr0YUS22S63?5#BM5&|Nj#oi zI{p%#L5#av7bChci2F__7(w1{6hwYJDf>Myve9GHUq~Hi<XYM&K{txBoF$R#3lJExF>cWWT{q3d052ZdfG#FY0GTVs>9!*Mst0a4qrN#|Ni`*}~ zjxg_FsLi*hHXrcrUl49>H({FH}Q%3P5!=In}eTqgrTVFIei&MDaFLbiq0vT$#9+| zea_5mrf+0Tn$<$ozTpFrY#zSC2)Wx)jc_2VQsDMK3X3k zVSq}5cxBHFdy@f8e||xvmtsZ`#<| zAWOD1HC_Ea?Fb|n$QY2FF&Rp$YHHX7$jI0JN5L; zo%EjT2UZP)j|erHmX-!OlisrlY4K8++SXYPld!|kAj>rG6^ON>e&^c9!f+|dy3qFH zq91uVf;SU%*sE8s5)%*77*L}tpX8eXZ`pMOmiDwd$f8(zhooVuQ;yO`(()2sW zZ{Kh{7hRB#+)SNl8F&kPN(IbiL&otRewc)nb#q&YQ}PfzVVVp5y8O?J=DCs+&|1f3 zWUS$_q2{O3Dc zZuU?DmJp=yF{%c1n_I4!nK`>VAqPjyQx3mm96byE#o7PRtoZwC_W$jU`|rE|n=40e z8wre{6Xu22p$kh(ONBt-vKdqY{FUK-2I!}A$v`KJJlC?G(v8^+UKp)#AxKhB zz%0|eU$`9hufP5Z^IAmVW(R1YOa2WF4IlvC05=8I^E@hQWu^xe(_#dc8-4|@w?g@0 zXy6xc!%oA%?eFjJXyme*xgu(Q%b*Nh%V&$laS8a99vF{vz{TsI9s=%x4P+T`Mh)i5 zXxZALzOS1qJ-5fx$+kJ4dRr%lc!I_~T*uzWi2ifv=`y|TMS*IQrRwmOQF0|G3L zyP%_Eh_MM+cn^+33iCKF9KIBMz8s5^Y;}KHp`2q#8E=p=EsTZn9F6Vo%CRA`)C8KJy z5@#Q7CBb96fI0!Fx2=1k=L&jy{n-)ijKSIZXGcJgf-Lo%Q;WqmZQC5A=xpElM5dYL z9WGu%4fGEeM|sI3e0*diCBK5LPe@EU%F;Y~Xw)!*~F7>s)e@jJqHPny1NkX`Icba`E&^a1V~0e>~Y= zx&%tB3)C_U%$&5e>rh2Dt2IK?{T6jCW@gz}cz%p+$&j%*>O8!y)0@0LAdWL8nLaam zj~aa)gD5Ey5ZD1s6qqLJhk*o4(TiSZ_^Ibl0UKW5O0%YBM|4`tc z@1eaHvVms&45arG#>2w{tS2()MO_e;yN=r4De{~4x9LA!+c zNPnW`0QlE77cX8kHjYYvh9GC{PUK2TN>2ClA}xYN4IP-dKjF^>?Bbuiyu1Kg@uCU9 z(`%!E(m4?EAeH)D$!fTN*sS+2VkisGV>B@%f*R5`7o6GwRU7 zNSH|Q&ju!-NFTcumteKkRB0;rl8_0JlVB-Q&hGDZ)OufQ}90?G14(2`mW_$US!_{KWm#HQY|KVXA`nZ_X-cPakuF|{gJ=*rN+ZjQc~?lIG9nb$kG8i>fT?PXQB8j;- zBTwXu$)L_*1cCua122zjLZF*~Y{^;}0(!CfmOtmPKZ z*ZiOw@FnnyS&;r2hHBS;eSc%+t624`9D?vC2-zuAf^xr?i)tb>=U6oU%~7L)0=!7iYtP+JUt8W#>Abzl8g!M*NNZOP#0 z=ul4_2fAnn`*=vRHlg-;lv!)&i`*FF+x5YXWpR$ei+8q&LNvvhDQIr9K>b~};Xi5{ zTSQXxGjb^aWXux)L5O*HN`{e=k`l;T z*FR466*)%7#}5F=EJq311h{>!z5~`BZs1d6;{j}7K)gw8jf867?=R0>oq0MlWc>(1 zw$z|!0gA3aX*Z>yQADe?fhjLnlk2vKVUEzyhn8q4_LTSQTMm^ zz&+X<-#&88DMer)h5JKFpeY5T=yHGjOz4i6x%$GyZ#S->UR-MO?OpLP)qZPZ(R_S- zM4#aY)8$ZfGLVR(Ui%{()-SMJA=`x)?}@PvRx*ID=@}b$qSa_Z_zeA1wGisM3`zht zZ7LKDW)aAkDCIjuRo@gA7EXJ1j3?wqX)4&)bRUWk7lud-{Dk%8DGzXC0w97uq}j>o zZ%0EDaJ@SS(OqY*#-qFT_3@5tX4{a}*VxnsJ&}B+V@`Pj11;!E*Co6gH*G57SArlC z?w|>Nz%fKK2Jfn+c*p>niCA*&pVby`-WPnQp)}_HpO?>j-`>ni0~Gmcx;S>4R4qnM z`(vRG8)GrpCGbA5ToyRv4vjB8A#YP%tUppD@&y7em`c;2Ai&k=Epn87^ZD*__CJMz z$G?O@gRbfN@B7qX7Y``kHm&e+!{I(aEC*?q)ul^v;2>tq_kG>cmkN%`-g5zvPsh#f z^xXM$VJode7dv^L-xp-s`$s|yT9@l|N4lPfTtJPWbt~)~)aK{l#=_h=>uZFE#8 zO83RdAu5+mZBNaIamZY-aIfj*r%Z0O4XK!hl`5Og=;%TtEm$Z>DLDXf>dP&fdcyfl z6AA86`fw3|cM;(DRH%clDGEoq`i;x?T>77aoPYoo=>HYq4v;;+JY%;SEM0-(hJ4m! zHEh39m(plvPL(n=B&bzbDo9#XVc#IOI|F$TNEd5-{bSPPWvS zuGfsOABZnx36Q+u%tv}^f_dIAS|u(6H!CzDQ-R`C^SkZW0EGd$Dho2AvZ!~cn~qwA zFjc@*X3x43%BNeOh$vm6C!}L~#vrk*4)zqyaNAwG(`*17FSNEHzr)zqGgTSSYieqs z`GxlE>2N11Z>e7m_Pm)Qc6;PLfW$axn*;zgc}`|FJ+3y&vXxFmH@JXval2U)UDzFb zdGL{~OWp0^EJu?X1LX3AwfBIh!}@pD=Z$aQJ4Q03#hkpQgrPo_E`3GAUR`28;n>i9 zB?1zmjET0i&06v$?xXDILmO8U0FzkPoMVoZ~D)vqPm-n0^vbd9Nj`K2D7K^(WZIud3=rTFRF zn)8t+nFiguQe~yhSKFgK@b_oBa;Wg_CiFvmLNdDHuVL;oTjjnE0Q1ieU7l>UjrNe= zVP^F0!T@rTq1;OI>DTcK>Gg1S0G~&eab~aD@ae97>~$)BSbjZ|q?H?A=ai*>OOQ(gPGP z%gvRh6nb2`;8m>Lzv{|F%pJ^F2bSndIr|IN*4Ck6jb8`YjmEN9v1hLGotQ}BH#2G= zO{VDXEq`TUb;Zco_{q0p4{(^{yqQ@KgUn^a@dotZMUfO;xC1hW*Diy;6Y=1rK%=6= z1ZKV0NGN7}bQJQo*ZeRq(;?jm6;aBEp%3ms$)KNObAlRFWZy5lJAKohZjC)NYUMpp z1QszgAJ8T^3&OwebQ(n6Fr>o{R z?UrjOeV}>GP75=)#cBkdP>$P4koGv;d+>u&aIH2u%@d-Mj$L(N zIil)zq0N;L{i9A*;KX!lUK5X;$`G7j$+WRcQ1x}63Dy%?9DXF5tv(9Ay={mS@GNt* zkJLjxt}1uLlTzHWnW&2ga%68;Si1z;liO=Qoi^;BjD(Y{{gyVh)PD}q>_Sq|U{|hOH Bc<=JoF5Efo9z94>sxEi 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 Z{;iG3n(Meev=0O^&@(=p_w$Vh{{d7MuOI*b literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-affinity-https-oss.png b/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-affinity-https-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..0c71d19e59705f278a28d5eb0a1b197613c311f3 GIT binary patch literal 9663 zcmeHtX;f3`w(V9*!4Bl0Qi?z!2$pn;0t$v$qGC`$ML~oRDL{}`X@$_(pjfD&Q9zo2 ziW=!cryyNG6zM@l2%$+(dIAa3BqWgJtyI-JcieIB8*kim>c<=JoF5Efo9z94>sxEi zx#rrx9k(=FvvSi)1VPqdjvPFRAQC?z$kH=XOX14;b?Y_YpA{F6*!d%f^n3Bol6XyN z1qAsC!5sYM)aBI4zVLfr=EAGLGtw^Z+bpB;Sar>bn?EhlT)j#2NZ6Y#*DTg5M;H9; z_;Kg`6VBBqZ^k_TIpgM8ul&26MjK;R`#b;Iv_t)ZRB6Wh>QuT;V$&CMkq~Gd>fsfWKL>dfgqO}%~1$aopkuz666QD zGYInbhYiU79aonjYmfbtmyVyZLd~5T=Z4OW&(Yc{!}^6O27 z*1aRCj+LR|!@JUx41MWWB_z#JrwZadWMdVL6O1Ygoa;>ZqZxt)u5OLm{)Fmlf4e+z z*YNY$tWdC^95(fK>(K-)$BH*!aKTg`9_{XH!#?TWhM__*l%d z+qyMR58XCdoO*ZCYKf>yN^4tztm@(2yLT@R8&);+_EN$Z?i$iBb7*edvG$RfbkQON zrl|L}Xp$lHZho{goIhLoEk@H3Klz$TE@$0T@TpHN8;CU)j>ZYMalfI31855Dp~%p_ zbOeRxEYi{iw2x0r7r1P+Q%w{*f?J+6Ff-hOAG~k2Y11Y>v=<*D-RCE)Q;rO)zOrQ1 z2CaJ3nG+{=MhX|bdx`~9(dcGl`k0dI0%x*>9?FE{*mbeL`a=5)!8iG;`UoE^w(qnp z_B4D0E-Uy}?Bt$)S~Y*W>PMr1QP_*mo3A(FEJRdx9pqOv3pNumN@@ z*O8?*c_yh?r)HII#Xa-q$(4_0H6o`q5*_?7D$XudFX4^_ks={(p_^*C_ruuk1z9Ki z#FulC52}BLb13L559Utx1jE8Hghg(oi2DrlfIr79acxTAG9pEMW?s6UtGR)e_&8cq z_s$ge`1F(qvx6x!#M;~PhP!vKo8Okpm}ySh#bq<9#JgJHqGy_S=~Cvu!RiTWyv`EJ z+|)Z6TN|765nZp`+R_rZ6;AJNYUWiGTBVz`#99%J^!*LkUZk*xR7bq`xA(tc2o&c^uo_-xy}*0k;tU!1r1WR6|Y%8jZs zhx#H#f|-#vblCiq`1psh9i8hb2SX$!EVb9H`&3dTm>lG?-+H*aU*?aI9;n&DvW6$V zWLoQ%jXt$9;i=&T9kx&!Xp7UQJ0O0ABsk~X!otF_c9NSynU0c#(h$_f1EmF@)~!?g<(^3TiNIUx=Rn;20@gM^n?&-Mzloi`)1r zP?kkmU_rcHt+a8J3bQyR2uK8dXCdxO_iIo4bhQi`J|D_mHE!SMJY3a8i-GnD=Jh3{ zf%RJ3u71ieBc04_Y;44{D}&+mBNs{{Q`9id&QSOYB&+m@PCGZ(JlI$Fs|(h{1GWGG zt8nuNIA3naJMQrttUsVcp2M?fMI$dyWF+Wd`F&755KV7mN@`)DwJ7mfW@e@$H$kld zYG)CSx6iLhyHvu>%9~yh!k--KUsB_)b{jDF}PnM^Ma_Qhhc!^2spvtJxb(hC^HMIzkwn`uYwICv5S1oquFqL<3=Kw2ZPPVGzn+0}hAV z>+jDd(OS+IGP>=nM$|B!WUR5rmzU$?k%Q(v=fa?J@YR5I4S*sDPpwuAj6hH%QphBMy54AAVfS*CMB1x`yX|FMf0=t*gz z9=&fa1@{F~A*2p=b~FeYK=^Jvkr!OGfF-CwL|J|1TtF0mwhDLn$`XlKB~&t=b6v)y zKI|hOrGc3i6UhQY6k%%mt}KvwbB#jK!eogXBQ=dW*zmy6yL62d?*S(P{I^S{@et;ir^Bnsi(d>On zpI7fBsQs*~iylh+X!0K$d9Q?@DB$z??648z%FsDD^0VbZlVcP-Hi9<BP#tP_V&_aBf$Db5aT$ct$sp*VJ4W!rq$!&_cxq_W>w=1h{HRF?5sWO!jbL2f1OL zz%p^0_Z9|>eeS(p7pn-NrM2Lc1Ry zbd~u;8Izo{`@-kX&yOl7C?smzb2{yP0i`_QTR`)U8VHAOZ-5%W zLjitoixkdeT9eZDT>8cvN!Pttkq}qtMJuetbH&KtV#ol_m0^yLQ>NqdTr9Qi3SA(0 zK!rU(?BWOYMl4LCLTBAM8h=|!WyN2p+v0Hf>kR-eSm9T3i3)h<=sV4`o1~Xxv1W{| zGOrG?d}YtOIwppK1^^HOuDS$gn~rCd!b6qdUT{)HRqhFvq$+MD`>qnI49-0fsy{oA zV&vNRaKcyiMf(`&hDgP|elBc!Wgdk;4&<-OrOuwM8c|;Cm!#q%1@}};m#_YD$E9!Y z^*uWWV}l_x)@<6n4MXU~UGscVT+9K~s(Jj&^~R=`mI);rv!o3;MN;s&Rbgg==0`RB2K6*JPKw?L7QVT%lr zkb4v*g@~e+WtaXb8W(S^MSgl@n~xyZR%jtt&MjR9e^xI=q}2b>OPv{CBwm?qkKaBg zh3pTGwageH9xJS2r zURLG56|wnbp^eCToL}_>K>{plGo|wWNsarL=;fS@tEX*k6ZutQl)Tq~AZ3{lN)S@_ zg_VHUQN0?-e#0TND0rCB&U}!@2Ird}t&mgSZD4Rdc5zSxy_cC&lomRkX=52k--jTz zvT|ompFRy7v>9X?F__My3%gRE5%0QstG)V`B zmmu4o#4fi93E{nyL05oWdKWE|clNbM`wI)GlV-{qCgG@#U0J}`Kpfi9*47q?%*Lh| z2&#evYkqyoh$vlA4n-fQjE?wPb3?3yIQ{Zf^R;Uf3{v-n_(5WdMHFi;H`T*?^wd-r zQZ16J&AipmJ$F~pIH)V%DaFvY6}88+GY6h`N5PQndf>I+O5}0M_$*^fFBEcbslRUJ z>}Qa!DBj?MWob*1QOY$5<{TBr03ZciN<*E5RXI93+S?lkvwCl=lJ{XyD(_h%NT01) z7K&3{^elim?*dmInk#_mlx7U^_7>nQSSbgG8_;J0zJuk60W~b|cgNOR<%v(;I(AuCTIAuj)gqIVPY}xG7 z+d5?eP7k03oey{R$(55}z6O98eG;t{I{L(uT&j*CfN1Ch)S^<+^ZnOzQ^zYp5F|zw z=-?>IH0AlpK0hzy@nDR#EO9~g0CGhX{g=5He+jbxvlhy~7x7QKQ2!z!G+K8C&zZ1$ z<^Bo!4bAP_bt}og(k0fu#W?a`qa+w{G?V1i*dSzEv61TG4tiBRNn79Ff&@!oc>~@mX@HuO1 z>!K#VxK|MykjD$aF@Tc3(D=@ccTgStEjaxk=3_VSCE#h`i-3OtH=jvs(Tq3OHzrt; z#QjA^5t`bX2Xc%^I%&+$T|7ik!wIJoAE669Y4-k|McE=442#wW=lt(Oli+^zAMvX8p6re<4FU24;RdE;#yxSS*hX(*;e!qX##JZQU7Q`Hg>2?liMB$K(!3b&cn#5`2xtz}5xk)5KSYz!|iW3oj; zHaJzqUUu8-s1(lYW*We}n8mZx`E+y>awTYwYL%zF z>bDx+Q5JG>`JU?{!oo%+P)(&}Z{wtvAnus|7sUL(A^)$MAN-3T_y16_4>aoIB31iQ08;h&@&nN4IW_u3dTN+k3Vf=vtfEH^Hdh?et?mn*S~EmW*Qvz zy_ml#FLc$Ja0=qWCk7JU9^af9V1y+|Qsz4COT2qHoE~4dxZbdtmY!m7{0K34I>KlB z>B52~peOgNKT)VG+xlpyGZ#QDXtJ?)A2ij#Zm_2lSs)~zKAd>|7#OZer##1(L1{ya z!m1(!N|*bu&M~RJePwgj>HJglwz-uXkdG#A^O|R%#dCm9)ZbSXJ7YrLi1NP67r}47 z@nt=-U!JOsTRHvr&mxH1_P=6`_E(kxaZ9{;d}!2Sned+a>Q8ggyPfI+1uGt~c05~Q z8gN_X_Wu6^f*yU|K6bM00>QxS_Oe=!juf_5m!;6DKZxy&)eVVB*kVh>x*I_ioF8JyE9^yc%c#21MXM;01Hk z+k3x)Nh=yl7mmefl1CX;A~3&wVFo3(3{~WoOD8dhQ+zF-p9G`Jt^VE#xz3J`=fXVy z*1e=64Xwda&vu0P{a{I8y$vf%)%38%8G>TpixtMcW|AgNb_G3qFV+(#Mjc4@Nd{|< zPp>e(0PD5;<0EtU0D?|gA}#`yMuVnJ&Y40N3_%U_P^nvXR+bKoTEK`?M1=-`<0y{{ z`wlY&@#NB)ewu#UDsA81h{gHeghy1u2mMCkWVeTn*We6;*xo}LLwSA*Izo4w$Qw*4dw=UG;|$7*O@Nb9Q+}w8wC3js0QZ`cN%(gUcP*^FJu}l>DvZQ zyTG8`rm4vU|CeOhMNt_60SL|~s4LP?Cb{@dZBl+xf;e#7YNA4-o3jU-{>X+I$KFHg zTGK&3jC;AG6)N_2e?s$Ql5TFvxsGFrJ|CkJ;;_Vk#VXhu(o8%Us3p z0*soW0hmKzif6?e!@6vQ#0uq1?1hSe$;=G+;F`lx+Ue!z<%Sg>OL;yDuCFks+-X@C zDLzLy?*r;uyda&68*f)-z@l{uGghVV$ZN$v?LoPG3JO?IU(NW0HOiM(G@1pYTrAc~ zdi{!2j(s`E}kk2X2Z@_7Rw;!bq?! zoaIldcnooKbQHp6-|kmqFrtE)5DeVf-~T2DC44+;g?$LiZ%Fa6H8sClWoA21Z+QE3 ztWSH?R@$d!mS?&r9s2LVuOYVTwveGI>dn~?(nf=1>|QDM#XdE<0el9nYHwNox-ip!x3uiMlu;4ETdMQ6xMo+2T>~ z6-(^9rN8ILqtlCGxPY`>m74#mrxdcGFvA{~M9vrIu_JNzV2N-2udLCaV^DZyOv*KV z=y~pfi|J6Rw-8u7@C}L>CIM>PBg5KWFzh{)HkDJ<%5QcvDe~yZ0(4|6Fy;?mQrB{+ zH)Mp((A?6oF#Cbl%_>*}>$Y(hAf>TaS3Zo39+;w>SJ5 z)({PG9=Oye#N=nJf)P+HJ40IxIX>w{zMCi(kq5~X3hX)~peL6{IT`)hZdZ|(wYBxB3<4C54yi(zQIao72E{xuHb z;SfZ|kFk@Ak=tN02=8Ph3(jBQB%UQ%q;zJQ7UMUgr5JZS8HnAwxSU8x)|T`5=4VxGYz0xMQPLfbmVO=~!03-g5S6LS*R^ zcT1kU7VrRcw=f2>;{BXNhCz~(iahvXV9CY8vD4C};B5roPwEvgH~}3*hbB$ziGxrv z>a&xkNHVo}S5LuHfy@#xN0zX87 zyPgI`e@j+1l*>Xv=WSPX-c{siXQqBfu`tP6Xje?o9k8w9cfi{&4-*q*6bvR<CF(y(K~-K6xQia?AMqa?TU;keOl~4Ax44RyknPw0{WwfuZYgkTEFKr zk&7|{g8J;u%l!dCrpII0Z^7j3{2yxO-+QtJT-^S=l1*=S7{VJ_2g zqy(t~fe4DU&`an==^!Pcg|xfk-DmE(GxyBBbN4xa&Ya9Jkc97>_kGt|&wAGLe7{~Y z*5~_^=${Y-;WIdY_A-L-972$-7CX1XCqjFLq~X^txAT@B2*Uq~`?DoRmj3{P96}7v zp1JCq^lixBEoL=&V|nWA&iih^-s5*RJ+AjBjBT6Mna5A{wwLM=z4n)cS$aC#Ka=T| zYkJ(YHg(J%Gx#dIM^kK{$kAWCVr`u(tP=9O9OS()c3Y}7Ta=N1M;L{|Nt=_59 zx6S=a_tdx3#SvsQGW^3u%&w+#meth3+Z##@8(Lbo=W%M>M04v(8~-F&IqM)NMj4Yu=G!4wd}m|*#_xU z^17Vkf-q@A&(Dt@b>yNrtccd4MbM8F|N1#RJ10j@PA*Bq!=Wl;?ocxGCpjD9M*VM+ z^pve^+>aJd9Y2QfW#{IyzTxnRWo0e{C3ATd+;uMW6;8oDYg0MQDLw&qDV|Yk`ug1J zd>@V4q=^4kOv$U-oOL2psuj*nCgRvN!c}ccqi9AUx?(KkKmjUIgSIeK!J#U0+?PhH z124fV2!}P&x0w6(ZTXkSvX8^U7^`zWLtYfs zfM?SL&L)9ZK%D5aI1KA6F-g_IZ)V^V=mvP^SBXgRQ{|4WDdskQ6aI^p6t^gq_sTAn zJ6lh!Uzdrwy>g=?l|xU(1}xX+ibyhaF>p^Q3Vcof?Go}YYeGv4O%OVS8)uQkj3^D zI<~HpIIJTVpLg~2lu&IF&@^(q%KEnfa}1^uH&P{?8bGB_rH)ki;G(2P=q)}A6^m6- zQBmY*qY9rz*SnK^2hZ^JSHS#a_Es z40{sB2Hat+ee++Nk4NEbvV zRjRmoQ99&3@bs{5L4{e4MSHGw>G}wsRC}TT-Bs>2myjy;y4@)ss+~tbyA5J9->imt zHOb3kTqkMqlvh$e!Z7Xfkt0WZ2Jh4jmU(c-B-n=yqRPw5!w;a0Q*~H5g)NQZmR43) z7)&z#ZfCj?cC#b4phAJTR5SK5v~+SI0qwEAFr@!v|2yZt0tx0QFNra<*fLso{FwSG z-e7iau65MeAS!^lT&GyM(h-gt?sXfT&x6#q-&~pLljqs7Cl2EJIs8DOH7wW6$|_-K zfQ08eTQ0Qm^88bOK+nr4)pM6{XkhfI* z+!_;7$cUy=WFxC+>a>H$*x<$)ak~*c-#RfLZY0p`ujnW#4bSN|I7W%P(=S67-;p?M zhJcvnGpPo+he?w99l%31ZIjoD;dY!N6n;|5peNTF1tBUZC}6V~*dY2uhJTvr71rkJ z+(0SrsF`Sk^Fd|1^I>0AuUT6&0Ot0Ho}7MG0ozWr3FYDCx5KS1j*x7BSOJ_FTdwq9 zH;x)#8vAI_7ISMt?>(SG2)|hQ-PKts1Mh{wGC$hnJnf-;#BWjt@B$Pt_NncE8xxzU z`fv-kmT@fr^>q^X07#Y6;k$G2=k?2%J0RqM;iUGjWGLCiXekk;8>dZ8+o9q`Q(lfW z!*B6ZcZkWS7sk>uWjh86;jBtWrpBFA(q~u!rl#^^? zG2VS)idAuy^tA!pVt=u$zsGdj%f%|j0yG|F)QI0yGL|)K9#62=_Bhv?a*6-|Kb7L2 zmzg;oV{X&nJP*YK@lB-XLAien6;QM;$r=0nOI?IKwu*afST;4*`XFJZa%H;xmyS0E zPLwldjJE@ zm)fuqXe5zn_C_p;InkAM1#*3vtkPQKPE21ffTf=DUn3`J(3(*r+V11$uU+e=RIL@0 z^SIOiK$goY06GYG)|_RbgV$V7Zo9rz(Xa?MUgiBxVH@8ufOKJbs}*Ph4yh8(cb+h3 ziyoeFqzs!k@VK-uVS+8=>(WvJs12T)tj`B<85vOxcRN2nzqN3O8PCl= z$5b(R51E@5YqL3+(~cW(@$hk?I@;5wbyWb|fxB=oO@ z`#ijml0M9hWo|sxhjUAZ`vF9x3`DDT<^2YIKrwLUB8#!EC?|JN&AAsk=IU6egqmhL zeK}#c2_mMP>U!z&W%p)Pit{j0!+#0tTiP)0($%Y7rMQuq&Wy$0cajy^L}EbOi!*$S zK9G{Msn*uv!J=DNqNKXJyT6f?9o>FZCLtNbsOBf_E1|c~ISuRereEx0E=svw$nw-o zt|RjFe}!Es$jEGt3E<-v&mbFEZM~hy4~93kAlqnr4g6eX=vJgn!^=?5ciZ2A<^EyD{EaW??c29q z9B)9#V8b0qn_jKSN0o}7C$}K=uh({%+1ic;t`7lK3WP)f@&&I*3A7GFIR~K47cLh#wQ>mx z*wWGxI7DNNto7h_q%AG2W5#oI2C7}nd%jmMY~QJk(T9EET*N{-_qtKX8&>BiSigxF zzDS&dxrc7XgSs6EJ90Yi@y;N=9$@*Qdqk*>vV@a^>VU+8(#AlC(r^8&TDTi|5!Ohr z*a>}F3(sa=R4B895{}fSo|pC6f_P%8@2_so5f*_<7c?m}xgM95m6emr$;nAV=`je`*M`pHc-)TJz4APf&EO{Y5hoS_>P~uOroP!%1}Q^-zf*-?5rU2h^P7 zwEf&Mm?3}$F4#cgbLn0@Mqc2Xss-{vWJZ)wZB=x$9UA>f`^IO`U0Z>C0wNQL)C=i( zFxC_UWUa%wC&P`Rq#zcA%*@QJESOmQ6Z*Q@61$K?r1EjyGvd`-krqP=Hxcih`{QNv zy&C^N_4dznVSfFGau|^=XLUjH|C_Hda!)~8E+1X9b^cfTU-5yIv?nK)>|EG9f z6dH^Gb;CDjMBtfgfiuOCTu9%3fqux4+gm&$WuVkQPLZPPL2ZgKo*B(-h0b zqkx?0Q0pc6NR{#5Yp7zY)8P9%Gn`!L<1hypWOM?lZaR3y%*@Qf!ot#00}c>sABIVJ z#<%8qSbn)X10O?M`Y2#-X2#_nF!$P&IQLEItd~JI7DERS>D)V8@$<|TQ*0`@B?EN> zBuLtz16bJO$Bz>d5+HIJ@tCqiUgX6uZvbbi9B&q0eS0y24;jbQT|MiX`qMUK1AYGQ z*na+*%HfYS;(wjQALcUu;3Lez+%JY{vo=haE4{pbzfrSWk;qu65D?eyUAhOvaU_7& z45R9FXGUw$txg*}Yqe)_J2L&MU&zAV-X6NCbyWZz1}zyG8Q_;nwl%?D>mnW3db+!f zk~O_3d6+~LE-x!fMBVMity?p^5&>-qmE4XhlWd&2j6y@B2R;el*D}a#Sc!GW5#Ebnl!>E*7qfJg*M z>Q9~tOK_c!dwi23X%Qx@*wS+?N(vOTi&1aV(~o-4K)8_rGM%0pC3RduAw}7~5hib| z!cv;Qb}^~*LCY&wqW$>a(JPaa ziniX%`$-XB{Bi5tX!S!F(MRCccn}vIN)BpzW`a({7kT{n@hk#?kelmr2j`fchrDo_ z*&q!K{oHcd+#Ce}2t#rXmQ)2AN__b0>S{Q@)B7~~_p>2OTEO>x@9%tldoBB@NlMZX zNShp(=}_A9Fhg(Oz8!Q6`2`o#x4%jmqy%lkIR$BYoQ|kkTM|M%^&&G$93Q^q*+zUC zRQ+JPtXYol{JXjZXd@v5xbm5Fz~w5|+CZN?YS8T?#E&~!?prTW^0XPz%Y28tXlkf> zoxhtHreqL>!!riB*N@)k743$j1WB|P=D?O@EfrLxm{y7H#}JT7iyRb@)0FPKe`mzv z>9N+h%3>JkBsj|wi3_>e*%d1t7yVafS7GP^Er0>?r4@*TFnQ>#W|J{98}K- zBI}G+C6z{NP4LEUL6R@ouy6Z3k35TuCZZq2OuUpsri-W>1`Ek)SNq@4fFZRNd*0`g z;hPu!h4+7S%K8T*)4y*2hkJ)y>iuFohYk9R--ml!Kq-$`bLpQWkW%Vw5#-gleE#h0 zY`SrBIY;qN0_D0y^~+Z3Ho;?z0dQ60$CFwk&g>*e-ls>Bfh987X&X zfjc(EDz^URe_GKTCg74jfOMJV_3PR&)qqqo;RKZRnBVRkF)i;W`%kjpm;|$s<-9$f7O58qc9ttYAgME5BqyW?Y-%Ub`psm?&-_Aa_cAcRR zure{5&A1?s@{g|X$3m{kcs0qF7ELB)X!&y3EEra3_qOnW3ZdfCUqr#;Dxq>AdicurGAYzri%U@t<5f&E4`i?#F83|km1zh*&o`X~v z*hg3kK8hqJ6)eL&;@TViP6XD3B3?w~qovQEzCDwU31iqPn`eP7ZmEez@-eE*|&< z^WeaN-h$vjqOCy(tp;TItRCGOi;E}&pi@DoK1%ne~}a`eAVh(6LG!8MXcbf`HIN(&j)j-jfE}r zBM!!cEdT-rnnQ0b<&45HuYMaS9eWNQDnLHiG7<6l`T0xWdt~S3>40ekUKhOTA|*za zjt^fq?1h@ngw>z0OFZgqnvnqh^MaLK-IBn(Vjd#Dm0Yh)NA|u!oJt8kOhc;PAdv^^A(yIMv2}#cw6I6`~veZq#1co z8yGA+@wf`nU?@G;&Ss%C*rsDbGX|qZ1s}`lPQZVL(WX-sbWpMR&o1@On zPx%7DSOzB+x3SsGwE6s>70NxzF?doSRjQ#$k(4x402$7O-Og0DXXis&anis^yD(~y zNOVBX^xE~0{MIeG63STF@>8)VeDz9KH25{T$Qg$As++w}3{w=XiZWGsGdgF$(~p2L z4?HGSRaLO*H)hRAnqY#0IOy3M%=O?CQ~_ddM~I)Y0vQiX78 zcSNA@Xc@D6xB#eZ5CyHTb4br|BeZI@$68iKW*CfvNS)1_ASpmA4>UD31$ggzdY{uK z0$>8y=9#a|1bxi-&nE}Kax5+>S!>sqfF}gF3aYV&ZC6xni?;N*9x zKOf2pcVz`@VA}n5=9uWv-`tuq0{Qb9Z>b9R;Q)~BxuyYRwoT<-kSvN-C8YPOkL6)1 zs@SUpfdgte`T1_(62}WXci{xf^K)kw*mnv6PZ3N3?Y`Oe0vdmqLV4zxw2e2} zJ>oC*cvFwpIPUetK`lE;u{Bh=QS1qQ{OiscPnn_TKHdn@_Nrx7l*=2p{uO2WKhr-J Z{;iG3n(Meev=0O^&@(=p_w$Vh{{d7MuOI*b literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-http-oss.png b/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-http-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..e4420715e21e7933471ebf8ebf47bd3992668187 GIT binary patch literal 9682 zcmeHtcT`hp_wKQxBf>Zgpdv612r3{7BAv{Lh)7eACS3$Xx}igeZD0meG)ON&6cK3x z(n5)XQUpPI5eSGRKqx{8A%P@!XTEaRZ>{^?^()_B_s$=db&{O(zWd$#+0XOr^T!1f z{oUW~{|-Tr-3I5*m?6lPpAclT^^VPOMfgWyS@>tC-#HsJf(X3h{n?ZtCm@C(KOqKZ ze!UcuK0k_mXhFxUanV+him3i=;(1&5-QLzC8Xh96@f9R5$NJeoB6`8QCH8 z3PEn~lt*ql{SPnQHYpFI&-VJ#7e?2W@yvG8#z)dg6&2y|q6e%AL9AN%>RjwG!i(U= zF+67_S2Aq+iEgxjaQKT3%Ysj}3ZWKOZpP=tQrGmvJ)xnW42=*ZCArH%N>+}ft6eC<AE)eOASHtoDlOfB|7m z&$_~Eh)*)&!rYN@t_a-h)Qzt#O-)UXT-Lx$v}W)^Et8z4So^J^9<%NcK3|Svb;Vtl z+$iRf8`Kd#w?*(YRv8s$0bPj#T+$)>rG6n#4#L#%O&Wp_3`7!nRSD3#zGz3&Zl}R5xz^O4)7v0 zP-MT(SR`^e>zX01!{K|#?J4G#mK8pug!Uphrr!Sk4m=8lKhf>j%Vv-qEi3|8rn|6f z(b$$yi?TNE4^s#D)oMhtgtTex%B{YnJAH$LYjb6tG6tovs+F;so?Pr|8J@j18K>NA znxb@w7MU6o69dt64`OdnP>M&6q^NjWvL-f|v|_^S%l=M_ix(d;N95ggFsuLrgVt0P z&khYg>WaEK;hV@YyAX1bd9F#qpefHd)O_VPJ zB0s)OKH*}PcgexqT#z-`=I9Z+Yob@4!GVDw5u3 zh2kA4}OU zCWhjyO&T7n{#sCznwHjCD-bOx*`Xz`sOT%c6{^V>6T#)Md}#wgh0dy^|09;E}WeRMO&DU1#9?VYyDj$DK}ZY<9{YPUYbWeYS71 zIgUszs?lLhKP@dSmCz2;T5gf@UQos^x5^se_$9QeOz}E=f)ZYssD42{fde5MYfJs% zBrKP`!Z*~JF5T*`LrYnVplCu0iK+S=IOR1sUrEXgMTeO{eijxNbElui4SN;mIhP^r%A&K`GSXE|W$nb|iAXw#HNY3#lX` zccdCkJ0N9%bEpf;pc|^8LLIUrwr}Y;@AT^*fPhv#6HVjbIS zkLYxs&~Qu==O^eucM9q;RyEGl3WX;c8yn|a7P6R~SRE{9Lv<`<5@O<8NAK@3MX@PZ z4rNA)xLRJ!UW3O_i5#kw{)1Y8c~~;wsViB_k=31~0|Cl0OyZDLi9^+B3ht1hj8XE# zp|q)X0M{Bod+O}$g9GZzZ}}uQdQj{hKq_V5Py3+ZL`y~{a}JVi?4c*hSrtV@vUdNQ5}2QBFT%9j2dP4 zjsr?pTc8)o8mGR7Q|g}_4IHqanwm1ez2+RMI(6OClZRSKNlA>^KF_Z$j|6qr#@82# zBy#fHWCm0IbEU5-m%1Iw9BwsI;cZJEPfbnbwMlp!Y#nfLxGp@{&C0@}?@*FmH!D>C z-rkaHUD@r8R*o1I100LRdhlm7W>AQG9nPjnjTZaiXFM!@;Lrz-`wwdQmkbRJ_s|5U ze^2uvt0}+B*1FC4xV$*Q^T z;c;ZeJfQ8(d5x*=fHOxEX1@r@j5?naikfEWroNgaaPAre@9n;OkidDEflh1s-z)o% zBsP#<$--LqF8~86!Xz|?z&=q_K!vwkM^Wo1e2_JuDlCE|lXm0QiA=y(ZDmj%K<9w(p=yaCF4jHai6XZ?E z^nnw%pq+OCcLb6)7D~xjtY7yDbMf%-2n?hHtFbDuek9!rp8+_ye@qPop5{6vtR#s1 zvM2E5E8y(q5zJ-C3uuf*_B9pt^^x7r3{onc?fu^i^D6VpAF{Kvv+!fX^XK~uY~s

xceA+nzu=uy+M}LcmOS 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 R!b@6+fu6~kqSH>d{};8a5G?=z literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-http-plus.png b/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..b305baf667410658579c917a332e1502aad3bd7d GIT binary patch literal 9848 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 G8~+AhS*3>n literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-https-oss.png b/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-https-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..e4420715e21e7933471ebf8ebf47bd3992668187 GIT binary patch literal 9682 zcmeHtcT`hp_wKQxBf>Zgpdv612r3{7BAv{Lh)7eACS3$Xx}igeZD0meG)ON&6cK3x z(n5)XQUpPI5eSGRKqx{8A%P@!XTEaRZ>{^?^()_B_s$=db&{O(zWd$#+0XOr^T!1f z{oUW~{|-Tr-3I5*m?6lPpAclT^^VPOMfgWyS@>tC-#HsJf(X3h{n?ZtCm@C(KOqKZ ze!UcuK0k_mXhFxUanV+him3i=;(1&5-QLzC8Xh96@f9R5$NJeoB6`8QCH8 z3PEn~lt*ql{SPnQHYpFI&-VJ#7e?2W@yvG8#z)dg6&2y|q6e%AL9AN%>RjwG!i(U= zF+67_S2Aq+iEgxjaQKT3%Ysj}3ZWKOZpP=tQrGmvJ)xnW42=*ZCArH%N>+}ft6eC<AE)eOASHtoDlOfB|7m z&$_~Eh)*)&!rYN@t_a-h)Qzt#O-)UXT-Lx$v}W)^Et8z4So^J^9<%NcK3|Svb;Vtl z+$iRf8`Kd#w?*(YRv8s$0bPj#T+$)>rG6n#4#L#%O&Wp_3`7!nRSD3#zGz3&Zl}R5xz^O4)7v0 zP-MT(SR`^e>zX01!{K|#?J4G#mK8pug!Uphrr!Sk4m=8lKhf>j%Vv-qEi3|8rn|6f z(b$$yi?TNE4^s#D)oMhtgtTex%B{YnJAH$LYjb6tG6tovs+F;so?Pr|8J@j18K>NA znxb@w7MU6o69dt64`OdnP>M&6q^NjWvL-f|v|_^S%l=M_ix(d;N95ggFsuLrgVt0P z&khYg>WaEK;hV@YyAX1bd9F#qpefHd)O_VPJ zB0s)OKH*}PcgexqT#z-`=I9Z+Yob@4!GVDw5u3 zh2kA4}OU zCWhjyO&T7n{#sCznwHjCD-bOx*`Xz`sOT%c6{^V>6T#)Md}#wgh0dy^|09;E}WeRMO&DU1#9?VYyDj$DK}ZY<9{YPUYbWeYS71 zIgUszs?lLhKP@dSmCz2;T5gf@UQos^x5^se_$9QeOz}E=f)ZYssD42{fde5MYfJs% zBrKP`!Z*~JF5T*`LrYnVplCu0iK+S=IOR1sUrEXgMTeO{eijxNbElui4SN;mIhP^r%A&K`GSXE|W$nb|iAXw#HNY3#lX` zccdCkJ0N9%bEpf;pc|^8LLIUrwr}Y;@AT^*fPhv#6HVjbIS zkLYxs&~Qu==O^eucM9q;RyEGl3WX;c8yn|a7P6R~SRE{9Lv<`<5@O<8NAK@3MX@PZ z4rNA)xLRJ!UW3O_i5#kw{)1Y8c~~;wsViB_k=31~0|Cl0OyZDLi9^+B3ht1hj8XE# zp|q)X0M{Bod+O}$g9GZzZ}}uQdQj{hKq_V5Py3+ZL`y~{a}JVi?4c*hSrtV@vUdNQ5}2QBFT%9j2dP4 zjsr?pTc8)o8mGR7Q|g}_4IHqanwm1ez2+RMI(6OClZRSKNlA>^KF_Z$j|6qr#@82# zBy#fHWCm0IbEU5-m%1Iw9BwsI;cZJEPfbnbwMlp!Y#nfLxGp@{&C0@}?@*FmH!D>C z-rkaHUD@r8R*o1I100LRdhlm7W>AQG9nPjnjTZaiXFM!@;Lrz-`wwdQmkbRJ_s|5U ze^2uvt0}+B*1FC4xV$*Q^T z;c;ZeJfQ8(d5x*=fHOxEX1@r@j5?naikfEWroNgaaPAre@9n;OkidDEflh1s-z)o% zBsP#<$--LqF8~86!Xz|?z&=q_K!vwkM^Wo1e2_JuDlCE|lXm0QiA=y(ZDmj%K<9w(p=yaCF4jHai6XZ?E z^nnw%pq+OCcLb6)7D~xjtY7yDbMf%-2n?hHtFbDuek9!rp8+_ye@qPop5{6vtR#s1 zvM2E5E8y(q5zJ-C3uuf*_B9pt^^x7r3{onc?fu^i^D6VpAF{Kvv+!fX^XK~uY~s

xceA+nzu=uy+M}LcmOS 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 R!b@6+fu6~kqSH>d{};8a5G?=z literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-https-plus.png b/tests/results/zero-downtime-scale/release-2.1.2/abrupt-scale-up-https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..b305baf667410658579c917a332e1502aad3bd7d GIT binary patch literal 9848 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 G8~+AhS*3>n literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-affinity-http-oss.png b/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-affinity-http-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..38c890a1ff7019c7a3b16d28dbec11dd5d3e0737 GIT binary patch literal 10410 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

}QQrSp5|EC^^@gljO&8B)ubcn0Yz? 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 a<%EJARskL5v6ye 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

}QQrSp5|EC^^@gljO&8B)ubcn0Yz? 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 a<%EJARskL5v6ye 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-http-plus.png b/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..54765c380891ca5769887b84dacc44b00da65123 GIT binary patch literal 9777 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 P48dH`JD>IE8$tgD#!ifB literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-https-oss.png b/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-https-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..8b85c88ac060875fe13f58b2b334f9ab1804cd5d GIT binary patch literal 9766 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-https-plus.png b/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-down-https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..54765c380891ca5769887b84dacc44b00da65123 GIT binary patch literal 9777 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 P48dH`JD>IE8$tgD#!ifB literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-affinity-http-oss.png b/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-affinity-http-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..61f116ace7b4542a652595055b178e7dfec11b31 GIT binary patch literal 9756 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 F{{(b=)Vcrw literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-affinity-http-plus.png b/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-affinity-http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..df358aeee451bc16ebdc6dd40c28c08546e5b2cb GIT binary patch literal 9850 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-affinity-https-oss.png b/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-affinity-https-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..61f116ace7b4542a652595055b178e7dfec11b31 GIT binary patch literal 9756 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 F{{(b=)Vcrw literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-affinity-https-plus.png b/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-affinity-https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..df358aeee451bc16ebdc6dd40c28c08546e5b2cb GIT binary patch literal 9850 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-http-oss.png b/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-http-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..6fbf4a6775dd74a4e386de0116f91deb11a3d148 GIT binary patch literal 9482 zcmeHNcU05aw*HAasECZC!YB%kqNp?nRHViR8W6D1q{TuLr1u)TBZz1a7;3Np(h<g1;h&Y>C(ijH$eK5zKTG13*2p5rRs?K|~D zXAkbclQCgrtuVG0@vG`kMHoHVD7#}Ng7_G%(nFBCQN!~~kY($v5u|>ZG;(O~wdKf< zC;#MIZCRE@4rz;NrfJ#{>{2{`iYS=s>+3s0?y^B~8qGY3e0C&%F<`QDLIcksZI9LU zogZ&MBGuKs>g9@TGrXyN&+PDPc`R>EPA{~qUg1ze-F2~G?lhreV*cUw<8l%6?W4_! zYPPTP+t%5)VFaTXhmg^DPArE_AnILcxVd(_A+6`d*OA7!DM}HR&!QZ^zqtY{6x0=+ z8L=U*kSVYwcus7#!bGsrf(DZ!%EK0BjP;PV2X)u4Pjux`C`1A4?m9*Ng?_(V>7!rx z6fB=|eYr$}iY@!w*I4Xg2Y#kAr{nqQr+bu?jE#+5T9PfsC;Co2RBOQPFxFoje|p4h z2@$hQdVSC5`Wx>v>qZS{M|r9iv;Ky-aNbN<24~U> zo&R~iTW1iFJ3wL|mkSwr@m?-3C#R8DGSPt-_`l}h!x@d~dSR+|<$HrJ5j+Q^m92~2 zDTVTa**hlpgB}-^!0D@ID)TVJ$eK`Avbs|fR=9w5K@oCu-TKRY1}X!lASPRa`X6$Y z+wnpUet|wDgzF&;MTW)7=?P|~gnRumQM_TPJ5ut4nZ}8qJgcVp3q$0zk!_Y)nbEV1 zX0_}yIiY4d`Hgs9qoihkTk5YRG6CSN?YyLd})?jLsjv zw&kFA2JBKVjC~R}f)$Km-`(5TQ4_YXMJF(PwqE>fwrScypNj{SBN=gcQu6+(nJT)z z|9D$aEi=ujIiahwb00Hr1jWohS9*W5R*A=_SKE)@*M$o$s%A6|zrGWvAj*{*|A~(! zB_$-alr?g?J+ma+S64Rb1YSv0wV(9B>xTF`d&QORU$htuXSTFIJ+6pmOy(8IY5Thl zH{9wSSq1~En&DHtqY z5g(4zi{yQq>!ox&N=%I1sIjwZY78X|L8BYXE_bL)!8Rf~Of*L$3m6OrZ47dX!yGd< zGV0Dh*D+pKG0|}CDE89BEkccsp4ii}^mZs+PP+WUe&=R-(hfBtnF zcNUIrUlkZJ{`ii%l#H_V0|m5`lT)A<) zd_?!g^5uK4^c0)#v9Ppc*DaMIrD)Q3d_Gl(H@SDj(&RO(HzcO zoGQZ3MPo=amFzzEJF7Q-OjS!1k|2*ZYx|E!ZBVM^4$uWuO=87w&AWGB<|(4>?FS4} zRnWLtl;B&J6(&u~&v~Y<*Zvd13xB}FCeRqKAMx(~ma2fMZd$^cE!q%Xmj(9B05>be za}q+~+}!r~=+xxoU>Lnd!QUy_?q*a}6r9k)!oo?e5CZk(&0Ris!OQm^jRRSnjJ-{D zr~b6xWpBo5F^N@MxvCA~a>3_YlJ^Ve$3uU-DV{1-)Ku9}};I#>L2L!lufeJb4mCA0+hqHs5l%+$-~eWgv3 zvuZ=R&(|L$H2=LhevePEIde@YN+tXDY_hY0(`i`vC2sxFdLT?^&Y z6o4}+Nh3we5T}rtnHl5I@b>cGFNJnjG5vXAp`bOWwj<|kHdG8m*z>60JGd`ymS>>?RFfByU+uq!|g080?W-UYLMi1cfp zL;IQ^-kJftnk4VLO#1y-CCmKh1qJpMzN2KUfC&+ye7k0BOyejgj%>+Cwfq#TQ&!QyY0dm7d0YYml+bw|)`MVeBwY zs1^#iBJw9kvP&D|6!AJiGnt7FZq#5&VpCJRk`%y?dv`w65O%)(IFuEJKWU{=m7s>H zh1?NQAh45=OB9BY^%j5=9uMMAxYkBHBt=`_bT6t21lEBqhSF;mN{I4TeD5{v>8sD^ zdC9h595NoMjoz!otnTz9>m{0I4@GjP!ywgi^9m;+LyIrG2J(Cm@${T_nqY9DRuhn@ zHBD#8zr)0}8^w2n{mzR-Fsu$O)3zzJx#D%+A&_pc8D6?ZijJl<5 zQ`}Ay(YY6hLjDmcu{z;btDApSiNtNokQLO8%E;C8ViL&K-|NJX6+4R&8TRHi$C7od_X+K|>a}=@me4nof|a?JH$84v5;)-27z9f$4g2 zc~Ys8qa1Qo%+2F`d_sb%eWgF}Byfs#Rp9h1k57iNa%mA8yFsQEUwj({I-&%04zS6y zXO6&0CNpA)E9K0DzxJ$uRS;cH%Xj37L9`qcEA5?H#Dp;@C@n}eP!3*I)35r!GHFek z{(FM2AfFeGeKJ2b>t1|YN?!kb-Bn@K>FZ7sy%{C zTe)K;IbB7OFRQD=L4QSX*%8nK$OnJErs2{GZ)|5S^y5P(b8bnz=f);ZRee zWz-z1gXanegUJeLs7Oi?24io}AAcH4?d@7L7DIOB2Xf3GxD+E-qdW9PiI^ex&*-xL zT8sa}YbmQ21M)pI%ABcL7_9RXL&|h6Tw_7UL4@l9{5-8Fs;G-%Qy`b5Kv1tU)BOcd z>Y|vtfXBJRm^8E4R zqJEOy>oVm*?=JYX$eIe8>94rbTcUuzFQ;d7`t+|L@WtiB_mT^{$xD$_)&-LJvHFXy zgViBSY73V)h8psw|BscWUB+O_sM-a?vWn@!Uyg|DGCpjNkBnPe0Zm&GI-*5rKg=)#J~1RN&KHWROGLuH3p!``yeJg(7hTIS&-3neo}9Lex__Hn}hv5V^q z^IZG;lE`|yPv&nj`5S&g>gd1x3upbGwP*ef9Dmy3`acU{vE}k^uzwPjP@dJa_D zhfTj6;!!n0YNm(PK~p|PN&@A82kY!)lKLpHlAFK*lt!+_HH*`yU-*1|7q4Um#O=sm zWQhz94QCPve~mDAcXvgz^zhGh*Ps;5t*jP+qN}TUR>VaMKQ;g>CdXepq8-lz3yh3M z5y3)Bx&v;IP%Dro>SJ1yG!)S|8BDkjU>69`nwiQeoPriKck;Y?`F^aBZ>GmGj|)rr zS-UIug{)0l-@4!fNCrplB(_k6Xcug-FV}*6Ugcbgf~^%Aw^~m3AQ}fP%6%^Rv0o*1<>*bWLRO8J@CXMP1~VxKJd7d}&!KTNXkJ0~SBS5c zJ&<2nsm;`R!wdWLZZt?|Nk&>FNpO0NL_Ty=Y9M{!w4ez{SG0V-93!Xe`Ni&5Qp$s0 zIXRboy=2Qto(f1=P+|wFWy_J)Gq$!m(04%7>oHheVVtO%6cYe&wWfIhhgAc-+_28t zZ>&{hLcnj&8df*$-C#`^_(Wo`oCJsMh<8qb>2zZ?wT2_i8WWaZ*jpBJRpuiKcp%TRAe5TqA_oRo|1=0g5Jy#m zA!BK@1h_<6-^(fJH$8m4)*U@wEfD&K%Ke0>N_ouQZwQ=KZBRf9s9pl+u3U>)J+^gC zr4h~%+HUbRn|lae80zpuM>gR~uR7com9`vlCE9H85%S2waA-|btcyR>1vB(bGoX@c zCbCj01E&{18moaZ!-p1K#BI=dpjbI(aJIXTZ}fG0YEU*2#j76|A+<+~5Bb$f>kFq(;fu)G*h&uOpg~~S7RN}}Q zBr&F$p;jTG3@Y-3&NqO6MDlNv`k&Bw{Clnc2d&Y+@9{r3&KuN=L04*nOQH{zIo^J$ z>CtYl8kXgfJ4=w?&J@={TbQOB!hjM23_cCMCAdn^4vPGcTgl?cR-<|`cR+dYPwYya zTlQ1zM7%JD2O-H}Dp?gOcj_X@=~dF!B2yf!+CmrukX{3&nEbx?0{F0hTZ2AW0|sWx zfI1i+fXSsUWN9}Af6KlIQ*b zedgL}svl%(rwXAv?PIm-&>acjTU`R^qt|jhC*#A*=IrZWM*p<#CNd7khS~=b{TSD(>bO<;n-tB!` zBm10S8n|BL569`sFrPf!E?**emJfG&W98b*66?y8@U3pe} z;ulBNut~xz9z?;5#8Wp38I5`F6TxqFv1<#leui%Ce|cF5y!h-)4jA#8-vV2qcJ7@lG+Nr;pX-2=?QLu- zVL7o@AsDry+5#g5#+PQeXCO|5^Lp%_OClFtzyFnoElvR@ zX)U_p(DvaJdaHuGsKel5!#sck7R76_R-E(KoFlJv%$#@I$E%Ge) zXPfp#@-L}9PQO^byrsI*`M%W%lX7O@iYRZs?LKUrxQv?s;$a`qWdVMx9T>n& z3c6je!i~D4^XzIuM&`9MSBAt?l8Na(qMday!Glsjmw?qvdJO}!H5=6x7Ov{htNms_ z*T+P9{*ekY+54FkNR%WPWhmQ}?W)S09wWP%rmcUym~9)hlC{1|#kF-1_EeBWOouSt z-afiVz#^l*?*_7H2u5~bQepr86R%ZVPiL%$zgu{$H-*??%t-C!jw}WA4^nceAtHE! zu>@64G+g?QaG=b<*;bD?;=jf44E)x3wl2AqhN6J6>#YoSHT~rL|J`XlsQ-|a^GQ&0D#|`s-;mn z3YIfiXe7O?{QP`q@S)8g&eja^j&AK{GhObJxcr z+j5NXSy$qN(`BNdGPIt8 zy3E?)2*C&64aD;V*oCI42VVd(gQpxLr?&{@9Rr{9I;=ECE{A2|6R9&WcPuwg+rqnS!vL0oRL5BqM1jqr&6 zjr~9d@C||5*#?PTB{c5YU#Lq@nfas?cvdN*xRac$xQ3xFmqE32EL{72=jpa_pZqEcC2tvnOC{&!3|Tr_74kE!r= zf&pE!-|cO@wVfZ0KkUKTwza_!115FF033!3(oDi3Ljk8$wQ&*iCa>-Y36DadaW3g0 zS%YjgW81<5j%>1az+}eZ8&6sj-ru5<_XuPv?${kUYTzr8{Fk!TG*_6yyF9Zqs1j5# zNJAs_fVWdc#K_0kT$oFD&MFvu+x|Q=vF+5_NQu>(4|>CxGG@k2W=JfA>b1+8FR{)# zY0OkUjP~Mo)usqzNNc97p4oTcMq%|tuG8N0b?}u7iG$c~17Xtb1J*+Set-Z4Q3xoc zxu|eKXp|$L8T%;jAce?bLY~%-5r0EWXfVfsbX|22Yxy+b%<3umu$2bE5)8V^ZQCCYifBXdFbXTeGkB@Tntb+i zH;VmJ)U33qafRL_udq-*VA9;lX%vRLa4p^=A08TxsWo_AlWxJHDMaKNtAZR+IP8}V zF5@ZoRge|l;KcztgQ*4@&36V<`kb(jBjrh5vOHB-cWo&cg0i~7-VirYBLwHZvJ-&R zOrP^?co2YTzc$wIodo{-CPs#AR};2+3jpbO+cyXo39h1-p$rPz@0~kW{;*2rO^6*d zbKm+XwFiP{KY#rA5r*rcy;oq%tAF-9{F#^N&p$iygIYGYYWr6S?-(vYR5kvQ$qirr Zxo?karN@L4e7Olh8<-v|JaYc}e*i?yE4u&y literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-http-plus.png b/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-http-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..a78a6d8e573c3953e4dc9ce15e0b83e0aa56dd2e GIT binary patch literal 9776 zcmeHNX;f3`mc0%XDk^G~Qi>3(L{T8{6ciaFMF~bkR8VGu4`ha*5D)@HMWqxG3{Ie=fd9y5n z>_MHU8Ff!9{+d*9hzdVl`Jy_gd}mz}8IJoM_fCr-9T z*-tK8@31awety~7t2C#Rpq+d8^t%bwH&#_e?vB~50SAYEl={WygNsC-UDBPLTccAb z*Wgi&^%XIaZCF8wuqlYKR2@WT92(SNZj(BnZLu0To?K@qjUco2MvkkHwclDH$m_K` zkmG;4A%Sc;{SRL9y{O0eWG+GN%Cjw}h0geqL`x(b4wp7rp*@j>5sY)Xa3p#VlQ7vi zU7RMES|hDnh-XmjqzPps9$O#m);jO&vDf%P$nZmB-om)wj{U0+uiY_R+lQy7oXS|7 z8CdxoF0E=^6?l}(?PMl|*n?s4TUPOoqZNTKt? zjWk{M>3mnMP?3Nk(!T@=#fv9Tp6pb284j*2R-nlY zrbozY`;VQ?&$@0Vb3;PwsB=S1Z*MPyKdL#N)K}(RHF!t1O>e1RUN1OgE)vJ@p@qeV z&Qb+^)Tr+dJu!}!x3nj8$l|N7OqX^!kOZ7@`@sGy^)i&%+f(5pK25~WO!8^!_Zn=e z3Yg|KQ~AxS)_k)t-p*`NF5nMJlYXNMYay2W**B%7rQm$>I z3t8$eEw4D8wt+0VARNVaguH+Nc=J`!X+iJq?<6kGOsof=>UHO@=4%9Hg^4t({VeEt3%C85_KN4+I@_JbF?_}}!<#di>$z2Xa z@1>amHj_rvr9l!@W}9a@gmFh$RFM!8E?Qns+o%84RL`zmyFStsLuX%04%J6f=ibSR zD;{13`u*{6<^GKR1;GZp}1Hb2xv#$fM&$OTHd)(c;2|)?}?>w9_*+kG5nj zcv_unv!5}7c1&sI3$*9Two>iy-&cRF4f&?S#fV_YI+wXo6y5)#tDlG3w?V_+{csDUE6l6yPRHJQc_lK?k~Ts zo_6fY6Zr7$z3r`=lT-9fGo(bBV=ZKsspojXuM-C26W*$xs(9^t!sbbi;_$V^@Bx85z$?Q&myP&C4@o=uV4s zqCa$LV2$MFmZ@O=Tz!@Q`1}WBRH?Sn=#$P|>-KpC_b7UJ+^G!tu;oE|4bj!7%=4~| z{KjM3X^sY)H=^{bA3uKl?AdTCaV8N$hT*@#C}7XyaMVk0?zp#SruemKCGKr*YI>2A z(~iUUznU|_@y@$+y_Lb~`j5RY3#p2y^}|WP-DvyDg$N9P5Kmg^Yk!qoS2s$E)zHvL ze%C`*fcTm@5T{F%@DwfL=aziaq@(Z;U7UfVhQX;a3NIPDm?Ws$LwFApO-xMc@9%7f zRTtu6-6I+rA#nKEv8IyBbt5Aqkb4g0KK8uPrZ{Cd8ePZQ>lf=Al1USvveC5n0p4~` z$~JzZVFFL*tbgJfO>ZgJ>g5-Vh>eL=(1PQ?`>kR;+BROWb7h}N{BGTAf5MU>c)KxS zd_J2-(>HsX6y+>*$8%e-?pB)ocobeXmhSz+J4eSj7^9rsEtWfPvG!&kL#vx-p%NTHjX=>Zr& z2UMAiHPb(M@Zk8zjArsalU;f=eicKYiY12$cmx(bltr)Uac!Vj+u4OI&kj!2ph)~H zyvTT3vO*(Mf2jf`7&C^VhBB2q=KI;Zd>}r^FF0qv=_3n!dqJaOnntgKwRIxBZ{nJ1 zhNREpbuyU@2{@H}itG$43s#nB{a!rhkJ+gX_iPf6s@An6s#_K~gidw8ypVGdaAjpQ z3GXxXJ(m34_U%WA>$9?=Og_cGzV5PKrQxM9Dzqdsb5s(uYydS6=M72f_kvWD|LV&< z*pZ75Wo4#HCvc{vAI@f05*6Y*-0*Orb%{=736>aUq=AXVcIZH2RHpzI4pap)O5DwZ zodDjd)IU zc%3wokWF2wqU!j5u7#V#O{7_ks_T~uO<6G97%L^C%AdxQs-T%jNbR@}I9Lpr!s;!Z z1eCXesNH~smD65;9!66kKisysxmx7+ySS0 zikX&FUI%1JXNF0F5$VVD=`+O3XPmaGQkK8GbgEaiDg+9l-%zdJJ@I`-TzR+wWpb=) z_{L&`@ViS!yr68?)S&%wr)mU?edPlIeOzXm_)7=hM9=`<*apQGN}Ml|YMTLwptm@^ zyB{RrbU|4sbHBT!6vyi#3AzCJ0wAgDZmoy-1T5As*yyvB3#tzjCO!!TD>5=N(Q-Ng zoQaN}p#egdJ(Mbz>`Yph{}7NZ{K;r&!|dQQ^k~lGFd{ z5S9$p{Gg!4UF9bp=DLez(d|Qz94w@I=MUBepwBgnOjoxmoy<6|)uQuwZ+^{U@614z zXv`SX#My)JSE+4X{jWT+`sa1XmKODYB4wN;Pp&#+Y+zuJZ;T+?ITlKUOzMfOjk&|Q zDy@m;XU{qc`zNLn;QzxUAHpIxwvDu&w3eNAoAqViPsnx0)l$fw-)dJQ>-HBS$j$XC za4BUz97z$drI6$K$tm|{H~zDz?LR`3wRc%fcIGKB8;ZGBgENApSU?o}%JF6bIwf@F zr?&OTdu-6%Ey$kkof~t30pI`r&==r#xdjDgcy6Ov*wr>IrYwBCz%EYrSvolAd-s+QSvBRi?SFtj9X@Nk zCg=Hcw+~NFbaZq`O3T{;tP=>F?w3yL_&1ePMa}W5_LZ;#aP+u@1eqN>@~vJz>9B`A z+ZZUtZO|Pk^X@Z>malPqebZPzNTGNR$i+O5GYNop&e}St^+=a9icyyze@AtlyezW( z>oJ|}Tlw<2zz{d@KIRK~+9T`QmK+4NeeS8z5!2^80#+gZ=Uw^cw}^{Vi2$Y}2{;OT zxnk_@py|^u?y0-=g8hL{jZ>MzZl~zhGz>|=<9w@l2EvO1E;Bb&j|0vP z+`ObPhm&3-DTN$Erwr*?N$pU%2GA|;H8wWdo}IaX#a_K72kkBK)pPIaZUgq&9lP@7 zcLi)^z_iV|bLY&>*#IwPg*ihBYmpe+l=HCR(v(V~+mVC|{U9K;I7w%jN5%U#7H7QOCk5gFbfjKo=H3eN(2a&3JCWIP`@+`=Is zme84??EIK*_JxkG0R|2S;xEY{$C(5dk)>9&-lElo3mq>m{q8Xh*n^L(w7zr^q$#+3V+4<|9QInrv~xIAO7zv?vD_Psm1?e=5(gl_Cl=yN!GYJ z+~80XY#%cBc8Ng}0lhAg?k>kOBJ%^>eeL9u1}v9SPW`z?o=05NU&Xmzju(xwwNek z@f-F=x1{Kl0|1UEi8wgXkud&poU$eTO1&JGtSjQPi(OiKVZ~pz?j zp=_W5V5zxPrjZrKJ94_7VPnM(L3~ZnWcJPJi4DkAWsykhK}hTh#3h#DdXcOEt^E6= zURH~%-b6?jWM^Zkce>~4{9l>T`;d?q!)$8vrLPU)MC6W5yEMi?_MO3l#&*1N<;vnA z(6O5~Z33N{H`8j!TOS?qd~;`0&c(b($FBU@#mU{>-QM1Q@e+YRxPALJES)#weE~S`Q#8a9G=&*? zSQ*DXMOJu;L#1-KW%&{a*g6*q1>%_S0;}Eslq|Oj|BUqchNL`+Kc|=$G7pNfl^)iN zF83O!a9Gn2}E26*sEX=Qm_y5HQvy6Vtv+YtTM-j%y`XJ!x9DPSprX*>p0 zgfxcl`?L}yG1#g=u|hx^e$<5iR|Fb-ygjS@vKqj6NBS=-2_$X;z`ZBEI!N3py8ZE? zp@QEIIR!6HaqFbi7Cx z9R>&+?)->^HMo5EXG;Ooy`@D(SI6F`KLzop;r1TXkfv96%y?G((rDHLzO_2C=c2x- zDtQQVH!PUHFA!PQXcke2RSS{pW)IKIZuiEyc-Ji-gafx z%CRR<kFGwP*bUIRLe0 z`eAUCfS@_mKN#^)K(24mlF9`)aEFYHD;``ucQ?1^d3miJClTa_t2?X!MDu)BA!GL| zhbLqc;^R9zIxge0b8?hbR8-*R<^ib<8+LhPGtSd6q7bqIj@x8OR+uX-2%YxCt@L(L ze0FVgH3ps8)Tl`riMJI4+)NeArK}(LzL=@9YL;wj@CF8L@4i8_OQCyc5%2o`eNbb1 z0GB+VMO1oDp@g;kb_nQr$lz_6;H8;RM(7gAXP=&;5%o0g>6|4FxCFkz!iKch6VOdA zUmkg%ZU`u)=l1?F7>M}p!gMr20*PU2kC+>zzFv)-p`o~97lf4iPn(?mBlg07*u=>3 zuU^VnOq)LGBUkM;zv8mkL18PVh_-33@LePR)-3sJ%3h2)m2p+iu!_rHjrjJq{lxcg zf;$^r9e!Nz-9!+$;7a3`pZ)a_3894j-H7kUvqimV)wP?ZRDnGYRh)I(+C|e+%i#Sv1k6l$%@1z#1O=1pP}cs|gVg+rb}_`Tqa*nMS9CmFgS%f45x%z-u9y}0J8 z4r%XSsLRqoAZ{}gPk82~Wi9G9apQcp(_0JE0u1oIw4l*Mm==`pKEPev`#zs5+Ze&Y z;~x)yJp!ZoO9D?1kIFz61?F32$x0ZKMCs(VU5ybDj~~LIVjot_I9--T2cwTyjp7vo z1b$nrqC!CZV#zAjMZ+44^bmHdSVhyXf@Ivh^YF82Nq;-zQT*`Oho|(#1}-LT zOuY8_vJfkgMZIczN4OtnOABb>d&>FXWuhfd>FchQOQb%8&jTb*L0FAfE2BC|FeC&@ z2Cl7Fb13_gz+A5CmeKs+4{jP}5P@6kzdb`>gj`#veVEifw5AKQgujZb3h@3)P2HR6 zq7|x0`M`nYBq}#)p%tv$jj~5oR+d3u19#r76ObDvIUFGL5|3#C%{r+hQBSd}>(S8w zVdmbEL0;hOHXHrrDb7@F9fC-7ir)pW`>CCag9!`B;H66NItwrGJnyA(I_Y_?w@v=z0;D~SCYZM|{VPHD= z+(MyT^)0WU`7O@2#V)46M|s%CE=(F6z+Sei6i&2TvJo;dZ=g_X+Yu$K2d8|g5N@dm2_AiWyKzh;D` zWXxK*WX$x&JW@iLecjG;I2;D-c>r&4$zd}66irlvMrffFrL!4_#S=4n+@JnFa`J^lHh8 zcs#_;N=fI?M%1muQVT}0el)#=3UV3CR2hxV%gJe`lfxoxuvo0Dbi*`%Co|cv%@rOF zM4EWk2cw+w!+n0oMA=47@qHZWidz?@^_!(%>#(ZXQ^hn@9HkoG#PHTK6a#CZ@IIth zrV+f60b?Hk!6Q|gj81BHJd@Ut#!*9~P07w+;3lGB9EuV9X<)l%x;D^o2Gf7z z9R?fvOscN6g9E*8=RDW=F`Dg~{E&km(xKLYZL5hTi$#sbqRa5?G~oxf<`Ec=ybhOi z^%?aL?htRVT=S0IPdSolBN2{6@1nAJ=j@>f+hd3OqK^}qcrj9b10oKB=@JN_ubFe3 zo7BYRL0=yb&r^(41YTn+EGlC`;V;Pe-l7e4^Zp^HcN=$UJRgZ2W=9{l9mOm83jDsc z8W;77$Ib2CNqIdqGcX9tr^PjF^ZJ-IUI)I)nDmq+z8Au8jEOB;OV2fY#oLZrZ{^YHM1S(Y7Gjb7b_fCjK^c@LNU?=1%?p?K&oekBF4fECIj zf}l0S2>grLOlHC30Q;Z9^w(xvcnsFv#`=-;l~D3GYq_*B@e`=lEPTvVL&3N;3r&4f524D##J^JUI9a}C(itw|C8g*e*upI=K25t literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-https-oss.png b/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-https-oss.png new file mode 100644 index 0000000000000000000000000000000000000000..6fbf4a6775dd74a4e386de0116f91deb11a3d148 GIT binary patch literal 9482 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 Zxo?karN@L4e7Olh8<-v|JaYc}e*i?yE4u&y literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-https-plus.png b/tests/results/zero-downtime-scale/release-2.1.2/gradual-scale-up-https-plus.png new file mode 100644 index 0000000000000000000000000000000000000000..a78a6d8e573c3953e4dc9ce15e0b83e0aa56dd2e GIT binary patch literal 9776 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 literal 0 HcmV?d00001 diff --git a/tests/results/zero-downtime-scale/release-2.1.2/release-2.1.2-oss.md b/tests/results/zero-downtime-scale/release-2.1.2/release-2.1.2-oss.md new file mode 100644 index 0000000000..07c7be04cc --- /dev/null +++ b/tests/results/zero-downtime-scale/release-2.1.2/release-2.1.2-oss.md @@ -0,0 +1,281 @@ +# Results + +## Test environment + +NGINX Plus: false + +NGINX Gateway Fabric: + +- Commit: 8241478604f782eca497329ae47507b978d117b1 +- Date: 2025-09-24T18:19:40Z +- Dirty: false + +GKE Cluster: + +- Node count: 15 +- k8s version: v1.33.4-gke.1134000 +- vCPUs per node: 2 +- RAM per node: 4015668Ki +- Max pods per node: 110 +- Zone: us-east1-b +- Instance Type: e2-medium + +## One NGINX Pod runs per node Test Results + +### Scale Up Gradually + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 2.432ms +Latencies [min, mean, 50, 90, 95, 99, max] 1.024ms, 2.146ms, 1.996ms, 2.344ms, 2.599ms, 4.647ms, 1.026s +Bytes In [total, mean] 4655918, 155.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-affinity-https-oss.png](gradual-scale-up-affinity-https-oss.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 1.827ms +Latencies [min, mean, 50, 90, 95, 99, max] 957.55µs, 2.005ms, 1.923ms, 2.27ms, 2.508ms, 4.039ms, 41.988ms +Bytes In [total, mean] 4839173, 161.31 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-affinity-http-oss.png](gradual-scale-up-affinity-http-oss.png) + +### Scale Down Gradually + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 48000, 100.00, 100.00 +Duration [total, attack, wait] 8m0s, 8m0s, 1.626ms +Latencies [min, mean, 50, 90, 95, 99, max] 964.779µs, 2.007ms, 1.879ms, 2.253ms, 2.495ms, 4.251ms, 1.056s +Bytes In [total, mean] 7742250, 161.30 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:48000 +Error Set: +``` + +![gradual-scale-down-affinity-http-oss.png](gradual-scale-down-affinity-http-oss.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 48000, 100.00, 100.00 +Duration [total, attack, wait] 8m0s, 8m0s, 1.727ms +Latencies [min, mean, 50, 90, 95, 99, max] 1.007ms, 2.072ms, 1.964ms, 2.327ms, 2.57ms, 4.296ms, 53.284ms +Bytes In [total, mean] 7449456, 155.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:48000 +Error Set: +``` + +![gradual-scale-down-affinity-https-oss.png](gradual-scale-down-affinity-https-oss.png) + +### Scale Up Abruptly + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.686ms +Latencies [min, mean, 50, 90, 95, 99, max] 987.822µs, 2.021ms, 1.908ms, 2.225ms, 2.408ms, 4.053ms, 56.349ms +Bytes In [total, mean] 1862480, 155.21 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-affinity-https-oss.png](abrupt-scale-up-affinity-https-oss.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 2.051ms +Latencies [min, mean, 50, 90, 95, 99, max] 970.719µs, 1.967ms, 1.86ms, 2.187ms, 2.371ms, 4.066ms, 58.449ms +Bytes In [total, mean] 1935652, 161.30 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-affinity-http-oss.png](abrupt-scale-up-affinity-http-oss.png) + +### Scale Down Abruptly + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.967ms +Latencies [min, mean, 50, 90, 95, 99, max] 931.537µs, 1.92ms, 1.855ms, 2.173ms, 2.318ms, 3.6ms, 40.02ms +Bytes In [total, mean] 1935630, 161.30 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-affinity-http-oss.png](abrupt-scale-down-affinity-http-oss.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.875ms +Latencies [min, mean, 50, 90, 95, 99, max] 920.083µs, 1.975ms, 1.895ms, 2.218ms, 2.4ms, 4.104ms, 55.925ms +Bytes In [total, mean] 1862361, 155.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-affinity-https-oss.png](abrupt-scale-down-affinity-https-oss.png) + +## Multiple NGINX Pods run per node Test Results + +### Scale Up Gradually + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 1.655ms +Latencies [min, mean, 50, 90, 95, 99, max] 1.051ms, 2.055ms, 1.952ms, 2.312ms, 2.602ms, 4.581ms, 45.781ms +Bytes In [total, mean] 4659013, 155.30 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-https-oss.png](gradual-scale-up-https-oss.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 1.586ms +Latencies [min, mean, 50, 90, 95, 99, max] 909.69µs, 1.913ms, 1.835ms, 2.174ms, 2.426ms, 4.029ms, 46.219ms +Bytes In [total, mean] 4835977, 161.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-http-oss.png](gradual-scale-up-http-oss.png) + +### Scale Down Gradually + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 96000, 100.00, 100.00 +Duration [total, attack, wait] 16m0s, 16m0s, 1.245ms +Latencies [min, mean, 50, 90, 95, 99, max] 859.648µs, 1.953ms, 1.854ms, 2.218ms, 2.45ms, 4.152ms, 46.252ms +Bytes In [total, mean] 15475301, 161.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:96000 +Error Set: +``` + +![gradual-scale-down-http-oss.png](gradual-scale-down-http-oss.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 96000, 100.00, 100.00 +Duration [total, attack, wait] 16m0s, 16m0s, 2.122ms +Latencies [min, mean, 50, 90, 95, 99, max] 1.009ms, 2.081ms, 1.961ms, 2.34ms, 2.607ms, 4.62ms, 206.706ms +Bytes In [total, mean] 14908701, 155.30 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:96000 +Error Set: +``` + +![gradual-scale-down-https-oss.png](gradual-scale-down-https-oss.png) + +### Scale Up Abruptly + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.839ms +Latencies [min, mean, 50, 90, 95, 99, max] 1.051ms, 1.979ms, 1.916ms, 2.218ms, 2.417ms, 3.922ms, 45.363ms +Bytes In [total, mean] 1863713, 155.31 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-https-oss.png](abrupt-scale-up-https-oss.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.069ms +Latencies [min, mean, 50, 90, 95, 99, max] 909.917µs, 1.943ms, 1.862ms, 2.199ms, 2.395ms, 3.911ms, 48.928ms +Bytes In [total, mean] 1934377, 161.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-http-oss.png](abrupt-scale-up-http-oss.png) + +### Scale Down Abruptly + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.745ms +Latencies [min, mean, 50, 90, 95, 99, max] 1.051ms, 2.098ms, 1.96ms, 2.32ms, 2.532ms, 4.892ms, 95.572ms +Bytes In [total, mean] 1863569, 155.30 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-https-oss.png](abrupt-scale-down-https-oss.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.726ms +Latencies [min, mean, 50, 90, 95, 99, max] 1.021ms, 2.026ms, 1.895ms, 2.278ms, 2.514ms, 4.462ms, 95.275ms +Bytes In [total, mean] 1934466, 161.21 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-http-oss.png](abrupt-scale-down-http-oss.png) diff --git a/tests/results/zero-downtime-scale/release-2.1.2/release-2.1.2-plus.md b/tests/results/zero-downtime-scale/release-2.1.2/release-2.1.2-plus.md new file mode 100644 index 0000000000..b41aab9189 --- /dev/null +++ b/tests/results/zero-downtime-scale/release-2.1.2/release-2.1.2-plus.md @@ -0,0 +1,281 @@ +# Results + +## Test environment + +NGINX Plus: true + +NGINX Gateway Fabric: + +- Commit: 8241478604f782eca497329ae47507b978d117b1 +- Date: 2025-09-25T01:19:35Z +- Dirty: false + +GKE Cluster: + +- Node count: 15 +- k8s version: v1.33.4-gke.1134000 +- vCPUs per node: 2 +- RAM per node: 4015672Ki +- Max pods per node: 110 +- Zone: us-south1-a +- Instance Type: e2-medium + +## One NGINX Pod runs per node Test Results + +### Scale Up Gradually + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 1.536ms +Latencies [min, mean, 50, 90, 95, 99, max] 808.062µs, 1.414ms, 1.353ms, 1.638ms, 1.758ms, 2.595ms, 29.438ms +Bytes In [total, mean] 4653003, 155.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-affinity-https-plus.png](gradual-scale-up-affinity-https-plus.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 1.401ms +Latencies [min, mean, 50, 90, 95, 99, max] 686.137µs, 1.296ms, 1.264ms, 1.536ms, 1.635ms, 2.197ms, 16.222ms +Bytes In [total, mean] 4836170, 161.21 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-affinity-http-plus.png](gradual-scale-up-affinity-http-plus.png) + +### Scale Down Gradually + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 48000, 100.00, 100.00 +Duration [total, attack, wait] 8m0s, 8m0s, 1.391ms +Latencies [min, mean, 50, 90, 95, 99, max] 861.676µs, 1.364ms, 1.298ms, 1.567ms, 1.697ms, 2.48ms, 36.922ms +Bytes In [total, mean] 7444867, 155.10 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:48000 +Error Set: +``` + +![gradual-scale-down-affinity-https-plus.png](gradual-scale-down-affinity-https-plus.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 48000, 100.00, 100.00 +Duration [total, attack, wait] 8m0s, 8m0s, 1.143ms +Latencies [min, mean, 50, 90, 95, 99, max] 733.65µs, 1.273ms, 1.221ms, 1.497ms, 1.601ms, 2.282ms, 36.436ms +Bytes In [total, mean] 7737614, 161.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:48000 +Error Set: +``` + +![gradual-scale-down-affinity-http-plus.png](gradual-scale-down-affinity-http-plus.png) + +### Scale Up Abruptly + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.379ms +Latencies [min, mean, 50, 90, 95, 99, max] 832.098µs, 1.377ms, 1.318ms, 1.55ms, 1.659ms, 2.454ms, 68.23ms +Bytes In [total, mean] 1861078, 155.09 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-affinity-https-plus.png](abrupt-scale-up-affinity-https-plus.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.475ms +Latencies [min, mean, 50, 90, 95, 99, max] 737.493µs, 1.236ms, 1.191ms, 1.428ms, 1.524ms, 2.084ms, 74.984ms +Bytes In [total, mean] 1934451, 161.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-affinity-http-plus.png](abrupt-scale-up-affinity-http-plus.png) + +### Scale Down Abruptly + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.21ms +Latencies [min, mean, 50, 90, 95, 99, max] 922.161µs, 1.321ms, 1.265ms, 1.502ms, 1.616ms, 2.37ms, 19.797ms +Bytes In [total, mean] 1861377, 155.11 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-affinity-https-plus.png](abrupt-scale-down-affinity-https-plus.png) + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.195ms +Latencies [min, mean, 50, 90, 95, 99, max] 730.317µs, 1.209ms, 1.162ms, 1.396ms, 1.503ms, 2.324ms, 30.978ms +Bytes In [total, mean] 1934393, 161.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-affinity-http-plus.png](abrupt-scale-down-affinity-http-plus.png) + +## Multiple NGINX Pods run per node Test Results + +### Scale Up Gradually + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 1.308ms +Latencies [min, mean, 50, 90, 95, 99, max] 792.33µs, 1.285ms, 1.241ms, 1.477ms, 1.583ms, 2.394ms, 31.062ms +Bytes In [total, mean] 4844936, 161.50 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-http-plus.png](gradual-scale-up-http-plus.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 30000, 100.00, 100.00 +Duration [total, attack, wait] 5m0s, 5m0s, 1.653ms +Latencies [min, mean, 50, 90, 95, 99, max] 774.219µs, 1.398ms, 1.328ms, 1.641ms, 1.758ms, 2.728ms, 28.094ms +Bytes In [total, mean] 4655833, 155.19 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:30000 +Error Set: +``` + +![gradual-scale-up-https-plus.png](gradual-scale-up-https-plus.png) + +### Scale Down Gradually + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 96000, 100.00, 100.00 +Duration [total, attack, wait] 16m0s, 16m0s, 1.39ms +Latencies [min, mean, 50, 90, 95, 99, max] 724.976µs, 1.316ms, 1.268ms, 1.53ms, 1.636ms, 2.309ms, 90.802ms +Bytes In [total, mean] 15503925, 161.50 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:96000 +Error Set: +``` + +![gradual-scale-down-http-plus.png](gradual-scale-down-http-plus.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 96000, 100.00, 100.00 +Duration [total, attack, wait] 16m0s, 16m0s, 1.399ms +Latencies [min, mean, 50, 90, 95, 99, max] 792.185µs, 1.39ms, 1.338ms, 1.599ms, 1.708ms, 2.374ms, 106.327ms +Bytes In [total, mean] 14899086, 155.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:96000 +Error Set: +``` + +![gradual-scale-down-https-plus.png](gradual-scale-down-https-plus.png) + +### Scale Up Abruptly + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.293ms +Latencies [min, mean, 50, 90, 95, 99, max] 767.325µs, 1.317ms, 1.249ms, 1.479ms, 1.582ms, 2.38ms, 122.474ms +Bytes In [total, mean] 1938000, 161.50 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-http-plus.png](abrupt-scale-up-http-plus.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.48ms +Latencies [min, mean, 50, 90, 95, 99, max] 821.479µs, 1.401ms, 1.323ms, 1.576ms, 1.686ms, 2.52ms, 122.667ms +Bytes In [total, mean] 1862357, 155.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-up-https-plus.png](abrupt-scale-up-https-plus.png) + +### Scale Down Abruptly + +#### Test: Send http /coffee traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.274ms +Latencies [min, mean, 50, 90, 95, 99, max] 755.024µs, 1.279ms, 1.235ms, 1.453ms, 1.538ms, 2.317ms, 28.779ms +Bytes In [total, mean] 1938033, 161.50 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-http-plus.png](abrupt-scale-down-http-plus.png) + +#### Test: Send https /tea traffic + +```text +Requests [total, rate, throughput] 12000, 100.01, 100.01 +Duration [total, attack, wait] 2m0s, 2m0s, 1.266ms +Latencies [min, mean, 50, 90, 95, 99, max] 857.219µs, 1.369ms, 1.311ms, 1.532ms, 1.65ms, 2.562ms, 37.336ms +Bytes In [total, mean] 1862363, 155.20 +Bytes Out [total, mean] 0, 0.00 +Success [ratio] 100.00% +Status Codes [code:count] 200:12000 +Error Set: +``` + +![abrupt-scale-down-https-plus.png](abrupt-scale-down-https-plus.png) From fe65048134c255702e977abbd73e222616cab7fc Mon Sep 17 00:00:00 2001 From: salonichf5 <146118978+salonichf5@users.noreply.github.com> Date: Thu, 25 Sep 2025 09:35:02 -0500 Subject: [PATCH 21/22] test param updates --- tests/scripts/push-crossplane-image.sh | 4 ++-- tests/suite/scripts/longevity-wrk.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/scripts/push-crossplane-image.sh b/tests/scripts/push-crossplane-image.sh index 31bd06d2f6..e6ea412af3 100755 --- a/tests/scripts/push-crossplane-image.sh +++ b/tests/scripts/push-crossplane-image.sh @@ -4,5 +4,5 @@ set -eo pipefail source scripts/vars.env -docker tag nginx-crossplane:latest us-docker.pkg.dev/$GKE_PROJECT/nginx-gateway-fabric/nginx-crossplane:latest -docker push us-docker.pkg.dev/$GKE_PROJECT/nginx-gateway-fabric/nginx-crossplane:latest +docker tag nginx-crossplane:latest gcr.io/$GKE_PROJECT/nginx-gateway-fabric/nginx-crossplane:latest +docker push gcr.io/$GKE_PROJECT/nginx-gateway-fabric/nginx-crossplane:latest diff --git a/tests/suite/scripts/longevity-wrk.sh b/tests/suite/scripts/longevity-wrk.sh index 1165cfa6b5..a60db38d8e 100755 --- a/tests/suite/scripts/longevity-wrk.sh +++ b/tests/suite/scripts/longevity-wrk.sh @@ -13,6 +13,6 @@ done echo "${SVC_IP} cafe.example.com" | sudo tee -a /etc/hosts -nohup wrk -t2 -c100 -d96h http://cafe.example.com/coffee &>~/coffee.txt & +nohup wrk -t2 -c100 -d2h http://cafe.example.com/coffee &>~/coffee.txt & -nohup wrk -t2 -c100 -d96h https://cafe.example.com/tea &>~/tea.txt & +nohup wrk -t2 -c100 -d2h https://cafe.example.com/tea &>~/tea.txt & From 690970be47ee629acd18f3390452c73971909ce7 Mon Sep 17 00:00:00 2001 From: salonichf5 <146118978+salonichf5@users.noreply.github.com> Date: Thu, 25 Sep 2025 15:41:16 -0500 Subject: [PATCH 22/22] longevity results --- .../release-2.1.2/release-2.1.2-plus.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 tests/results/longevity/release-2.1.2/release-2.1.2-plus.md diff --git a/tests/results/longevity/release-2.1.2/release-2.1.2-plus.md b/tests/results/longevity/release-2.1.2/release-2.1.2-plus.md new file mode 100644 index 0000000000..ab1209b55c --- /dev/null +++ b/tests/results/longevity/release-2.1.2/release-2.1.2-plus.md @@ -0,0 +1,60 @@ +# Results + +## Test environment + +NGINX Plus: true + +NGINX Gateway Fabric: + +- Commit: 9d84d9e238809236f2a81e15e77b7928b2b2c48c +- Date: 2025-09-23T17:23:26Z +- Dirty: false + +GKE Cluster: + +- Node count: 15 +- k8s version: v1.33.4-gke.1134000 +- vCPUs per node: 2 +- RAM per node: 4015672Ki +- Max pods per node: 110 +- Zone: us-west1-a +- Instance Type: e2-medium + +## Traffic + +HTTP: + +```text +Running 2040m test @ http://cafe.example.com/coffee + 2 threads and 100 connections + Thread Stats Avg Stdev Max +/- Stdev + Latency 128.14ms 88.53ms 1.26s 73.61% + Req/Sec 413.29 265.43 2.36k 64.80% + 99143782 requests in 2040.00m, 33.91GB read +Requests/sec: 810.00 +Transfer/sec: 290.51KB +``` + +HTTPS: + +```text +Running 2040m test @ https://cafe.example.com/tea + 2 threads and 100 connections + Thread Stats Avg Stdev Max +/- Stdev + Latency 128.12ms 88.53ms 1.26s 73.62% + Req/Sec 413.12 264.98 2.26k 64.88% + 99093705 requests in 2040.00m, 33.36GB read + Non-2xx or 3xx responses: 1 +Requests/sec: 809.59 +Transfer/sec: 285.78KB +``` + + +## Error Logs + +### nginx-gateway + + + +### nginx +2025/09/25 03:48:05 [error] 37#37: *180477844 no live upstreams while connecting to upstream, client: 10.138.0.58, server: cafe.example.com, request: "GET /tea HTTP/1.1", upstream: "http://longevity_tea_80/tea", host: "cafe.example.com"