Skip to content

Commit 63ddf4b

Browse files
committed
test: Add integration test for apiserver statusz endpoint
1 parent 3ec9c7f commit 63ddf4b

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
@@ -160,6 +160,36 @@ Warning: This endpoint is not meant to be machine parseable, has no formatting c
160160
}
161161
}
162162

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

0 commit comments

Comments
 (0)