From 889742fc0e3e4fd027414879f6881ff0b729ce73 Mon Sep 17 00:00:00 2001 From: Alex Fenlon Date: Thu, 19 Feb 2026 12:07:40 +0000 Subject: [PATCH 1/2] Fix zone_sync ; when IPV6 is disabled --- .../version1/__snapshots__/template_test.snap | 17 ++++++----------- internal/configs/version1/nginx-plus.tmpl | 2 +- internal/configs/version1/template_test.go | 12 ++++++++++++ 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/internal/configs/version1/__snapshots__/template_test.snap b/internal/configs/version1/__snapshots__/template_test.snap index 0ff25b7675..39d3e50e3b 100644 --- a/internal/configs/version1/__snapshots__/template_test.snap +++ b/internal/configs/version1/__snapshots__/template_test.snap @@ -5901,8 +5901,7 @@ stream { map_hash_max_size ; server { - listen 1337; - listen [::]:1337; + listen 1337;listen [::]:1337; zone_sync; zone_sync_server nginx-ingress-headless.nginx-ingress.svc.cluster.local:1337 resolve; @@ -6046,8 +6045,7 @@ stream { map_hash_max_size ; server { - listen 12345; - listen [::]:12345; + listen 12345;listen [::]:12345; resolver example.com; zone_sync; zone_sync_server nginx-ingress-headless.nginx-ingress.svc.cluster.local:12345 resolve; @@ -6191,8 +6189,7 @@ stream { map_hash_max_size ; server { - listen 1223; - listen [::]:1223; + listen 1223;listen [::]:1223; resolver example.com valid=20s; zone_sync; zone_sync_server nginx-ingress-headless.nginx-ingress.svc.cluster.local:1223 resolve; @@ -6281,9 +6278,9 @@ http { set $resource_namespace ""; set $service ""; - listen 0 default_server;listen [::]:0 default_server; + listen 0 default_server; listen 0 ssl default_server; - listen [::]:0 ssl default_server; + ssl_certificate /etc/nginx/secrets/default; ssl_certificate_key /etc/nginx/secrets/default; @@ -6337,7 +6334,6 @@ stream { server { listen 1223; - listen [::]:1223; resolver example.com valid=20s ipv6=off; zone_sync; zone_sync_server nginx-ingress-headless.nginx-ingress.svc.cluster.local:1223 resolve; @@ -6481,8 +6477,7 @@ stream { map_hash_max_size ; server { - listen 12345; - listen [::]:12345; + listen 12345;listen [::]:12345; zone_sync; zone_sync_server nginx-ingress-headless.nginx-ingress.svc.cluster.local:12345 resolve; diff --git a/internal/configs/version1/nginx-plus.tmpl b/internal/configs/version1/nginx-plus.tmpl index 212ca13fe0..02ca20625c 100644 --- a/internal/configs/version1/nginx-plus.tmpl +++ b/internal/configs/version1/nginx-plus.tmpl @@ -353,7 +353,7 @@ stream { {{- if .ZoneSyncConfig.Enable }} server { listen {{ .ZoneSyncConfig.Port }}; - {{ if not .DisableIPV6}}listen [::]:{{ .ZoneSyncConfig.Port }}{{end}}; + {{- if not .DisableIPV6}}listen [::]:{{ .ZoneSyncConfig.Port }};{{- end}} {{ makeResolver .ZoneSyncConfig.ResolverAddresses .ZoneSyncConfig.ResolverValid .ZoneSyncConfig.ResolverIPV6 }} zone_sync; zone_sync_server {{ .ZoneSyncConfig.Domain }}:{{ .ZoneSyncConfig.Port }} resolve; diff --git a/internal/configs/version1/template_test.go b/internal/configs/version1/template_test.go index c9fb06909d..f177ae05d4 100644 --- a/internal/configs/version1/template_test.go +++ b/internal/configs/version1/template_test.go @@ -1251,12 +1251,23 @@ func TestExecuteTemplate_ForMainForNGINXWithZoneSyncEnabledCustomResolverAddress "zone_sync_server nginx-ingress-headless.nginx-ingress.svc.cluster.local:1223 resolve;", } + unwantedDirectives := []string{ + "listen [::]:1223;", + } + mainConf := buf.String() for _, want := range wantDirectives { if !strings.Contains(mainConf, want) { t.Errorf("want %q in generated config", want) } } + + for _, unwanted := range unwantedDirectives { + if strings.Contains(mainConf, unwanted) { + t.Errorf("do not want %q in generated config", unwanted) + } + } + snaps.MatchSnapshot(t, buf.String()) } @@ -2987,6 +2998,7 @@ var ( } mainCfgWithZoneSyncEnabledCustomResolverAddressAndValidAndIPV6Off = MainConfig{ + DisableIPV6: true, ZoneSyncConfig: ZoneSyncConfig{ Enable: true, Port: 1223, From 60be0da9db2726c453eb01ab73e9b203696ace7b Mon Sep 17 00:00:00 2001 From: Alex Fenlon Date: Thu, 19 Feb 2026 13:40:24 +0000 Subject: [PATCH 2/2] fix indentation --- .../version1/__snapshots__/template_test.snap | 12 ++++++++---- internal/configs/version1/nginx-plus.tmpl | 4 +++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/internal/configs/version1/__snapshots__/template_test.snap b/internal/configs/version1/__snapshots__/template_test.snap index 39d3e50e3b..ad7950b1a6 100644 --- a/internal/configs/version1/__snapshots__/template_test.snap +++ b/internal/configs/version1/__snapshots__/template_test.snap @@ -5901,7 +5901,8 @@ stream { map_hash_max_size ; server { - listen 1337;listen [::]:1337; + listen 1337; + listen [::]:1337; zone_sync; zone_sync_server nginx-ingress-headless.nginx-ingress.svc.cluster.local:1337 resolve; @@ -6045,7 +6046,8 @@ stream { map_hash_max_size ; server { - listen 12345;listen [::]:12345; + listen 12345; + listen [::]:12345; resolver example.com; zone_sync; zone_sync_server nginx-ingress-headless.nginx-ingress.svc.cluster.local:12345 resolve; @@ -6189,7 +6191,8 @@ stream { map_hash_max_size ; server { - listen 1223;listen [::]:1223; + listen 1223; + listen [::]:1223; resolver example.com valid=20s; zone_sync; zone_sync_server nginx-ingress-headless.nginx-ingress.svc.cluster.local:1223 resolve; @@ -6477,7 +6480,8 @@ stream { map_hash_max_size ; server { - listen 12345;listen [::]:12345; + listen 12345; + listen [::]:12345; zone_sync; zone_sync_server nginx-ingress-headless.nginx-ingress.svc.cluster.local:12345 resolve; diff --git a/internal/configs/version1/nginx-plus.tmpl b/internal/configs/version1/nginx-plus.tmpl index 02ca20625c..dbafc98e7c 100644 --- a/internal/configs/version1/nginx-plus.tmpl +++ b/internal/configs/version1/nginx-plus.tmpl @@ -353,7 +353,9 @@ stream { {{- if .ZoneSyncConfig.Enable }} server { listen {{ .ZoneSyncConfig.Port }}; - {{- if not .DisableIPV6}}listen [::]:{{ .ZoneSyncConfig.Port }};{{- end}} + {{- if not .DisableIPV6 }} + listen [::]:{{ .ZoneSyncConfig.Port }}; + {{- end }} {{ makeResolver .ZoneSyncConfig.ResolverAddresses .ZoneSyncConfig.ResolverValid .ZoneSyncConfig.ResolverIPV6 }} zone_sync; zone_sync_server {{ .ZoneSyncConfig.Domain }}:{{ .ZoneSyncConfig.Port }} resolve;