Merge pull request #5348 from Antiarchitect/stream-log-annotations
Ability to separately disable access log in http and stream contexts
This commit is contained in:
commit
1caa1f0084
3 changed files with 94 additions and 4 deletions
|
@ -166,10 +166,19 @@ type Configuration struct {
|
||||||
// http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_timeout
|
// http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_timeout
|
||||||
ClientBodyTimeout int `json:"client-body-timeout,omitempty"`
|
ClientBodyTimeout int `json:"client-body-timeout,omitempty"`
|
||||||
|
|
||||||
// DisableAccessLog disables the Access Log globally from NGINX ingress controller
|
// DisableAccessLog disables the Access Log globally for both HTTP and Stream contexts from NGINX ingress controller
|
||||||
//http://nginx.org/en/docs/http/ngx_http_log_module.html
|
// http://nginx.org/en/docs/http/ngx_http_log_module.html
|
||||||
|
// http://nginx.org/en/docs/stream/ngx_stream_log_module.html
|
||||||
DisableAccessLog bool `json:"disable-access-log,omitempty"`
|
DisableAccessLog bool `json:"disable-access-log,omitempty"`
|
||||||
|
|
||||||
|
// DisableHTTPAccessLog disables the Access Log for http context globally from NGINX ingress controller
|
||||||
|
// http://nginx.org/en/docs/http/ngx_http_log_module.html
|
||||||
|
DisableHTTPAccessLog bool `json:"disable-http-access-log,omitempty"`
|
||||||
|
|
||||||
|
// DisableStreamAccessLog disables the Access Log for stream context globally from NGINX ingress controller
|
||||||
|
// http://nginx.org/en/docs/stream/ngx_stream_log_module.html
|
||||||
|
DisableStreamAccessLog bool `json:"disable-stream-access-log,omitempty"`
|
||||||
|
|
||||||
// DisableIpv6DNS disables IPv6 for nginx resolver
|
// DisableIpv6DNS disables IPv6 for nginx resolver
|
||||||
DisableIpv6DNS bool `json:"disable-ipv6-dns"`
|
DisableIpv6DNS bool `json:"disable-ipv6-dns"`
|
||||||
|
|
||||||
|
|
|
@ -338,7 +338,7 @@ http {
|
||||||
default 1;
|
default 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{{ if $cfg.DisableAccessLog }}
|
{{ if or $cfg.DisableAccessLog $cfg.DisableHTTPAccessLog }}
|
||||||
access_log off;
|
access_log off;
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ if $cfg.EnableSyslog }}
|
{{ if $cfg.EnableSyslog }}
|
||||||
|
@ -702,7 +702,7 @@ stream {
|
||||||
|
|
||||||
log_format log_stream '{{ $cfg.LogFormatStream }}';
|
log_format log_stream '{{ $cfg.LogFormatStream }}';
|
||||||
|
|
||||||
{{ if $cfg.DisableAccessLog }}
|
{{ if or $cfg.DisableAccessLog $cfg.DisableStreamAccessLog }}
|
||||||
access_log off;
|
access_log off;
|
||||||
{{ else }}
|
{{ else }}
|
||||||
access_log {{ or $cfg.StreamAccessLogPath $cfg.AccessLogPath }} log_stream {{ $cfg.AccessLogParams }};
|
access_log {{ or $cfg.StreamAccessLogPath $cfg.AccessLogPath }} log_stream {{ $cfg.AccessLogParams }};
|
||||||
|
|
81
test/e2e/annotations/disableaccesslog.go
Normal file
81
test/e2e/annotations/disableaccesslog.go
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
/*
|
||||||
|
Copyright 2020 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package annotations
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/onsi/ginkgo"
|
||||||
|
|
||||||
|
"k8s.io/ingress-nginx/test/e2e/framework"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ = framework.DescribeAnnotation("disable-access-log disable-http-access-log disable-stream-access-log", func() {
|
||||||
|
f := framework.NewDefaultFramework("disableaccesslog")
|
||||||
|
|
||||||
|
ginkgo.BeforeEach(func() {
|
||||||
|
f.NewEchoDeployment()
|
||||||
|
})
|
||||||
|
|
||||||
|
ginkgo.It("disable-access-log set access_log off", func() {
|
||||||
|
host := "disableaccesslog.foo.com"
|
||||||
|
annotations := map[string]string{
|
||||||
|
"nginx.ingress.kubernetes.io/disable-access-log": "true",
|
||||||
|
}
|
||||||
|
|
||||||
|
ing := framework.NewSingleIngress(host, "/", host, f.Namespace, framework.EchoService, 80, annotations)
|
||||||
|
f.EnsureIngress(ing)
|
||||||
|
|
||||||
|
f.WaitForNginxServer(host,
|
||||||
|
func(server string) bool {
|
||||||
|
str := `
|
||||||
|
multiline
|
||||||
|
string.`
|
||||||
|
return strings.Contains(server, `access_log off;`)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
ginkgo.It("disable-http-access-log set access_log off", func() {
|
||||||
|
host := "disablehttpaccesslog.foo.com"
|
||||||
|
annotations := map[string]string{
|
||||||
|
"nginx.ingress.kubernetes.io/disable-http-access-log": "true",
|
||||||
|
}
|
||||||
|
|
||||||
|
ing := framework.NewSingleIngress(host, "/", host, f.Namespace, framework.EchoService, 80, annotations)
|
||||||
|
f.EnsureIngress(ing)
|
||||||
|
|
||||||
|
f.WaitForNginxServer(host,
|
||||||
|
func(server string) bool {
|
||||||
|
return strings.Contains(server, `access_log off;`)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
ginkgo.It("disable-stream-access-log set access_log off", func() {
|
||||||
|
host := "disablehttpaccesslog.foo.com"
|
||||||
|
annotations := map[string]string{
|
||||||
|
"nginx.ingress.kubernetes.io/disable-stream-access-log": "true",
|
||||||
|
}
|
||||||
|
|
||||||
|
ing := framework.NewSingleIngress(host, "/", host, f.Namespace, framework.EchoService, 80, annotations)
|
||||||
|
f.EnsureIngress(ing)
|
||||||
|
|
||||||
|
f.WaitForNginxServer(host,
|
||||||
|
func(server string) bool {
|
||||||
|
return strings.Contains(server, `access_log off;`)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
Loading…
Reference in a new issue