From 6bb3aba23dfbfd8b145a33e9d1a461658bd60fc0 Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Fri, 6 Jul 2018 19:20:45 +0200 Subject: [PATCH] kube-apiserver: fix tests which don't use tls yet --- pkg/master/master_test.go | 20 ++++++++++++++++ .../apiserver/pkg/server/config_test.go | 2 ++ .../pkg/server/genericapiserver_test.go | 1 + test/integration/framework/master_utils.go | 24 +++++++++++++++++++ 4 files changed, 47 insertions(+) diff --git a/pkg/master/master_test.go b/pkg/master/master_test.go index eb70321696a..360d11931ff 100644 --- a/pkg/master/master_test.go +++ b/pkg/master/master_test.go @@ -113,6 +113,9 @@ func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, informers.SharedI TLSClientConfig: &tls.Config{}, }) + // set fake SecureServingInfo because the listener port is needed for the kubernetes service + config.GenericConfig.SecureServing = &genericapiserver.SecureServingInfo{Listener: fakeLocalhost443Listener{}} + clientset, err := kubernetes.NewForConfig(config.GenericConfig.LoopbackClientConfig) if err != nil { t.Fatalf("unable to create client set due to %v", err) @@ -122,6 +125,23 @@ func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, informers.SharedI return server, *config, sharedInformers, assert.New(t) } +type fakeLocalhost443Listener struct{} + +func (fakeLocalhost443Listener) Accept() (net.Conn, error) { + return nil, nil +} + +func (fakeLocalhost443Listener) Close() error { + return nil +} + +func (fakeLocalhost443Listener) Addr() net.Addr { + return &net.TCPAddr{ + IP: net.IPv4(127, 0, 0, 1), + Port: 443, + } +} + // TestLegacyRestStorageStrategies ensures that all Storage objects which are using the generic registry Store have // their various strategies properly wired up. This surfaced as a bug where strategies defined Export functions, but // they were never used outside of unit tests because the export strategies were not assigned inside the Store. diff --git a/staging/src/k8s.io/apiserver/pkg/server/config_test.go b/staging/src/k8s.io/apiserver/pkg/server/config_test.go index 13f0c7409e1..07fece4c7ae 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/config_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/config_test.go @@ -34,6 +34,7 @@ import ( func TestNewWithDelegate(t *testing.T) { delegateConfig := NewConfig(codecs) + delegateConfig.ExternalAddress = "192.168.10.4:443" delegateConfig.PublicAddress = net.ParseIP("192.168.10.4") delegateConfig.LegacyAPIGroupPrefixes = sets.NewString("/api") delegateConfig.LoopbackClientConfig = &rest.Config{} @@ -64,6 +65,7 @@ func TestNewWithDelegate(t *testing.T) { delegateServer.PrepareRun() wrappingConfig := NewConfig(codecs) + wrappingConfig.ExternalAddress = "192.168.10.4:443" wrappingConfig.PublicAddress = net.ParseIP("192.168.10.4") wrappingConfig.LegacyAPIGroupPrefixes = sets.NewString("/api") wrappingConfig.LoopbackClientConfig = &rest.Config{} diff --git a/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go b/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go index bde27d4833d..a3dda1a44ff 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go @@ -125,6 +125,7 @@ func testGetOpenAPIDefinitions(_ kubeopenapi.ReferenceCallback) map[string]kubeo // setUp is a convience function for setting up for (most) tests. func setUp(t *testing.T) (Config, *assert.Assertions) { config := NewConfig(codecs) + config.ExternalAddress = "192.168.10.4:443" config.PublicAddress = net.ParseIP("192.168.10.4") config.LegacyAPIGroupPrefixes = sets.NewString("/api") config.LoopbackClientConfig = &restclient.Config{} diff --git a/test/integration/framework/master_utils.go b/test/integration/framework/master_utils.go index 070c802657a..d3e6179979e 100644 --- a/test/integration/framework/master_utils.go +++ b/test/integration/framework/master_utils.go @@ -225,6 +225,10 @@ func NewIntegrationTestMasterConfig() *master.Config { masterConfig := NewMasterConfig() masterConfig.GenericConfig.PublicAddress = net.ParseIP("192.168.10.4") masterConfig.ExtraConfig.APIResourceConfigSource = master.DefaultAPIResourceConfigSource() + + // TODO: get rid of these tests or port them to secure serving + masterConfig.GenericConfig.SecureServing = &genericapiserver.SecureServingInfo{Listener: fakeLocalhost443Listener{}} + return masterConfig } @@ -291,6 +295,9 @@ func NewMasterConfig() *master.Config { genericConfig.Version = &kubeVersion genericConfig.Authorization.Authorizer = authorizerfactory.NewAlwaysAllowAuthorizer() + // TODO: get rid of these tests or port them to secure serving + genericConfig.SecureServing = &genericapiserver.SecureServingInfo{Listener: fakeLocalhost443Listener{}} + err := etcdOptions.ApplyWithStorageFactoryTo(storageFactory, genericConfig) if err != nil { panic(err) @@ -329,3 +336,20 @@ func SharedEtcd() *storagebackend.Config { cfg.ServerList = []string{GetEtcdURL()} return cfg } + +type fakeLocalhost443Listener struct{} + +func (fakeLocalhost443Listener) Accept() (net.Conn, error) { + return nil, nil +} + +func (fakeLocalhost443Listener) Close() error { + return nil +} + +func (fakeLocalhost443Listener) Addr() net.Addr { + return &net.TCPAddr{ + IP: net.IPv4(127, 0, 0, 1), + Port: 443, + } +}