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
8d45bb39a4
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
|
||||
ClientBodyTimeout int `json:"client-body-timeout,omitempty"`
|
||||
|
||||
// DisableAccessLog disables the Access Log globally from NGINX ingress controller
|
||||
//http://nginx.org/en/docs/http/ngx_http_log_module.html
|
||||
// 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/stream/ngx_stream_log_module.html
|
||||
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 bool `json:"disable-ipv6-dns"`
|
||||
|
||||
|
|
|
@ -338,7 +338,7 @@ http {
|
|||
default 1;
|
||||
}
|
||||
|
||||
{{ if $cfg.DisableAccessLog }}
|
||||
{{ if or $cfg.DisableAccessLog $cfg.DisableHTTPAccessLog }}
|
||||
access_log off;
|
||||
{{ else }}
|
||||
{{ if $cfg.EnableSyslog }}
|
||||
|
@ -702,7 +702,7 @@ stream {
|
|||
|
||||
log_format log_stream '{{ $cfg.LogFormatStream }}';
|
||||
|
||||
{{ if $cfg.DisableAccessLog }}
|
||||
{{ if or $cfg.DisableAccessLog $cfg.DisableStreamAccessLog }}
|
||||
access_log off;
|
||||
{{ else }}
|
||||
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