Skip to content

Commit

Permalink
Add default-server-access-log-off to configmap
Browse files Browse the repository at this point in the history
  • Loading branch information
lucacome committed Feb 21, 2020
1 parent c2bccae commit 210b9ee
Show file tree
Hide file tree
Showing 6 changed files with 119 additions and 100 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,10 @@ See the doc about [VirtualServer and VirtualServerRoute resources](/nginx-ingres
- Disables the `access log <http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log>`_.
- ``False``
-
* - ``default-server-access-log-off``
- Disables the `access log <http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log>`_ for the default server. If access log is disabled globally (``access-log-off: "True"``), then the default server access log is always disabled.
- ``False``
-
* - ``log-format``
- Sets the custom `log format <http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format>`_.
- See the `template file <https://github.com/nginxinc/kubernetes-ingress/blob/master/internal/configs/version1/nginx.tmpl>`_ for the access log.
Expand Down
95 changes: 48 additions & 47 deletions internal/configs/config_params.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,81 +3,82 @@ package configs
// ConfigParams holds NGINX configuration parameters that affect the main NGINX config
// as well as configs for Ingress resources.
type ConfigParams struct {
LocationSnippets []string
ServerSnippets []string
ServerTokens string
ProxyConnectTimeout string
ProxyReadTimeout string
ProxySendTimeout string
ClientMaxBodySize string
DefaultServerAccessLogOff bool
FailTimeout string
HealthCheckEnabled bool
HealthCheckMandatory bool
HealthCheckMandatoryQueue int64
HSTS bool
HSTSBehindProxy bool
HSTSIncludeSubdomains bool
HSTSMaxAge int64
HTTP2 bool
RedirectToHTTPS bool
SSLRedirect bool
MainMainSnippets []string
Keepalive int
LBMethod string
LocationSnippets []string
MainAccessLogOff bool
MainErrorLogLevel string
MainHTTPSnippets []string
MainStreamSnippets []string
MainKeepaliveRequests int64
MainKeepaliveTimeout string
MainLogFormat string
MainMainSnippets []string
MainOpenTracingEnabled bool
MainOpenTracingLoadModule bool
MainOpenTracingTracer string
MainOpenTracingTracerConfig string
MainServerNamesHashBucketSize string
MainServerNamesHashMaxSize string
MainAccessLogOff bool
MainLogFormat string
MainErrorLogLevel string
MainStreamLogFormat string
MainStreamSnippets []string
MainWorkerConnections string
MainWorkerCPUAffinity string
MainWorkerProcesses string
MainWorkerRlimitNofile string
MainWorkerShutdownTimeout string
MaxConns int
MaxFails int
ProxyBuffering bool
ProxyBuffers string
ProxyBufferSize string
ProxyMaxTempFileSize string
ProxyProtocol bool
ProxyConnectTimeout string
ProxyHideHeaders []string
ProxyMaxTempFileSize string
ProxyPassHeaders []string
UpstreamZoneSize string
HSTS bool
HSTSBehindProxy bool
HSTSMaxAge int64
HSTSIncludeSubdomains bool
LBMethod string
MainWorkerProcesses string
MainWorkerCPUAffinity string
MainWorkerShutdownTimeout string
MainWorkerConnections string
MainWorkerRlimitNofile string
Keepalive int
MaxFails int
MaxConns int
FailTimeout string
HealthCheckEnabled bool
HealthCheckMandatory bool
HealthCheckMandatoryQueue int64
SlowStart string
ProxyProtocol bool
ProxyReadTimeout string
ProxySendTimeout string
RedirectToHTTPS bool
ResolverAddresses []string
ResolverIPV6 bool
ResolverValid string
ResolverTimeout string
MainKeepaliveTimeout string
MainKeepaliveRequests int64
ResolverValid string
ServerSnippets []string
ServerTokens string
SlowStart string
SSLRedirect bool
UpstreamZoneSize string
VariablesHashBucketSize uint64
VariablesHashMaxSize uint64
MainOpenTracingLoadModule bool
MainOpenTracingEnabled bool
MainOpenTracingTracer string
MainOpenTracingTracerConfig string

RealIPHeader string
SetRealIPFrom []string
RealIPRecursive bool
SetRealIPFrom []string

MainServerSSLProtocols string
MainServerSSLPreferServerCiphers bool
MainServerSSLCiphers string
MainServerSSLDHParam string
MainServerSSLDHParamFileContent *string
MainServerSSLPreferServerCiphers bool
MainServerSSLProtocols string

MainTemplate *string
IngressTemplate *string
MainTemplate *string

JWTRealm string
JWTKey string
JWTToken string
JWTLoginURL string
JWTRealm string
JWTToken string

Ports []int
SSLPorts []int
Expand Down
63 changes: 36 additions & 27 deletions internal/configs/configmaps.go
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,14 @@ func ParseConfigMap(cfgm *v1.ConfigMap, nginxPlus bool) *ConfigParams {
cfgParams.MainStreamLogFormat = streamLogFormat
}

if defaultServerAccessLogOff, exists, err := GetMapKeyAsBool(cfgm.Data, "default-server-access-log-off", cfgm); exists {
if err != nil {
glog.Error(err)
} else {
cfgParams.DefaultServerAccessLogOff = defaultServerAccessLogOff
}
}

if proxyBuffering, exists, err := GetMapKeyAsBool(cfgm.Data, "proxy-buffering", cfgm); exists {
if err != nil {
glog.Error(err)
Expand Down Expand Up @@ -429,45 +437,46 @@ func ParseConfigMap(cfgm *v1.ConfigMap, nginxPlus bool) *ConfigParams {
// GenerateNginxMainConfig generates MainConfig.
func GenerateNginxMainConfig(staticCfgParams *StaticConfigParams, config *ConfigParams) *version1.MainConfig {
nginxCfg := &version1.MainConfig{
AccessLogOff: config.MainAccessLogOff,
DefaultServerAccessLogOff: config.DefaultServerAccessLogOff,
ErrorLogLevel: config.MainErrorLogLevel,
HealthStatus: staticCfgParams.HealthStatus,
HealthStatusURI: staticCfgParams.HealthStatusURI,
HTTP2: config.HTTP2,
HTTPSnippets: config.MainHTTPSnippets,
KeepaliveRequests: config.MainKeepaliveRequests,
KeepaliveTimeout: config.MainKeepaliveTimeout,
LogFormat: config.MainLogFormat,
MainSnippets: config.MainMainSnippets,
NginxStatus: staticCfgParams.NginxStatus,
NginxStatusAllowCIDRs: staticCfgParams.NginxStatusAllowCIDRs,
NginxStatusPort: staticCfgParams.NginxStatusPort,
StubStatusOverUnixSocketForOSS: staticCfgParams.StubStatusOverUnixSocketForOSS,
MainSnippets: config.MainMainSnippets,
HTTPSnippets: config.MainHTTPSnippets,
StreamSnippets: config.MainStreamSnippets,
OpenTracingEnabled: config.MainOpenTracingEnabled,
OpenTracingLoadModule: config.MainOpenTracingLoadModule,
OpenTracingTracer: config.MainOpenTracingTracer,
OpenTracingTracerConfig: config.MainOpenTracingTracerConfig,
ProxyProtocol: config.ProxyProtocol,
ResolverAddresses: config.ResolverAddresses,
ResolverIPV6: config.ResolverIPV6,
ResolverTimeout: config.ResolverTimeout,
ResolverValid: config.ResolverValid,
ServerNamesHashBucketSize: config.MainServerNamesHashBucketSize,
ServerNamesHashMaxSize: config.MainServerNamesHashMaxSize,
AccessLogOff: config.MainAccessLogOff,
LogFormat: config.MainLogFormat,
ErrorLogLevel: config.MainErrorLogLevel,
StreamLogFormat: config.MainStreamLogFormat,
SSLProtocols: config.MainServerSSLProtocols,
ServerTokens: config.ServerTokens,
SSLCiphers: config.MainServerSSLCiphers,
SSLDHParam: config.MainServerSSLDHParam,
SSLPreferServerCiphers: config.MainServerSSLPreferServerCiphers,
HTTP2: config.HTTP2,
ServerTokens: config.ServerTokens,
ProxyProtocol: config.ProxyProtocol,
WorkerProcesses: config.MainWorkerProcesses,
WorkerCPUAffinity: config.MainWorkerCPUAffinity,
WorkerShutdownTimeout: config.MainWorkerShutdownTimeout,
WorkerConnections: config.MainWorkerConnections,
WorkerRlimitNofile: config.MainWorkerRlimitNofile,
ResolverAddresses: config.ResolverAddresses,
ResolverIPV6: config.ResolverIPV6,
ResolverValid: config.ResolverValid,
ResolverTimeout: config.ResolverTimeout,
KeepaliveTimeout: config.MainKeepaliveTimeout,
KeepaliveRequests: config.MainKeepaliveRequests,
SSLProtocols: config.MainServerSSLProtocols,
StreamLogFormat: config.MainStreamLogFormat,
StreamSnippets: config.MainStreamSnippets,
StubStatusOverUnixSocketForOSS: staticCfgParams.StubStatusOverUnixSocketForOSS,
VariablesHashBucketSize: config.VariablesHashBucketSize,
VariablesHashMaxSize: config.VariablesHashMaxSize,
OpenTracingLoadModule: config.MainOpenTracingLoadModule,
OpenTracingEnabled: config.MainOpenTracingEnabled,
OpenTracingTracer: config.MainOpenTracingTracer,
OpenTracingTracerConfig: config.MainOpenTracingTracerConfig,
WorkerConnections: config.MainWorkerConnections,
WorkerCPUAffinity: config.MainWorkerCPUAffinity,
WorkerProcesses: config.MainWorkerProcesses,
WorkerRlimitNofile: config.MainWorkerRlimitNofile,
WorkerShutdownTimeout: config.MainWorkerShutdownTimeout,
}
return nginxCfg
}
53 changes: 27 additions & 26 deletions internal/configs/version1/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,45 +124,46 @@ type Location struct {

// MainConfig describe the main NGINX configuration file.
type MainConfig struct {
ServerNamesHashBucketSize string
ServerNamesHashMaxSize string
AccessLogOff bool
LogFormat string
DefaultServerAccessLogOff bool
ErrorLogLevel string
StreamLogFormat string
HealthStatus bool
HealthStatusURI string
HTTP2 bool
HTTPSnippets []string
KeepaliveRequests int64
KeepaliveTimeout string
LogFormat string
MainSnippets []string
NginxStatus bool
NginxStatusAllowCIDRs []string
NginxStatusPort int
StubStatusOverUnixSocketForOSS bool
MainSnippets []string
HTTPSnippets []string
StreamSnippets []string
SSLProtocols string
SSLPreferServerCiphers bool
SSLCiphers string
SSLDHParam string
HTTP2 bool
ServerTokens string
OpenTracingEnabled bool
OpenTracingLoadModule bool
OpenTracingTracer string
OpenTracingTracerConfig string
ProxyProtocol bool
WorkerProcesses string
WorkerCPUAffinity string
WorkerShutdownTimeout string
WorkerConnections string
WorkerRlimitNofile string
ResolverAddresses []string
ResolverIPV6 bool
ResolverValid string
ResolverTimeout string
KeepaliveTimeout string
KeepaliveRequests int64
ResolverValid string
ServerNamesHashBucketSize string
ServerNamesHashMaxSize string
ServerTokens string
SSLCiphers string
SSLDHParam string
SSLPreferServerCiphers bool
SSLProtocols string
StreamLogFormat string
StreamSnippets []string
StubStatusOverUnixSocketForOSS bool
VariablesHashBucketSize uint64
VariablesHashMaxSize uint64
OpenTracingLoadModule bool
OpenTracingEnabled bool
OpenTracingTracer string
OpenTracingTracerConfig string
WorkerConnections string
WorkerCPUAffinity string
WorkerProcesses string
WorkerRlimitNofile string
WorkerShutdownTimeout string
}

// NewUpstreamWithDefaultServer creates an upstream with the default server.
Expand Down
2 changes: 2 additions & 0 deletions internal/configs/version1/nginx-plus.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,9 @@ http {

server_name _;
server_tokens "{{.ServerTokens}}";
{{if .DefaultServerAccessLogOff}}
access_log off;
{{end}}

{{if .OpenTracingEnabled}}
opentracing off;
Expand Down
2 changes: 2 additions & 0 deletions internal/configs/version1/nginx.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,9 @@ http {

server_name _;
server_tokens "{{.ServerTokens}}";
{{if .DefaultServerAccessLogOff}}
access_log off;
{{end}}

{{if .OpenTracingEnabled}}
opentracing off;
Expand Down

0 comments on commit 210b9ee

Please sign in to comment.