2edbdfc8be
The e2e framework instantiates clients for Nomad/Consul but the provisioning of the actual Nomad cluster is left to Terraform. The Terraform provisioning process uses `remote-exec` to deploy specific versions of Nomad so that we don't have to bake an AMI every time we want to test a new version. But Terraform treats the resulting instances as immutable, so we can't use the same tooling to update the version of Nomad in-place. This is a prerequisite for upgrade testing. This changeset extends the e2e framework to provide the option of deploying Nomad (and, in the future, Consul/Vault) with specific versions to running infrastructure. This initial implementation is focused on deploying to a single cluster via `ssh` (because that's our current need), but provides interfaces to hook the test run at the start of the run, the start of each suite, or the start of a given test case. Terraform work includes: * provides Terraform output that written to JSON used by the framework to configure provisioning via `terraform output provisioning`. * provides Terraform output that can be used by test operators to configure their shell via `$(terraform output environment)` * drops `remote-exec` provisioning steps from Terraform * makes changes to the deployment scripts to ensure they can be run multiple times w/ different versions against the same host.
33 lines
987 B
Go
33 lines
987 B
Go
// This package exists to wrap our e2e provisioning and test framework so that it
|
|
// can be run via 'go test ./e2e'. See './framework/framework.go'
|
|
package e2e
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/nomad/e2e/framework"
|
|
|
|
_ "github.com/hashicorp/nomad/e2e/affinities"
|
|
_ "github.com/hashicorp/nomad/e2e/clientstate"
|
|
_ "github.com/hashicorp/nomad/e2e/connect"
|
|
_ "github.com/hashicorp/nomad/e2e/consul"
|
|
_ "github.com/hashicorp/nomad/e2e/consultemplate"
|
|
_ "github.com/hashicorp/nomad/e2e/deployment"
|
|
_ "github.com/hashicorp/nomad/e2e/example"
|
|
_ "github.com/hashicorp/nomad/e2e/hostvolumes"
|
|
_ "github.com/hashicorp/nomad/e2e/metrics"
|
|
_ "github.com/hashicorp/nomad/e2e/nomad09upgrade"
|
|
_ "github.com/hashicorp/nomad/e2e/nomadexec"
|
|
_ "github.com/hashicorp/nomad/e2e/spread"
|
|
_ "github.com/hashicorp/nomad/e2e/taskevents"
|
|
)
|
|
|
|
func TestE2E(t *testing.T) {
|
|
if os.Getenv("NOMAD_E2E") == "" {
|
|
t.Skip("Skipping e2e tests, NOMAD_E2E not set")
|
|
} else {
|
|
framework.Run(t)
|
|
}
|
|
}
|