From ebbd455b24541de64948971aa7c9d32597c683d7 Mon Sep 17 00:00:00 2001 From: Jiajie Yang Date: Thu, 21 May 2020 15:34:57 -0700 Subject: [PATCH] Restrict service account token metrics to kube-apiserver only. --- cmd/kube-apiserver/app/server.go | 1 + pkg/serviceaccount/metrics.go | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index cd96833930d..2660130f1d0 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -300,6 +300,7 @@ func CreateKubeAPIServerConfig( }) s.Metrics.Apply() + serviceaccount.RegisterMetrics() serviceIPRange, apiServerServiceIP, err := master.ServiceIPRange(s.PrimaryServiceClusterIPRange) if err != nil { diff --git a/pkg/serviceaccount/metrics.go b/pkg/serviceaccount/metrics.go index cc1913d2f73..2c614a9f930 100644 --- a/pkg/serviceaccount/metrics.go +++ b/pkg/serviceaccount/metrics.go @@ -17,6 +17,8 @@ limitations under the License. package serviceaccount import ( + "sync" + "k8s.io/component-base/metrics" "k8s.io/component-base/metrics/legacyregistry" ) @@ -56,8 +58,12 @@ var ( ) ) -func init() { - legacyregistry.MustRegister(legacyTokensTotal) - legacyregistry.MustRegister(staleTokensTotal) - legacyregistry.MustRegister(validTokensTotal) +var registerMetricsOnce sync.Once + +func RegisterMetrics() { + registerMetricsOnce.Do(func() { + legacyregistry.MustRegister(legacyTokensTotal) + legacyregistry.MustRegister(staleTokensTotal) + legacyregistry.MustRegister(validTokensTotal) + }) }