mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 18:28:13 +00:00 
			
		
		
		
	Add statusz endpoint for kube-scheduler
This commit is contained in:
		| @@ -39,6 +39,7 @@ import ( | ||||
| 	"k8s.io/apiserver/pkg/server/healthz" | ||||
| 	"k8s.io/apiserver/pkg/server/mux" | ||||
| 	"k8s.io/apiserver/pkg/server/routes" | ||||
| 	"k8s.io/apiserver/pkg/util/compatibility" | ||||
| 	utilfeature "k8s.io/apiserver/pkg/util/feature" | ||||
| 	"k8s.io/client-go/informers" | ||||
| 	"k8s.io/client-go/kubernetes/scheme" | ||||
| @@ -59,6 +60,7 @@ import ( | ||||
| 	"k8s.io/component-base/version/verflag" | ||||
| 	zpagesfeatures "k8s.io/component-base/zpages/features" | ||||
| 	"k8s.io/component-base/zpages/flagz" | ||||
| 	"k8s.io/component-base/zpages/statusz" | ||||
| 	"k8s.io/klog/v2" | ||||
| 	schedulerserverconfig "k8s.io/kubernetes/cmd/kube-scheduler/app/config" | ||||
| 	"k8s.io/kubernetes/cmd/kube-scheduler/app/options" | ||||
| @@ -371,6 +373,11 @@ func newEndpointsHandler(config *kubeschedulerconfig.KubeSchedulerConfiguration, | ||||
| 			flagz.Install(pathRecorderMux, kubeScheduler, flagReader) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if utilfeature.DefaultFeatureGate.Enabled(zpagesfeatures.ComponentStatusz) { | ||||
| 		statusz.Install(pathRecorderMux, kubeScheduler, statusz.NewRegistry(compatibility.DefaultBuildEffectiveVersion())) | ||||
| 	} | ||||
|  | ||||
| 	return pathRecorderMux | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -39,6 +39,8 @@ import ( | ||||
|  | ||||
| func TestEndpointHandlers(t *testing.T) { | ||||
| 	featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ComponentFlagz, true) | ||||
| 	featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ComponentStatusz, true) | ||||
|  | ||||
| 	server, configStr, _, err := startTestAPIServer(t) | ||||
| 	if err != nil { | ||||
| 		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, ` + | ||||
| 				`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 { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Henry Wu
					Henry Wu