Create an integration test for Etcd:
- Integration test specifically spins up an Etcd cluster with three nodes.
This commit is contained in:
parent
8954aa7118
commit
a99010b8c2
4 changed files with 75 additions and 0 deletions
27
integration/etcd_test.go
Normal file
27
integration/etcd_test.go
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
"os/exec"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"fmt"
|
||||||
|
checker "github.com/vdemeester/shakers"
|
||||||
|
check "gopkg.in/check.v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (s *EtcdSuite) TestSimpleConfiguration(c *check.C) {
|
||||||
|
cmd := exec.Command(traefikBinary, "--configFile=fixtures/etcd/simple.toml")
|
||||||
|
err := cmd.Start()
|
||||||
|
c.Assert(err, checker.IsNil)
|
||||||
|
defer cmd.Process.Kill()
|
||||||
|
|
||||||
|
time.Sleep(1000 * time.Millisecond)
|
||||||
|
// TODO validate : run on 80
|
||||||
|
resp, err := http.Get("http://127.0.0.1:8000/")
|
||||||
|
|
||||||
|
// Expected no response as we did not configure anything
|
||||||
|
c.Assert(resp, checker.IsNil)
|
||||||
|
c.Assert(err, checker.NotNil)
|
||||||
|
c.Assert(err.Error(), checker.Contains, fmt.Sprintf("getsockopt: connection refused"))
|
||||||
|
}
|
10
integration/fixtures/etcd/simple.toml
Normal file
10
integration/fixtures/etcd/simple.toml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
defaultEntryPoints = ["http"]
|
||||||
|
|
||||||
|
[entryPoints]
|
||||||
|
[entryPoints.http]
|
||||||
|
address = ":8000"
|
||||||
|
|
||||||
|
logLevel = "DEBUG"
|
||||||
|
|
||||||
|
[etcd]
|
||||||
|
endpoint = "127.0.0.1:4003,127.0.0.1:4002,127.0.0.1:4001"
|
|
@ -29,6 +29,7 @@ func init() {
|
||||||
check.Suite(&DockerSuite{})
|
check.Suite(&DockerSuite{})
|
||||||
check.Suite(&ConsulSuite{})
|
check.Suite(&ConsulSuite{})
|
||||||
check.Suite(&ConsulCatalogSuite{})
|
check.Suite(&ConsulCatalogSuite{})
|
||||||
|
check.Suite(&EtcdSuite{})
|
||||||
check.Suite(&MarathonSuite{})
|
check.Suite(&MarathonSuite{})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,6 +51,13 @@ func (s *ConsulSuite) SetUpSuite(c *check.C) {
|
||||||
s.createComposeProject(c, "consul")
|
s.createComposeProject(c, "consul")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Etcd test suites (using libcompose)
|
||||||
|
type EtcdSuite struct{ BaseSuite }
|
||||||
|
|
||||||
|
func (s *EtcdSuite) SetUpSuite(c *check.C) {
|
||||||
|
s.createComposeProject(c, "etcd")
|
||||||
|
}
|
||||||
|
|
||||||
// Marathon test suites (using libcompose)
|
// Marathon test suites (using libcompose)
|
||||||
type MarathonSuite struct{ BaseSuite }
|
type MarathonSuite struct{ BaseSuite }
|
||||||
|
|
||||||
|
|
30
integration/resources/compose/etcd.yml
Normal file
30
integration/resources/compose/etcd.yml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
etcd1:
|
||||||
|
image: quay.io/coreos/etcd:v2.2.0
|
||||||
|
net: "host"
|
||||||
|
command: >
|
||||||
|
--name etcd1
|
||||||
|
--listen-peer-urls http://localhost:7001
|
||||||
|
--listen-client-urls http://localhost:4001
|
||||||
|
--initial-advertise-peer-urls http://localhost:7001
|
||||||
|
--advertise-client-urls http://localhost:4001
|
||||||
|
--initial-cluster etcd1=http://localhost:7001,etcd2=http://localhost:7002,etcd3=http://localhost:7003
|
||||||
|
etcd2:
|
||||||
|
image: quay.io/coreos/etcd:v2.2.0
|
||||||
|
net: "host"
|
||||||
|
command: >
|
||||||
|
--name etcd2
|
||||||
|
--listen-peer-urls http://localhost:7002
|
||||||
|
--listen-client-urls http://localhost:4002
|
||||||
|
--initial-advertise-peer-urls http://localhost:7002
|
||||||
|
--advertise-client-urls http://localhost:4002
|
||||||
|
--initial-cluster etcd1=http://localhost:7001,etcd2=http://localhost:7002,etcd3=http://localhost:7003
|
||||||
|
etcd3:
|
||||||
|
image: quay.io/coreos/etcd:v2.2.0
|
||||||
|
net: "host"
|
||||||
|
command: >
|
||||||
|
--name etcd3
|
||||||
|
--listen-peer-urls http://localhost:7003
|
||||||
|
--listen-client-urls http://localhost:4003
|
||||||
|
--initial-advertise-peer-urls http://localhost:7003
|
||||||
|
--advertise-client-urls http://localhost:4003
|
||||||
|
--initial-cluster etcd1=http://localhost:7001,etcd2=http://localhost:7002,etcd3=http://localhost:7003
|
Loading…
Reference in a new issue