Skip to content

Commit 4e651ad

Browse files
committed
Add statusz endpoint for kube-scheduler
1 parent 72b404f commit 4e651ad

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

cmd/kube-scheduler/app/server.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import (
3939
"k8s.io/apiserver/pkg/server/healthz"
4040
"k8s.io/apiserver/pkg/server/mux"
4141
"k8s.io/apiserver/pkg/server/routes"
42+
"k8s.io/apiserver/pkg/util/compatibility"
4243
utilfeature "k8s.io/apiserver/pkg/util/feature"
4344
"k8s.io/client-go/informers"
4445
"k8s.io/client-go/kubernetes/scheme"
@@ -59,6 +60,7 @@ import (
5960
"k8s.io/component-base/version/verflag"
6061
zpagesfeatures "k8s.io/component-base/zpages/features"
6162
"k8s.io/component-base/zpages/flagz"
63+
"k8s.io/component-base/zpages/statusz"
6264
"k8s.io/klog/v2"
6365
schedulerserverconfig "k8s.io/kubernetes/cmd/kube-scheduler/app/config"
6466
"k8s.io/kubernetes/cmd/kube-scheduler/app/options"
@@ -371,6 +373,11 @@ func newEndpointsHandler(config *kubeschedulerconfig.KubeSchedulerConfiguration,
371373
flagz.Install(pathRecorderMux, kubeScheduler, flagReader)
372374
}
373375
}
376+
377+
if utilfeature.DefaultFeatureGate.Enabled(zpagesfeatures.ComponentStatusz) {
378+
statusz.Install(pathRecorderMux, kubeScheduler, statusz.NewRegistry(compatibility.DefaultBuildEffectiveVersion()))
379+
}
380+
374381
return pathRecorderMux
375382
}
376383

test/integration/scheduler/serving/endpoints_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ import (
3939

4040
func TestEndpointHandlers(t *testing.T) {
4141
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ComponentFlagz, true)
42+
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ComponentStatusz, true)
43+
4244
server, configStr, _, err := startTestAPIServer(t)
4345
if err != nil {
4446
t.Fatalf("Failed to start kube-apiserver server: %v", err)
@@ -128,6 +130,16 @@ func TestEndpointHandlers(t *testing.T) {
128130
`Warning: This endpoint is not meant to be machine parseable, ` +
129131
`has no formatting compatibility guarantees and is for debugging purposes only.`,
130132
},
133+
{
134+
name: "/statusz",
135+
path: "/statusz",
136+
requestHeader: map[string]string{"Accept": "text/plain"},
137+
wantResponseCode: http.StatusOK,
138+
wantResponseBodyRegx: `^\n` +
139+
`kube-scheduler statusz\n` +
140+
`Warning: This endpoint is not meant to be machine parseable, ` +
141+
`has no formatting compatibility guarantees and is for debugging purposes only.`,
142+
},
131143
}
132144

133145
for _, tt := range tests {

0 commit comments

Comments
 (0)