mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 09:22:44 +00:00
Merge pull request #128987 from Henrywu573/kubescheduler_statuz
Add statusz endpoint for kube-scheduler
This commit is contained in:
commit
a0be82d80d
@ -39,6 +39,7 @@ import (
|
|||||||
"k8s.io/apiserver/pkg/server/healthz"
|
"k8s.io/apiserver/pkg/server/healthz"
|
||||||
"k8s.io/apiserver/pkg/server/mux"
|
"k8s.io/apiserver/pkg/server/mux"
|
||||||
"k8s.io/apiserver/pkg/server/routes"
|
"k8s.io/apiserver/pkg/server/routes"
|
||||||
|
"k8s.io/apiserver/pkg/util/compatibility"
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
"k8s.io/client-go/informers"
|
"k8s.io/client-go/informers"
|
||||||
"k8s.io/client-go/kubernetes/scheme"
|
"k8s.io/client-go/kubernetes/scheme"
|
||||||
@ -59,6 +60,7 @@ import (
|
|||||||
"k8s.io/component-base/version/verflag"
|
"k8s.io/component-base/version/verflag"
|
||||||
zpagesfeatures "k8s.io/component-base/zpages/features"
|
zpagesfeatures "k8s.io/component-base/zpages/features"
|
||||||
"k8s.io/component-base/zpages/flagz"
|
"k8s.io/component-base/zpages/flagz"
|
||||||
|
"k8s.io/component-base/zpages/statusz"
|
||||||
"k8s.io/klog/v2"
|
"k8s.io/klog/v2"
|
||||||
schedulerserverconfig "k8s.io/kubernetes/cmd/kube-scheduler/app/config"
|
schedulerserverconfig "k8s.io/kubernetes/cmd/kube-scheduler/app/config"
|
||||||
"k8s.io/kubernetes/cmd/kube-scheduler/app/options"
|
"k8s.io/kubernetes/cmd/kube-scheduler/app/options"
|
||||||
@ -371,6 +373,11 @@ func newEndpointsHandler(config *kubeschedulerconfig.KubeSchedulerConfiguration,
|
|||||||
flagz.Install(pathRecorderMux, kubeScheduler, flagReader)
|
flagz.Install(pathRecorderMux, kubeScheduler, flagReader)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if utilfeature.DefaultFeatureGate.Enabled(zpagesfeatures.ComponentStatusz) {
|
||||||
|
statusz.Install(pathRecorderMux, kubeScheduler, statusz.NewRegistry(compatibility.DefaultBuildEffectiveVersion()))
|
||||||
|
}
|
||||||
|
|
||||||
return pathRecorderMux
|
return pathRecorderMux
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,6 +39,8 @@ import (
|
|||||||
|
|
||||||
func TestEndpointHandlers(t *testing.T) {
|
func TestEndpointHandlers(t *testing.T) {
|
||||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ComponentFlagz, true)
|
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ComponentFlagz, true)
|
||||||
|
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ComponentStatusz, true)
|
||||||
|
|
||||||
server, configStr, _, err := startTestAPIServer(t)
|
server, configStr, _, err := startTestAPIServer(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Failed to start kube-apiserver server: %v", err)
|
t.Fatalf("Failed to start kube-apiserver server: %v", err)
|
||||||
@ -128,6 +130,16 @@ func TestEndpointHandlers(t *testing.T) {
|
|||||||
`Warning: This endpoint is not meant to be machine parseable, ` +
|
`Warning: This endpoint is not meant to be machine parseable, ` +
|
||||||
`has no formatting compatibility guarantees and is for debugging purposes only.`,
|
`has no formatting compatibility guarantees and is for debugging purposes only.`,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "/statusz",
|
||||||
|
path: "/statusz",
|
||||||
|
requestHeader: map[string]string{"Accept": "text/plain"},
|
||||||
|
wantResponseCode: http.StatusOK,
|
||||||
|
wantResponseBodyRegx: `^\n` +
|
||||||
|
`kube-scheduler statusz\n` +
|
||||||
|
`Warning: This endpoint is not meant to be machine parseable, ` +
|
||||||
|
`has no formatting compatibility guarantees and is for debugging purposes only.`,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
|
Loading…
Reference in New Issue
Block a user