Skip to content

Commit 816cd40

Browse files
committed
Unify ComponentKubelet and add unit tests.
1 parent a04df83 commit 816cd40

File tree

3 files changed

+13
-11
lines changed

3 files changed

+13
-11
lines changed

cmd/kubelet/app/server.go

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -132,14 +132,9 @@ func init() {
132132
otel.SetMeterProvider(noop.NewMeterProvider())
133133
}
134134

135-
const (
136-
// Kubelet component name
137-
componentKubelet = "kubelet"
138-
)
139-
140135
// NewKubeletCommand creates a *cobra.Command object with default parameters
141136
func NewKubeletCommand() *cobra.Command {
142-
cleanFlagSet := pflag.NewFlagSet(componentKubelet, pflag.ContinueOnError)
137+
cleanFlagSet := pflag.NewFlagSet(server.ComponentKubelet, pflag.ContinueOnError)
143138
cleanFlagSet.SetNormalizeFunc(cliflag.WordSepNormalizeFunc)
144139
kubeletFlags := options.NewKubeletFlags()
145140

@@ -151,7 +146,7 @@ func NewKubeletCommand() *cobra.Command {
151146
}
152147

153148
cmd := &cobra.Command{
154-
Use: componentKubelet,
149+
Use: server.ComponentKubelet,
155150
Long: `The kubelet is the primary "node agent" that runs on each
156151
node. It can register the node with the apiserver using one of: the hostname; a flag to
157152
override the hostname; or specific logic for a cloud provider.
@@ -562,7 +557,7 @@ func makeEventRecorder(ctx context.Context, kubeDeps *kubelet.Dependencies, node
562557
return
563558
}
564559
eventBroadcaster := record.NewBroadcaster(record.WithContext(ctx))
565-
kubeDeps.Recorder = eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: componentKubelet, Host: string(nodeName)})
560+
kubeDeps.Recorder = eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: server.ComponentKubelet, Host: string(nodeName)})
566561
eventBroadcaster.StartStructuredLogging(3)
567562
if kubeDeps.EventClient != nil {
568563
klog.V(4).InfoS("Sending events to api server")
@@ -1386,7 +1381,7 @@ func newTracerProvider(s *options.KubeletServer) (oteltrace.TracerProvider, erro
13861381
}
13871382
resourceOpts := []otelsdkresource.Option{
13881383
otelsdkresource.WithAttributes(
1389-
semconv.ServiceNameKey.String(componentKubelet),
1384+
semconv.ServiceNameKey.String(server.ComponentKubelet),
13901385
semconv.HostNameKey.String(hostname),
13911386
),
13921387
}

pkg/kubelet/server/server.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,11 @@ const (
107107
debugFlagPath = "/debug/flags/v"
108108
podsPath = "/pods"
109109
runningPodsPath = "/runningpods/"
110+
)
110111

111-
kubeletComponent = "kubelet"
112+
const (
113+
// Kubelet component name
114+
ComponentKubelet = "kubelet"
112115
)
113116

114117
// Server is a http.Handler which exposes kubelet functionality over HTTP.
@@ -411,7 +414,8 @@ func (s *Server) InstallDefaultHandlers() {
411414
healthz.InstallHandler(s.restfulCont, checkers...)
412415

413416
if utilfeature.DefaultFeatureGate.Enabled(zpagesfeatures.ComponentStatusz) {
414-
statusz.Install(s.restfulCont, kubeletComponent, statusz.NewRegistry())
417+
s.addMetricsBucketMatcher("statusz")
418+
statusz.Install(s.restfulCont, ComponentKubelet, statusz.NewRegistry())
415419
}
416420

417421
slis.SLIMetricsWithReset{}.Install(s.restfulCont)

pkg/kubelet/server/server_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ import (
5757
"k8s.io/apiserver/pkg/server/healthz"
5858
utilfeature "k8s.io/apiserver/pkg/util/feature"
5959
featuregatetesting "k8s.io/component-base/featuregate/testing"
60+
zpagesfeatures "k8s.io/component-base/zpages/features"
6061
"k8s.io/kubelet/pkg/cri/streaming"
6162
"k8s.io/kubelet/pkg/cri/streaming/portforward"
6263
remotecommandserver "k8s.io/kubelet/pkg/cri/streaming/remotecommand"
@@ -1648,9 +1649,11 @@ func TestMetricBuckets(t *testing.T) {
16481649
"runningpods": {url: "/runningpods/", bucket: "runningpods"},
16491650
"stats": {url: "/stats/", bucket: "stats"},
16501651
"stats summary sub": {url: "/stats/summary", bucket: "stats"},
1652+
"statusz": {url: "/statusz", bucket: "statusz"},
16511653
"invalid path": {url: "/junk", bucket: "other"},
16521654
"invalid path starting with good": {url: "/healthzjunk", bucket: "other"},
16531655
}
1656+
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, zpagesfeatures.ComponentStatusz, true)
16541657
fw := newServerTest()
16551658
defer fw.testHTTPServer.Close()
16561659

0 commit comments

Comments
 (0)