mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 10:18: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/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 { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Henry Wu
					Henry Wu