integration tests: add env. variable for etcd URL.

Many integration tests delete all keys in etcd as part of their cleanup.
To run these tests in parallel we must run several etcd daemons, each on
different port and pass etcd url to the test suite.
This commit is contained in:
Jan Safranek 2016-06-20 10:40:49 +02:00
parent 0730ffbff7
commit a114df7d59
3 changed files with 11 additions and 3 deletions

View File

@ -28,6 +28,7 @@ import (
"k8s.io/kubernetes/pkg/storage"
etcdstorage "k8s.io/kubernetes/pkg/storage/etcd"
"k8s.io/kubernetes/pkg/storage/etcd/etcdtest"
"k8s.io/kubernetes/pkg/util/env"
)
// If you need to start an etcd instance by hand, you also need to insert a key
@ -37,9 +38,15 @@ func init() {
RequireEtcd()
}
func GetEtcdURLFromEnv() string {
url := env.GetEnvAsStringOrFallback("KUBE_INTEGRATION_ETCD_URL", "http://127.0.0.1:4001")
glog.V(4).Infof("Using KUBE_INTEGRATION_ETCD_URL=%q", url)
return url
}
func NewEtcdClient() etcd.Client {
cfg := etcd.Config{
Endpoints: []string{"http://127.0.0.1:4001"},
Endpoints: []string{GetEtcdURLFromEnv()},
}
client, err := etcd.New(cfg)
if err != nil {

View File

@ -154,7 +154,7 @@ func startMasterOrDie(masterConfig *master.Config) (*master.Master, *httptest.Se
// Returns a basic master config.
func NewMasterConfig() *master.Config {
config := storagebackend.Config{
ServerList: []string{"http://127.0.0.1:4001"},
ServerList: []string{GetEtcdURLFromEnv()},
// This causes the integration tests to exercise the etcd
// prefix code, so please don't change without ensuring
// sufficient coverage in other ways.

View File

@ -27,11 +27,12 @@ import (
"github.com/golang/glog"
"golang.org/x/net/context"
client "k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/test/integration/framework"
)
func newEtcdClient() etcd.Client {
cfg := etcd.Config{
Endpoints: []string{"http://127.0.0.1:4001"},
Endpoints: []string{framework.GetEtcdURLFromEnv()},
}
client, err := etcd.New(cfg)
if err != nil {