diff --git a/internal/ingress/controller/nginx.go b/internal/ingress/controller/nginx.go index 20fad5afb8..bc8014f15d 100644 --- a/internal/ingress/controller/nginx.go +++ b/internal/ingress/controller/nginx.go @@ -704,7 +704,7 @@ func (n *NGINXController) OnUpdate(ingressCfg ingress.Configuration) error { } if klog.V(2).Enabled() { - src, err := os.ReadFile(cfgPath) + src, err := os.ReadFile(cfgPath()) if err != nil { return err } @@ -719,7 +719,7 @@ func (n *NGINXController) OnUpdate(ingressCfg ingress.Configuration) error { return err } //nolint:gosec //Ignore G204 error - diffOutput, err := exec.Command("diff", "-I", "'# Configuration.*'", "-u", cfgPath, tmpfile.Name()).CombinedOutput() + diffOutput, err := exec.Command("diff", "-I", "'# Configuration.*'", "-u", cfgPath(), tmpfile.Name()).CombinedOutput() if err != nil { if exitError, ok := err.(*exec.ExitError); ok { ws, ok := exitError.Sys().(syscall.WaitStatus) @@ -740,7 +740,7 @@ func (n *NGINXController) OnUpdate(ingressCfg ingress.Configuration) error { } } - err = os.WriteFile(cfgPath, content, file.ReadWriteByUser) + err = os.WriteFile(cfgPath(), content, file.ReadWriteByUser) if err != nil { return err } @@ -1105,7 +1105,7 @@ func (n *NGINXController) createLuaConfig(cfg *ngx_config.Configuration) error { if err != nil { return err } - return os.WriteFile(luaCfgPath, jsonCfg, file.ReadWriteByUser) + return os.WriteFile(luaCfgPath(), jsonCfg, file.ReadWriteByUser) } func cleanTempNginxCfg() error { diff --git a/internal/ingress/controller/util.go b/internal/ingress/controller/util.go index 975fb822ae..d9ca967a17 100644 --- a/internal/ingress/controller/util.go +++ b/internal/ingress/controller/util.go @@ -98,9 +98,7 @@ func rlimitMaxNumFiles() int { } const ( - defBinary = "/usr/bin/nginx" - cfgPath = "/etc/nginx/nginx.conf" - luaCfgPath = "/etc/nginx/lua/cfg.json" + defBinary = "/usr/bin/nginx" ) // NginxExecTester defines the interface to execute @@ -115,6 +113,22 @@ type NginxCommand struct { Binary string } +func luaCfgPath() string { + cfgPath := os.Getenv("NGINX_LUA_CONFIG_PATH") + if cfgPath == "" { + return "/etc/nginx/lua/cfg.json" + } + return cfgPath +} + +func cfgPath() string { + cfgPath := os.Getenv("NGINX_CONFIG_PATH") + if cfgPath == "" { + return "/etc/nginx/nginx.conf" + } + return cfgPath +} + // NewNginxCommand returns a new NginxCommand from which path // has been detected from environment variable NGINX_BINARY or default func NewNginxCommand() NginxCommand { @@ -134,7 +148,7 @@ func NewNginxCommand() NginxCommand { func (nc NginxCommand) ExecCommand(args ...string) *exec.Cmd { cmdArgs := []string{} - cmdArgs = append(cmdArgs, "-c", cfgPath) + cmdArgs = append(cmdArgs, "-c", cfgPath()) cmdArgs = append(cmdArgs, args...) //nolint:gosec // Ignore G204 error return exec.Command(nc.Binary, cmdArgs...)