Commit graph

13712 commits

Author SHA1 Message Date
Mahmood Ali 64f80343fc drivers: re-export ResourceUsage structs
Re-export the ResourceUsage structs in drivers package to avoid drivers
directly depending on the internal client/structs package directly.

I attempted moving the structs to drivers, but that caused some import
cycles that was a bit hard to disentagle.  Alternatively, I added an
alias here that's sufficient for our purposes of avoiding external
drivers depend on internal packages, while allowing us to restructure
packages in future without breaking source compatibility.
2019-01-08 09:11:47 -05:00
Mahmood Ali 916a40bb9e move cstructs.DeviceNetwork to drivers pkg 2019-01-08 09:11:47 -05:00
Mahmood Ali 9369b123de use drivers.FSIsolation 2019-01-08 09:11:47 -05:00
Mahmood Ali c10a8fd7fe remove deprecated allocrunner 2019-01-08 09:11:47 -05:00
Mahmood Ali f475a56087 remove always false parameter
Simplify allocDir.Build() function to avoid depending on client/structs,
and remove a parameter that's always set to `false`.

The motivation here is to avoid a dependency cycle between
drivers/cstructs and alloc_dir.
2019-01-08 09:11:47 -05:00
Danielle Tomlinson b1da899af2
Merge pull request #5161 from hashicorp/dani/update-net-ctx
deps: Update x/net/context
2019-01-08 15:09:40 +01:00
Danielle Tomlinson 97c7bd5b80
Merge pull request #5042 from hashicorp/dani/f-shutdowns
plugins: Shutdown internal plugins
2019-01-08 15:09:25 +01:00
Danielle Tomlinson a9b9ad34dc drivers: Implement InternalPluginDriver interface
This implements the InternalPluginDriver interface in each driver, and
calls the cancellation fn for their respective eventers.

This fixes a per task goroutine leak during test suite execution.
2019-01-08 13:49:31 +01:00
Danielle Tomlinson 8df20f49f7 drivers: Add internal interface for Shutdown
This allows us to correctly terminate internal state during runs of the
nomad test suite, e.g closing eventer contexts correctly.
2019-01-08 13:48:49 +01:00
Danielle Tomlinson 734574bc25 deps: Update x/net/context
This allows std context to be used in place of an x/net/context and
unblocks updating to the latest version of go-plugin.
2019-01-08 13:45:10 +01:00
Alex Dadgar edf132758d
Merge pull request #5152 from hashicorp/f-recover
Task runner recovers from external plugin exiting
2019-01-07 15:27:33 -08:00
Alex Dadgar 0106f23aaa Review comments 2019-01-07 14:50:28 -08:00
Preetha afd7c3cfc6
Merge pull request #5023 from nrvale0/tf-autojoin-fix
fix for user-specified auto-join tags
2019-01-07 16:49:48 -06:00
Alex Dadgar 79cfe26021 vet 2019-01-07 14:49:41 -08:00
Alex Dadgar 8a35d7b1dd Test recovery 2019-01-07 14:49:41 -08:00
Alex Dadgar f40f8ce02e Mock driver has recovery, stats 2019-01-07 14:49:40 -08:00
Alex Dadgar fb5dc9058e regenerate protos 2019-01-07 14:49:40 -08:00
Alex Dadgar 3f24e4d6ca comments 2019-01-07 14:49:40 -08:00
Alex Dadgar 44dca19012 Fix hooks 2019-01-07 14:49:40 -08:00
Alex Dadgar c9825a9c36 recover 2019-01-07 14:49:40 -08:00
Alex Dadgar 6c6e035dba add docker logger to separate main 2019-01-07 14:49:40 -08:00
Alex Dadgar c3f05f2476 Don't log event error on driver shutdown 2019-01-07 14:49:40 -08:00
Alex Dadgar 39542b4cf0 rkt fingerprint logs once 2019-01-07 14:49:40 -08:00
Alex Dadgar a6b36df4de remove nil logger 2019-01-07 14:48:01 -08:00
Michael Schurter d686ad51fb
Merge pull request #5043 from hashicorp/b-taskenv-conflicts
taskenv: have maps take precedence over primitives
2019-01-07 12:34:48 -08:00
Danielle Tomlinson 023223c782
Merge pull request #5148 from hashicorp/dani/f-e2e-consul
e2e: Add consultemplate test
2019-01-07 17:54:20 +01:00
Danielle Tomlinson d195680ec1 e2e: Add consultemplate test
This adds a basic test for consul template, that verifies the behaviour
of consul-template with task blocking and restarting of tasks
2019-01-07 17:53:55 +01:00
Preetha ec39dd2383
Merge pull request #5156 from hashicorp/f-standard-driver-health-messages
Standardize driver health description messages for all drivers
2019-01-07 09:49:28 -06:00
Preetha Appan 2fb2de3cef
Standardize driver health description messages for all drivers 2019-01-06 22:06:38 -06:00
Preetha f5b71ee5c9
Merge pull request #5155 from hashicorp/b-remove-rkt-logging
remove unnecessary logging in rkt driver fingerprint method
2019-01-06 21:37:58 -06:00
Preetha Appan 76c09c7cbf
remove unnecessary logging in rkt driver fingerprint method 2019-01-06 20:59:20 -06:00
Danielle Tomlinson c13dc7f110
Merge pull request #5149 from hashicorp/dani/e2e-friendly
e2e: Output setup instructions after terraform
2019-01-04 22:14:03 +01:00
Mahmood Ali 91d761e832
Merge pull request #5150 from hashicorp/b-task-received-event
taskrunner: emit TaskReceived event
2019-01-04 14:58:39 -05:00
Mahmood Ali cd3c6cf60b taskrunner: emit TaskReceived event
Preserve pre-0.9, where task runner emits `Received: Task received by
client` event on task runner creation.
2019-01-04 14:32:29 -05:00
Chris Baker e0d8b96b5b
Merge pull request #5146 from hashicorp/b-1173-log-spam
updated to latest hashicorp/raft and hashicorp/memberlist to pull
2019-01-04 12:55:18 -05:00
Chris Baker bd0f2c854a Merge branch 'master' of github.com:hashicorp/nomad into b-1173-log-spam 2019-01-04 16:56:34 +00:00
Chris Baker 4109306fff updated serf along with raft 2019-01-04 16:56:26 +00:00
Danielle Tomlinson 33547c99e7 e2e: Output setup instructions after terraform
This adds a message that provides environment setup instructions for
running e2e tests after running terraform apply.

