@@ -171,6 +171,36 @@ Warning: This endpoint is not meant to be machine parseable, has no formatting c
171
171
}
172
172
}
173
173
174
+ func TestStatusz (t * testing.T ) {
175
+ featuregatetesting .SetFeatureGateDuringTest (t , utilfeature .DefaultFeatureGate , features .ComponentStatusz , true )
176
+ server := kubeapiservertesting .StartTestServerOrDie (t , nil , framework .DefaultTestServerFlags (), framework .SharedEtcd ())
177
+ defer server .TearDownFn ()
178
+
179
+ client , err := kubernetes .NewForConfig (server .ClientConfig )
180
+ if err != nil {
181
+ t .Fatalf ("Unexpected error: %v" , err )
182
+ }
183
+
184
+ res := client .CoreV1 ().RESTClient ().Get ().RequestURI ("/statusz" ).Do (context .TODO ())
185
+ var status int
186
+ res .StatusCode (& status )
187
+ if status != http .StatusOK {
188
+ t .Fatalf ("statusz/ should be healthy, got %v" , status )
189
+ }
190
+
191
+ expectedHeader := `
192
+ kube-apiserver statusz
193
+ Warning: This endpoint is not meant to be machine parseable, has no formatting compatibility guarantees and is for debugging purposes only.`
194
+
195
+ raw , err := res .Raw ()
196
+ if err != nil {
197
+ t .Fatal (err )
198
+ }
199
+ if ! bytes .HasPrefix (raw , []byte (expectedHeader )) {
200
+ t .Fatalf ("Header mismatch!\n Expected:\n %s\n \n Got:\n %s" , expectedHeader , string (raw ))
201
+ }
202
+ }
203
+
174
204
// TestOpenAPIDelegationChainPlumbing is a smoke test that checks for
175
205
// the existence of some representative paths from the
176
206
// apiextensions-server and the kube-aggregator server, both part of
0 commit comments