Files
nomad/e2e/v3
Seth Hoenig 5987ba434f e2ev3: wait for logs to become ready (#19067)
Just because an alloc is running does not mean nomad is ready to serve
task logs. In a test case where you immediatly read logs after starting
a task, it could be that nomad responds with "no logs found" when you
try to read logs, in which case you just need to wait longer. Do so in
the v3 TaskLogs helper function.
2023-11-10 12:43:16 -06:00
..

e2e | v3

(!) These packages are experimental and breaking changes will be made. Also, expect bugs. Like a lot of bugs. Especially on non-happy paths.

The e2e/v3/ set of packages provide utilities for creating Nomad e2e tests in a way that is convenient, reliable, and debuggable.

  • v3/cluster3 - establish and verify the state of the cluster
  • v3/jobs3 - manage nomad jobs and wait for deployments, etc.
  • v3/namespaces3 - manage nomad namespaces
  • v3/util3 - helper methods specific to the v3 utilities

Examples

simple

The simplest example, where we expect a cluster with a leader and at least one Linux client in a ready state. The test case will submit the sleep.hcl job, wait for the deployment to become succesfull (or fail / timeout), then cleanup the job.

func TestExample(t *testing.T) {
    cluster3.Establish(t,
        cluster3.Leader(),
        cluster3.LinuxClients(1),
    )

    t.Run("testSleep", testSleep)
}

func testSleep(t *testing.T) {
    cleanup := jobs3.Submit(t, "./input/sleep.hcl")
    t.Cleanup(cleanup)
}