mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-10 12:32:03 +00:00
Merge pull request #128848 from yongruilin/flagz-integration-test-apiserver
test: Add integration test for apiserver flagz endpoint
This commit is contained in:
commit
e933a30523
@ -38,7 +38,10 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
|
featuregatetesting "k8s.io/component-base/featuregate/testing"
|
||||||
|
"k8s.io/component-base/zpages/features"
|
||||||
"k8s.io/kube-aggregator/pkg/apis/apiregistration"
|
"k8s.io/kube-aggregator/pkg/apis/apiregistration"
|
||||||
"k8s.io/kube-openapi/pkg/validation/spec"
|
"k8s.io/kube-openapi/pkg/validation/spec"
|
||||||
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
||||||
@ -127,6 +130,36 @@ func TestLivezAndReadyz(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestFlagz(t *testing.T) {
|
||||||
|
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ComponentFlagz, 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("/flagz").Do(context.TODO())
|
||||||
|
var status int
|
||||||
|
res.StatusCode(&status)
|
||||||
|
if status != http.StatusOK {
|
||||||
|
t.Fatalf("flagz/ should be healthy, got %v", status)
|
||||||
|
}
|
||||||
|
|
||||||
|
expectedHeader := `
|
||||||
|
kube-apiserver flags
|
||||||
|
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
|
// TestOpenAPIDelegationChainPlumbing is a smoke test that checks for
|
||||||
// the existence of some representative paths from the
|
// the existence of some representative paths from the
|
||||||
// apiextensions-server and the kube-aggregator server, both part of
|
// apiextensions-server and the kube-aggregator server, both part of
|
||||||
|
Loading…
Reference in New Issue
Block a user