mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 15:25:57 +00:00
Merge pull request #22919 from liggitt/http-test-etcd
Automatic merge from submit-queue Allow starting test etcd with http There are cases where we'll want to start a test etcd without https (external tools monitoring tests, tests with lots of parallelism, etc). This makes it an option. Helps with https://github.com/kubernetes/kubernetes/issues/23127 <!-- Reviewable:start --> --- This change is [<img src="http://reviewable.k8s.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](http://reviewable.k8s.io/reviews/kubernetes/kubernetes/22919) <!-- Reviewable:end -->
This commit is contained in:
commit
f9cadb290b
@ -69,7 +69,7 @@ import (
|
|||||||
|
|
||||||
// setUp is a convience function for setting up for (most) tests.
|
// setUp is a convience function for setting up for (most) tests.
|
||||||
func setUp(t *testing.T) (*Master, *etcdtesting.EtcdTestServer, Config, *assert.Assertions) {
|
func setUp(t *testing.T) (*Master, *etcdtesting.EtcdTestServer, Config, *assert.Assertions) {
|
||||||
server := etcdtesting.NewEtcdTestClientServer(t)
|
server := etcdtesting.NewUnsecuredEtcdTestClientServer(t)
|
||||||
|
|
||||||
master := &Master{
|
master := &Master{
|
||||||
GenericAPIServer: &genericapiserver.GenericAPIServer{},
|
GenericAPIServer: &genericapiserver.GenericAPIServer{},
|
||||||
|
@ -37,7 +37,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func NewEtcdStorage(t *testing.T, group string) (storage.Interface, *etcdtesting.EtcdTestServer) {
|
func NewEtcdStorage(t *testing.T, group string) (storage.Interface, *etcdtesting.EtcdTestServer) {
|
||||||
server := etcdtesting.NewEtcdTestClientServer(t)
|
server := etcdtesting.NewUnsecuredEtcdTestClientServer(t)
|
||||||
storage := etcdstorage.NewEtcdStorage(server.Client, testapi.Groups[group].StorageCodec(), etcdtest.PathPrefix(), false, etcdtest.DeserializationCacheSize)
|
storage := etcdstorage.NewEtcdStorage(server.Client, testapi.Groups[group].StorageCodec(), etcdtest.PathPrefix(), false, etcdtest.DeserializationCacheSize)
|
||||||
return storage, server
|
return storage, server
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,7 @@ func newHttpTransport(t *testing.T, certFile, keyFile, caFile string) etcd.Cance
|
|||||||
}
|
}
|
||||||
|
|
||||||
// configureTestCluster will set the params to start an etcd server
|
// configureTestCluster will set the params to start an etcd server
|
||||||
func configureTestCluster(t *testing.T, name string) *EtcdTestServer {
|
func configureTestCluster(t *testing.T, name string, https bool) *EtcdTestServer {
|
||||||
var err error
|
var err error
|
||||||
m := &EtcdTestServer{}
|
m := &EtcdTestServer{}
|
||||||
|
|
||||||
@ -119,28 +119,37 @@ func configureTestCluster(t *testing.T, name string) *EtcdTestServer {
|
|||||||
baseDir = os.TempDir()
|
baseDir = os.TempDir()
|
||||||
}
|
}
|
||||||
|
|
||||||
m.CertificatesDir, err = ioutil.TempDir(baseDir, "etcd_certificates")
|
if https {
|
||||||
if err != nil {
|
m.CertificatesDir, err = ioutil.TempDir(baseDir, "etcd_certificates")
|
||||||
t.Fatal(err)
|
if err != nil {
|
||||||
}
|
t.Fatal(err)
|
||||||
m.CertFile = path.Join(m.CertificatesDir, "etcdcert.pem")
|
}
|
||||||
if err = ioutil.WriteFile(m.CertFile, []byte(CertFileContent), 0644); err != nil {
|
m.CertFile = path.Join(m.CertificatesDir, "etcdcert.pem")
|
||||||
t.Fatal(err)
|
if err = ioutil.WriteFile(m.CertFile, []byte(CertFileContent), 0644); err != nil {
|
||||||
}
|
t.Fatal(err)
|
||||||
m.KeyFile = path.Join(m.CertificatesDir, "etcdkey.pem")
|
}
|
||||||
if err = ioutil.WriteFile(m.KeyFile, []byte(KeyFileContent), 0644); err != nil {
|
m.KeyFile = path.Join(m.CertificatesDir, "etcdkey.pem")
|
||||||
t.Fatal(err)
|
if err = ioutil.WriteFile(m.KeyFile, []byte(KeyFileContent), 0644); err != nil {
|
||||||
}
|
t.Fatal(err)
|
||||||
m.CAFile = path.Join(m.CertificatesDir, "ca.pem")
|
}
|
||||||
if err = ioutil.WriteFile(m.CAFile, []byte(CAFileContent), 0644); err != nil {
|
m.CAFile = path.Join(m.CertificatesDir, "ca.pem")
|
||||||
t.Fatal(err)
|
if err = ioutil.WriteFile(m.CAFile, []byte(CAFileContent), 0644); err != nil {
|
||||||
}
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
cln := newSecuredLocalListener(t, m.CertFile, m.KeyFile, m.CAFile)
|
cln := newSecuredLocalListener(t, m.CertFile, m.KeyFile, m.CAFile)
|
||||||
m.ClientListeners = []net.Listener{cln}
|
m.ClientListeners = []net.Listener{cln}
|
||||||
m.ClientURLs, err = types.NewURLs([]string{"https://" + cln.Addr().String()})
|
m.ClientURLs, err = types.NewURLs([]string{"https://" + cln.Addr().String()})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cln := newLocalListener(t)
|
||||||
|
m.ClientListeners = []net.Listener{cln}
|
||||||
|
m.ClientURLs, err = types.NewURLs([]string{"http://" + cln.Addr().String()})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m.Name = name
|
m.Name = name
|
||||||
@ -225,14 +234,16 @@ func (m *EtcdTestServer) Terminate(t *testing.T) {
|
|||||||
if err := os.RemoveAll(m.ServerConfig.DataDir); err != nil {
|
if err := os.RemoveAll(m.ServerConfig.DataDir); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
if err := os.RemoveAll(m.CertificatesDir); err != nil {
|
if len(m.CertificatesDir) > 0 {
|
||||||
t.Fatal(err)
|
if err := os.RemoveAll(m.CertificatesDir); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewEtcdTestClientServer creates a new client and server for testing
|
// NewEtcdTestClientServer creates a new client and server for testing
|
||||||
func NewEtcdTestClientServer(t *testing.T) *EtcdTestServer {
|
func NewEtcdTestClientServer(t *testing.T) *EtcdTestServer {
|
||||||
server := configureTestCluster(t, "foo")
|
server := configureTestCluster(t, "foo", true)
|
||||||
err := server.launch(t)
|
err := server.launch(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Failed to start etcd server error=%v", err)
|
t.Fatalf("Failed to start etcd server error=%v", err)
|
||||||
@ -256,3 +267,29 @@ func NewEtcdTestClientServer(t *testing.T) *EtcdTestServer {
|
|||||||
}
|
}
|
||||||
return server
|
return server
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewUnsecuredEtcdTestClientServer creates a new client and server for testing
|
||||||
|
func NewUnsecuredEtcdTestClientServer(t *testing.T) *EtcdTestServer {
|
||||||
|
server := configureTestCluster(t, "foo", false)
|
||||||
|
err := server.launch(t)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to start etcd server error=%v", err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
cfg := etcd.Config{
|
||||||
|
Endpoints: server.ClientURLs.StringSlice(),
|
||||||
|
Transport: newHttpTransport(t, server.CertFile, server.KeyFile, server.CAFile),
|
||||||
|
}
|
||||||
|
server.Client, err = etcd.New(cfg)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Unexpected error in NewUnsecuredEtcdTestClientServer (%v)", err)
|
||||||
|
server.Terminate(t)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if err := server.waitUntilUp(); err != nil {
|
||||||
|
t.Errorf("Unexpected error in waitUntilUp (%v)", err)
|
||||||
|
server.Terminate(t)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return server
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user