Skip to content

Commit 17e8389

Browse files
liggittdeads2k
authored andcommitted
UPSTREAM: 22919: Allow starting test etcd with http
1 parent c6be76b commit 17e8389

File tree

3 files changed

+65
-27
lines changed

3 files changed

+65
-27
lines changed

pkg/master/master_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ import (
5757

5858
// setUp is a convience function for setting up for (most) tests.
5959
func setUp(t *testing.T) (Master, *etcdtesting.EtcdTestServer, Config, *assert.Assertions) {
60-
server := etcdtesting.NewEtcdTestClientServer(t)
60+
server := etcdtesting.NewUnsecuredEtcdTestClientServer(t)
6161

6262
master := Master{
6363
GenericAPIServer: &genericapiserver.GenericAPIServer{},

pkg/registry/registrytest/etcd.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ import (
3737
)
3838

3939
func NewEtcdStorage(t *testing.T, group string) (storage.Interface, *etcdtesting.EtcdTestServer) {
40-
server := etcdtesting.NewEtcdTestClientServer(t)
40+
// Use the unsecured etcd for these tests, since they spawn lots of connections and can hit the 1 minute unit test timeout
41+
server := etcdtesting.NewUnsecuredEtcdTestClientServer(t)
4142
storage := etcdstorage.NewEtcdStorage(server.Client, testapi.Groups[group].Codec(), etcdtest.PathPrefix(), false)
4243
return storage, server
4344
}

pkg/storage/etcd/testing/utils.go

+62-25
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ func newHttpTransport(t *testing.T, certFile, keyFile, caFile string) etcd.Cance
9696
}
9797

9898
// configureTestCluster will set the params to start an etcd server
99-
func configureTestCluster(t *testing.T, name string) *EtcdTestServer {
99+
func configureTestCluster(t *testing.T, name string, https bool) *EtcdTestServer {
100100
var err error
101101
m := &EtcdTestServer{}
102102

@@ -107,28 +107,37 @@ func configureTestCluster(t *testing.T, name string) *EtcdTestServer {
107107
t.Fatal(err)
108108
}
109109

110-
m.CertificatesDir, err = ioutil.TempDir(os.TempDir(), "etcd_certificates")
111-
if err != nil {
112-
t.Fatal(err)
113-
}
114-
m.CertFile = path.Join(m.CertificatesDir, "etcdcert.pem")
115-
if err = ioutil.WriteFile(m.CertFile, []byte(CertFileContent), 0644); err != nil {
116-
t.Fatal(err)
117-
}
118-
m.KeyFile = path.Join(m.CertificatesDir, "etcdkey.pem")
119-
if err = ioutil.WriteFile(m.KeyFile, []byte(KeyFileContent), 0644); err != nil {
120-
t.Fatal(err)
121-
}
122-
m.CAFile = path.Join(m.CertificatesDir, "ca.pem")
123-
if err = ioutil.WriteFile(m.CAFile, []byte(CAFileContent), 0644); err != nil {
124-
t.Fatal(err)
125-
}
110+
if https {
111+
m.CertificatesDir, err = ioutil.TempDir(os.TempDir(), "etcd_certificates")
112+
if err != nil {
113+
t.Fatal(err)
114+
}
115+
m.CertFile = path.Join(m.CertificatesDir, "etcdcert.pem")
116+
if err = ioutil.WriteFile(m.CertFile, []byte(CertFileContent), 0644); err != nil {
117+
t.Fatal(err)
118+
}
119+
m.KeyFile = path.Join(m.CertificatesDir, "etcdkey.pem")
120+
if err = ioutil.WriteFile(m.KeyFile, []byte(KeyFileContent), 0644); err != nil {
121+
t.Fatal(err)
122+
}
123+
m.CAFile = path.Join(m.CertificatesDir, "ca.pem")
124+
if err = ioutil.WriteFile(m.CAFile, []byte(CAFileContent), 0644); err != nil {
125+
t.Fatal(err)
126+
}
126127

127-
cln := newSecuredLocalListener(t, m.CertFile, m.KeyFile, m.CAFile)
128-
m.ClientListeners = []net.Listener{cln}
129-
m.ClientURLs, err = types.NewURLs([]string{"https://" + cln.Addr().String()})
130-
if err != nil {
131-
t.Fatal(err)
128+
cln := newSecuredLocalListener(t, m.CertFile, m.KeyFile, m.CAFile)
129+
m.ClientListeners = []net.Listener{cln}
130+
m.ClientURLs, err = types.NewURLs([]string{"https://" + cln.Addr().String()})
131+
if err != nil {
132+
t.Fatal(err)
133+
}
134+
} else {
135+
cln := newLocalListener(t)
136+
m.ClientListeners = []net.Listener{cln}
137+
m.ClientURLs, err = types.NewURLs([]string{"http://" + cln.Addr().String()})
138+
if err != nil {
139+
t.Fatal(err)
140+
}
132141
}
133142

134143
m.Name = name
@@ -214,14 +223,16 @@ func (m *EtcdTestServer) Terminate(t *testing.T) {
214223
if err := os.RemoveAll(m.ServerConfig.DataDir); err != nil {
215224
t.Fatal(err)
216225
}
217-
if err := os.RemoveAll(m.CertificatesDir); err != nil {
218-
t.Fatal(err)
226+
if len(m.CertificatesDir) > 0 {
227+
if err := os.RemoveAll(m.CertificatesDir); err != nil {
228+
t.Fatal(err)
229+
}
219230
}
220231
}
221232

222233
// NewEtcdTestClientServer creates a new client and server for testing
223234
func NewEtcdTestClientServer(t *testing.T) *EtcdTestServer {
224-
server := configureTestCluster(t, "foo")
235+
server := configureTestCluster(t, "foo", true)
225236
err := server.launch(t)
226237
if err != nil {
227238
t.Fatalf("Failed to start etcd server error=%v", err)
@@ -244,3 +255,29 @@ func NewEtcdTestClientServer(t *testing.T) *EtcdTestServer {
244255
}
245256
return server
246257
}
258+
259+
// NewUnsecuredEtcdTestClientServer creates a new client and server for testing
260+
func NewUnsecuredEtcdTestClientServer(t *testing.T) *EtcdTestServer {
261+
server := configureTestCluster(t, "foo", false)
262+
err := server.launch(t)
263+
if err != nil {
264+
t.Fatal("Failed to start etcd server error=%v", err)
265+
return nil
266+
}
267+
cfg := etcd.Config{
268+
Endpoints: server.ClientURLs.StringSlice(),
269+
Transport: newHttpTransport(t, server.CertFile, server.KeyFile, server.CAFile),
270+
}
271+
server.Client, err = etcd.New(cfg)
272+
if err != nil {
273+
t.Errorf("Unexpected error in NewUnsecuredEtcdTestClientServer (%v)", err)
274+
server.Terminate(t)
275+
return nil
276+
}
277+
if err := server.waitUntilUp(); err != nil {
278+
t.Errorf("Unexpected error in waitUntilUp (%v)", err)
279+
server.Terminate(t)
280+
return nil
281+
}
282+
return server
283+
}

0 commit comments

Comments
 (0)