From 7dd4e89a99b2e796a87ee64db1903570fa01206f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Przychodze=C5=84?= Date: Wed, 27 Jul 2022 14:30:40 +0000 Subject: [PATCH] Enable 'running_managed_controllers' for KCM nodeipam controller --- cmd/kube-controller-manager/app/core.go | 2 +- pkg/controller/nodeipam/node_ipam_controller.go | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/cmd/kube-controller-manager/app/core.go b/cmd/kube-controller-manager/app/core.go index cb692299647..991b29a4347 100644 --- a/cmd/kube-controller-manager/app/core.go +++ b/cmd/kube-controller-manager/app/core.go @@ -166,7 +166,7 @@ func startNodeIpamController(ctx context.Context, controllerContext ControllerCo if err != nil { return nil, true, err } - go nodeIpamController.Run(ctx.Done()) + go nodeIpamController.RunWithMetrics(ctx.Done(), controllerContext.ControllerManagerMetrics) return nil, true, nil } diff --git a/pkg/controller/nodeipam/node_ipam_controller.go b/pkg/controller/nodeipam/node_ipam_controller.go index 3e600e28a3b..3a3c8ce1919 100644 --- a/pkg/controller/nodeipam/node_ipam_controller.go +++ b/pkg/controller/nodeipam/node_ipam_controller.go @@ -32,6 +32,7 @@ import ( clientset "k8s.io/client-go/kubernetes" corelisters "k8s.io/client-go/listers/core/v1" cloudprovider "k8s.io/cloud-provider" + controllersmetrics "k8s.io/component-base/metrics/prometheus/controllers" "k8s.io/component-base/metrics/prometheus/ratelimiter" "k8s.io/kubernetes/pkg/controller/nodeipam/ipam" ) @@ -164,3 +165,10 @@ func (nc *Controller) Run(stopCh <-chan struct{}) { <-stopCh } + +// RunWithMetrics is a wrapper for Run that also tracks starting and stopping of the nodeipam controller with additional metric +func (nc *Controller) RunWithMetrics(stopCh <-chan struct{}, controllerManagerMetrics *controllersmetrics.ControllerManagerMetrics) { + controllerManagerMetrics.ControllerStarted("nodeipam") + defer controllerManagerMetrics.ControllerStopped("nodeipam") + nc.Run(stopCh) +}