mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-08 11:38:15 +00:00
test: Add integration test for apiserver statusz endpoint
This commit is contained in:
parent
3ec9c7f4d2
commit
63ddf4bf33
@ -160,6 +160,36 @@ Warning: This endpoint is not meant to be machine parseable, has no formatting c
|
||||
}
|
||||
}
|
||||
|
||||
func TestStatusz(t *testing.T) {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ComponentStatusz, true)
|
||||
server := kubeapiservertesting.StartTestServerOrDie(t, nil, framework.DefaultTestServerFlags(), framework.SharedEtcd())
|
||||
defer server.TearDownFn()
|
||||
|
||||
client, err := kubernetes.NewForConfig(server.ClientConfig)
|
||||
if err != nil {
|
||||
t.Fatalf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
res := client.CoreV1().RESTClient().Get().RequestURI("/statusz").Do(context.TODO())
|
||||
var status int
|
||||
res.StatusCode(&status)
|
||||
if status != http.StatusOK {
|
||||
t.Fatalf("statusz/ should be healthy, got %v", status)
|
||||
}
|
||||
|
||||
expectedHeader := `
|
||||
kube-apiserver statusz
|
||||
Warning: This endpoint is not meant to be machine parseable, has no formatting compatibility guarantees and is for debugging purposes only.`
|
||||
|
||||
raw, err := res.Raw()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !bytes.HasPrefix(raw, []byte(expectedHeader)) {
|
||||
t.Fatalf("Header mismatch!\nExpected:\n%s\n\nGot:\n%s", expectedHeader, string(raw))
|
||||
}
|
||||
}
|
||||
|
||||
// TestOpenAPIDelegationChainPlumbing is a smoke test that checks for
|
||||
// the existence of some representative paths from the
|
||||
// apiextensions-server and the kube-aggregator server, both part of
|
||||
|
Loading…
Reference in New Issue
Block a user