Skip to content

Commit 566f939

Browse files
authored
Merge pull request kubernetes#129366 from zhifei92/statusz-integration-test
test: Add integration test for apiserver statusz endpoint
2 parents d92b99e + 63ddf4b commit 566f939

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

test/integration/controlplane/kube_apiserver_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,36 @@ Warning: This endpoint is not meant to be machine parseable, has no formatting c
171171
}
172172
}
173173

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!\nExpected:\n%s\n\nGot:\n%s", expectedHeader, string(raw))
201+
}
202+
}
203+
174204
// TestOpenAPIDelegationChainPlumbing is a smoke test that checks for
175205
// the existence of some representative paths from the
176206
// apiextensions-server and the kube-aggregator server, both part of

0 commit comments

Comments
 (0)