diff --git a/controllers/nginx/pkg/cmd/controller/nginx.go b/controllers/nginx/pkg/cmd/controller/nginx.go index 7e3ecfbbc..fc1d7bb4e 100644 --- a/controllers/nginx/pkg/cmd/controller/nginx.go +++ b/controllers/nginx/pkg/cmd/controller/nginx.go @@ -314,6 +314,11 @@ func (n NGINXController) Info() *ingress.BackendInfo { } } +// ConfigureFlags allow to configure more flags before the parsing of +// command line arguments +func (n *NGINXController) ConfigureFlags(flags *pflag.FlagSet) { +} + // OverrideFlags customize NGINX controller flags func (n *NGINXController) OverrideFlags(flags *pflag.FlagSet) { ic, _ := flags.GetString("ingress-class") diff --git a/core/pkg/ingress/controller/launch.go b/core/pkg/ingress/controller/launch.go index 43ca58a0a..9bb162488 100644 --- a/core/pkg/ingress/controller/launch.go +++ b/core/pkg/ingress/controller/launch.go @@ -92,8 +92,8 @@ func NewIngressController(backend ingress.Controller) *GenericController { ) flags.AddGoFlagSet(flag.CommandLine) + backend.ConfigureFlags(flags) flags.Parse(os.Args) - backend.OverrideFlags(flags) flag.Set("logtostderr", "true") diff --git a/core/pkg/ingress/types.go b/core/pkg/ingress/types.go index 4d5a3869f..3dcda05b4 100644 --- a/core/pkg/ingress/types.go +++ b/core/pkg/ingress/types.go @@ -94,6 +94,9 @@ type Controller interface { BackendDefaults() defaults.Backend // Info returns information about the ingress controller Info() *BackendInfo + // ConfigureFlags allow to configure more flags before the parsing of + // command line arguments + ConfigureFlags(*pflag.FlagSet) // OverrideFlags allow the customization of the flags in the backend OverrideFlags(*pflag.FlagSet) // DefaultIngressClass just return the default ingress class diff --git a/examples/custom-controller/server.go b/examples/custom-controller/server.go index 0c4649ec8..2614ffa41 100644 --- a/examples/custom-controller/server.go +++ b/examples/custom-controller/server.go @@ -83,6 +83,9 @@ func (dc DummyController) Info() *ingress.BackendInfo { } } +func (n DummyController) ConfigureFlags(*pflag.FlagSet) { +} + func (n DummyController) OverrideFlags(*pflag.FlagSet) { }