This allows copy/pasting exports, rather than manually constructing
them.
2019-01-04 16:55:14 +01:00
Mahmood Ali 56e3171310
driver/exec: use dedicated /dev mount (#5147)
Use a dedicated /dev mount so we can inject more devices if necessary,
and avoid allowing a container to contaminate host /dev.

Follow up to https://github.com/hashicorp/nomad/pull/5143 - and fixes master.
2019-01-04 10:36:05 -05:00
Chris Baker e2e83feb5d Merge branch 'master' of github.com:hashicorp/nomad into b-1173-log-spam 2019-01-04 14:59:26 +00:00
Chris Baker 11c4496a4d updated to latest hashicorp/raft and hashicorp/memberlist to pull
upstream fixes for accept-loop error handling
2019-01-04 14:01:36 +00:00
Mahmood Ali a9f6288fe3
Merge pull request #5143 from hashicorp/b-exec-regressions
Restore some `exec` behavior
2019-01-04 08:58:40 -05:00
Mahmood Ali 606ab23235 goimport file 2019-01-04 08:53:50 -05:00
Preetha Appan 378dd74d2a
Added waiting on client node ready state before running e2e tests 2019-01-03 16:16:20 -06:00
Preetha 1e69a6645f
Update README.md 2019-01-03 16:15:59 -06:00
Preetha 5501ff42c9
Update README.md 2019-01-03 15:31:19 -06:00
Michael Schurter 875e231511
Merge pull request #5038 from hashicorp/b-drivermanager-tests
WIP: fix failing tests caused by async driver manager
2019-01-03 12:32:18 -08:00
Preetha Appan f458cb63dd
Increase alloc wait timeout in e2e test 2019-01-03 14:02:02 -06:00
Mahmood Ali 5b0702c9eb drivers/exec: bind mount /dev into rootfs
Restores pre-0.9 behavior, where Nomad makes /dev available to exec
task.  Switching to libcontainer, we accidentally made only a small
subset available.

Here, we err on the side of preserving behavior of 0.8, instead of going
for the sensible route, where only a reasonable subset of devices is
mounted by default and user can opt to request more.
2019-01-03 14:29:18 -05:00
Mahmood Ali d23f47736c drivers/exec: run as nobody by default
libcontainer based drivers (e.g. exec, java) should default to running
processes as `nobody` [1]; but libcontainer treats empty user as `root`
in our case (either because of default or due to `root` being current
user).

[1] 94c28a4c6c/website/source/docs/job-specification/task.html.md (task-parameters)
2019-01-03 14:29:18 -05:00