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