From 517fb0c9fdfffb73b64e8f060ede62441af1cf00 Mon Sep 17 00:00:00 2001 From: bakito Date: Thu, 31 Aug 2023 22:15:21 +0200 Subject: [PATCH] resolve port conflict for profiling feature --- main.go | 11 +++++++---- pkg/constants/constants.go | 18 +++++++++++++++--- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index cc5256e..44b72ee 100644 --- a/main.go +++ b/main.go @@ -59,17 +59,20 @@ func init() { func main() { var metricsAddr string + var healthAddr string + var profilingAddr string var configName string var enableLeaderElection bool var enableLoggerMode bool var enableProfiling bool flag.StringVar(&metricsAddr, cnst.ArgMetricsAddr, cnst.DefaultMetricsAddr, "The address the metric endpoint binds to.") + flag.StringVar(&healthAddr, cnst.ArgHealthAddr, cnst.DefaultHealthAddr, "The address the health endpoint binds to.") + flag.StringVar(&profilingAddr, cnst.ArgProfilingAddr, cnst.DefaultProfilingAddr, "The address the profiling endpoint binds to.") flag.BoolVar(&enableLeaderElection, cnst.ArgEnableLeaderElection, false, "Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.") flag.BoolVar(&enableLoggerMode, cnst.ArgEnableLoggerMode, false, "Enable logger mode. Enabling this will only log events of the current namespace.") - flag.BoolVar(&enableProfiling, cnst.ArgEnableProfiling, false, - "Enable profiling on port ':8081'.") + flag.BoolVar(&enableProfiling, cnst.ArgEnableProfiling, false, "Enable profiling endpoint.") flag.StringVar(&configName, cnst.ArgConfigName, "", "The name of the eventlogger config to work with.") @@ -100,7 +103,7 @@ func main() { LeaderElection: enableLeaderElection && !enableLoggerMode, LeaderElectionID: "leader.eventlogger.bakito.ch", LeaderElectionResourceLock: os.Getenv(cnst.EnvLeaderElectionResourceLock), - HealthProbeBindAddress: ":8081", + HealthProbeBindAddress: healthAddr, Cache: crtlcache.Options{ Namespaces: []string{watchNamespace}, }, @@ -168,7 +171,7 @@ func main() { // +kubebuilder:scaffold:builder if enableProfiling { - if err = mgr.Add(pprof.New(":8081")); err != nil { + if err = mgr.Add(pprof.New(profilingAddr)); err != nil { setupLog.Error(err, "unable to create pprof service") os.Exit(1) } diff --git a/pkg/constants/constants.go b/pkg/constants/constants.go index ab03c13..0f79a78 100644 --- a/pkg/constants/constants.go +++ b/pkg/constants/constants.go @@ -8,15 +8,27 @@ const ( // ArgEnableLoggerMode enable logger mode ArgEnableLoggerMode = "enable-logger-mode" - // ArgMetricsAddr metrics address - ArgMetricsAddr = "metrics-addr" - // ArgConfigName name of the config ArgConfigName = "config-name" + // ArgMetricsAddr metrics address + ArgMetricsAddr = "metrics-addr" + // DefaultMetricsAddr default metrics address DefaultMetricsAddr = ":8080" + // ArgHealthAddr health address + ArgHealthAddr = "health-addr" + + // DefaultHealthAddr default health address + DefaultHealthAddr = ":8081" + + // ArgProfilingAddr profiling address + ArgProfilingAddr = "profiling-addr" + + // DefaultProfilingAddr default profiling address + DefaultProfilingAddr = ":8082" + // ArgEnableLeaderElection enable leader election ArgEnableLeaderElection = "enable-leader-election"