From 3b7dc33e859d36259d5f4ea561be33564a14d138 Mon Sep 17 00:00:00 2001 From: Doug Cook Date: Thu, 7 Dec 2023 13:06:18 -0800 Subject: [PATCH] Issue 509: Make metrics server port configurable Adds a flag to the controller to support configuring a non-default port for the metrics collection. This resolves an issue where running secretgen-controller with hostNetwork=true may lead to port conflicts on the node. Testing Done: - Built and ensured passing tests locally - Deployed in a Kind cluster and loaded Docker image onto cluster - Edited Deployment to add new container arg: -metrics-bind-address=:8093 - Confirmed new secretgen-controller Pod logged the change: ... "msg":"Metrics server is starting to listen","addr":":8093"} ... Signed-off-by: Doug Cook --- cmd/controller/main.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cmd/controller/main.go b/cmd/controller/main.go index 0b22f2eba..0ac63db93 100644 --- a/cmd/controller/main.go +++ b/cmd/controller/main.go @@ -37,12 +37,14 @@ var ( // Version of secretgen-controller is set via ldflags at build-time from most recent git tag Version = "develop" - log = logf.Log.WithName("sg") - ctrlNamespace = "" + log = logf.Log.WithName("sg") + ctrlNamespace = "" + metricsBindAddress = "" ) func main() { flag.StringVar(&ctrlNamespace, "namespace", "", "Namespace to watch") + flag.StringVar(&metricsBindAddress, "metrics-bind-address", ":8080", "Address for metrics server. If 0, then metrics server doesnt listen on any port.") flag.Parse() logf.SetLogger(zap.New(zap.UseDevMode(false))) @@ -56,7 +58,7 @@ func main() { sgv1alpha1.AddToScheme(scheme.Scheme) sg2v1alpha1.AddToScheme(scheme.Scheme) - mgr, err := manager.New(restConfig, manager.Options{Namespace: ctrlNamespace}) + mgr, err := manager.New(restConfig, manager.Options{Namespace: ctrlNamespace, MetricsBindAddress: metricsBindAddress}) exitIfErr(entryLog, "unable to set up controller manager", err) entryLog.Info("setting up controllers")