Extend apiserver testserver such that in can be used in integration tests

abstract out etcd server creation
test/integration/framework: cleanup master_utils.go
kube-apiserver: move StartTestServer tests into test/integration/master
Fix the failing scale test
kube-apiserver's TestServer now returns a struct instead of individual values
This commit is contained in:
dhilipkumars
2017-11-12 15:10:57 +05:30
parent bd8d8f4387
commit fd8758b047
14 changed files with 284 additions and 221 deletions

View File

@@ -13,6 +13,7 @@ go_test(
tags = ["integration"],
deps = [
"//cmd/kube-apiserver/app/testing:go_default_library",
"//test/integration/framework:go_default_library",
"//vendor/github.com/coreos/pkg/capnslog:go_default_library",
"//vendor/k8s.io/api/apps/v1beta2:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",

View File

@@ -31,6 +31,7 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/kubernetes"
apitesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
"k8s.io/kubernetes/test/integration/framework"
)
type subresourceTest struct {
@@ -45,6 +46,10 @@ func makeGVK(group, version, kind string) schema.GroupVersionKind {
return schema.GroupVersionKind{Group: group, Version: version, Kind: kind}
}
func TestMain(m *testing.M) {
framework.EtcdMain(m.Run)
}
func TestScaleSubresources(t *testing.T) {
clientSet, tearDown := setup(t)
defer tearDown()
@@ -209,7 +214,7 @@ var (
)
func setup(t *testing.T) (client kubernetes.Interface, tearDown func()) {
masterConfig, tearDownMaster := apitesting.StartTestServerOrDie(t)
result := apitesting.StartTestServerOrDie(t, nil, framework.SharedEtcd())
// TODO: Disable logging here until we resolve teardown issues which result in
// massive log spam. Another path forward would be to refactor
@@ -224,13 +229,13 @@ func setup(t *testing.T) (client kubernetes.Interface, tearDown func()) {
"etcdserver/api/v3rpc": capnslog.CRITICAL,
})
masterConfig.AcceptContentTypes = ""
masterConfig.ContentType = ""
masterConfig.NegotiatedSerializer = nil
clientSet, err := kubernetes.NewForConfig(masterConfig)
result.ClientConfig.AcceptContentTypes = ""
result.ClientConfig.ContentType = ""
result.ClientConfig.NegotiatedSerializer = nil
clientSet, err := kubernetes.NewForConfig(result.ClientConfig)
if err != nil {
t.Fatalf("error creating clientset: %v", err)
}
return clientSet, tearDownMaster
return clientSet, result.TearDownFn
}