2019-09-03 22:46:03 +00:00
|
|
|
package connect
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
|
|
|
|
"github.com/hashicorp/nomad/e2e/e2eutil"
|
|
|
|
"github.com/hashicorp/nomad/e2e/framework"
|
|
|
|
"github.com/hashicorp/nomad/helper/uuid"
|
|
|
|
)
|
|
|
|
|
|
|
|
type ConnectE2ETest struct {
|
|
|
|
framework.TC
|
|
|
|
jobIds []string
|
|
|
|
}
|
|
|
|
|
|
|
|
func init() {
|
2020-01-13 16:13:07 +00:00
|
|
|
// connect tests without Consul ACLs enabled
|
2020-02-04 02:46:33 +00:00
|
|
|
framework.AddSuites(&framework.TestSuite{
|
|
|
|
Component: "Connect",
|
|
|
|
CanRunLocal: true,
|
|
|
|
Consul: true,
|
|
|
|
Cases: []framework.TestCase{
|
|
|
|
new(ConnectE2ETest),
|
|
|
|
new(ConnectClientStateE2ETest),
|
|
|
|
},
|
|
|
|
})
|
2020-01-13 16:13:07 +00:00
|
|
|
|
|
|
|
// connect tests with Consul ACLs enabled
|
|
|
|
framework.AddSuites(&framework.TestSuite{
|
|
|
|
Component: "ConnectACLs",
|
|
|
|
CanRunLocal: false,
|
|
|
|
Consul: true,
|
2020-01-28 22:33:59 +00:00
|
|
|
Parallel: false,
|
2020-01-13 16:13:07 +00:00
|
|
|
Cases: []framework.TestCase{
|
|
|
|
new(ConnectACLsE2ETest),
|
|
|
|
},
|
|
|
|
})
|
2019-09-03 22:46:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (tc *ConnectE2ETest) BeforeAll(f *framework.F) {
|
|
|
|
e2eutil.WaitForLeader(f.T(), tc.Nomad())
|
|
|
|
e2eutil.WaitForNodesReady(f.T(), tc.Nomad(), 2)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (tc *ConnectE2ETest) AfterEach(f *framework.F) {
|
|
|
|
if os.Getenv("NOMAD_TEST_SKIPCLEANUP") == "1" {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, id := range tc.jobIds {
|
|
|
|
tc.Nomad().Jobs().Deregister(id, true, nil)
|
|
|
|
}
|
|
|
|
tc.jobIds = []string{}
|
|
|
|
tc.Nomad().System().GarbageCollect()
|
|
|
|
}
|
|
|
|
|
2020-06-19 18:03:10 +00:00
|
|
|
func connectJobID() string {
|
2020-07-10 15:24:13 +00:00
|
|
|
return "connect" + uuid.Generate()[0:8]
|
2020-06-19 18:03:10 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// TestConnectDemo tests the demo job file used in Connect Integration examples.
|
2019-09-03 22:46:03 +00:00
|
|
|
func (tc *ConnectE2ETest) TestConnectDemo(f *framework.F) {
|
|
|
|
t := f.T()
|
|
|
|
|
2020-06-19 18:03:10 +00:00
|
|
|
jobID := connectJobID()
|
|
|
|
tc.jobIds = append(tc.jobIds, jobID)
|
2019-09-03 22:46:03 +00:00
|
|
|
|
2020-06-19 18:03:10 +00:00
|
|
|
allocs := e2eutil.RegisterAndWaitForAllocs(t, tc.Nomad(), demoConnectJob, jobID, "")
|
|
|
|
allocIDs := e2eutil.AllocIDsFromAllocationListStubs(allocs)
|
|
|
|
e2eutil.WaitForAllocsRunning(t, tc.Nomad(), allocIDs)
|
|
|
|
}
|
2019-09-03 22:46:03 +00:00
|
|
|
|
2020-06-19 18:03:10 +00:00
|
|
|
// TestConnectNativeDemo tests the demo job file used in Connect Native Integration examples.
|
|
|
|
func (tc *ConnectE2ETest) TestConnectNativeDemo(f *framework.F) {
|
|
|
|
t := f.T()
|
2019-09-03 22:46:03 +00:00
|
|
|
|
2020-06-19 18:03:10 +00:00
|
|
|
jobID := connectJobID()
|
|
|
|
tc.jobIds = append(tc.jobIds, jobID)
|
2019-09-03 22:46:03 +00:00
|
|
|
|
2020-06-19 18:03:10 +00:00
|
|
|
allocs := e2eutil.RegisterAndWaitForAllocs(t, tc.Nomad(), demoConnectNativeJob, jobID, "")
|
|
|
|
allocIDs := e2eutil.AllocIDsFromAllocationListStubs(allocs)
|
|
|
|
e2eutil.WaitForAllocsRunning(t, tc.Nomad(), allocIDs)
|
2019-09-03 22:46:03 +00:00
|
|
|
}
|