Danielle Tomlinson
756325bcbd
client: Merge driver/shared/structs and client/structs
2018-11-30 10:56:45 +01:00
Danielle Tomlinson
9d4329b57a
client/driver: Remove package
2018-11-30 10:47:08 +01:00
Danielle Tomlinson
5262e42d62
fixup: executorplugin: fix rkt build
2018-11-30 10:47:08 +01:00
Danielle Tomlinson
db31a9cd99
client/driver: Vendor setEnvvars into docker_test
2018-11-30 10:46:13 +01:00
Danielle Tomlinson
75d333fe02
client: Move executor plugins into own package
2018-11-30 10:46:13 +01:00
Danielle Tomlinson
d4ef3b68d9
driver: Flatten SetEnvvars into taskdirhook
2018-11-30 10:46:13 +01:00
Danielle Tomlinson
eeb0bbae9c
client: Move driver/logging to logmon/logging
...
The logging package is used by logmon and the legacy mock_driver. Because the
legacy drivers are going away, I'm moving it here to signify its actual
ownership.
2018-11-30 10:46:13 +01:00
Danielle Tomlinson
bacd6175f5
client: Migrate DriverStats optout to drivers/shared/structs
2018-11-30 10:46:13 +01:00
Danielle Tomlinson
c36bc2ce9b
client: Remove test dependency on client/driver
2018-11-30 10:46:13 +01:00
Danielle Tomlinson
d2136e0aa7
drivers: Move client/drivers/executor to drivers/shared/executor
2018-11-30 10:46:13 +01:00
Danielle Tomlinson
6756ffd052
drivers: Move client/drivers/env to drivers/shared/env
...
As part of deprecating legacy drivers, we're moving the env package to a
new drivers/shared tree, as it is used by the modern docker and rkt
driver packages, and is useful for 3rd party plugins.
2018-11-30 10:46:13 +01:00
Nick Ethier
97c9e42fbe
Merge pull request #4922 from hashicorp/f-drivermananger
...
add generic plugin manager interface and orchestration
2018-11-28 22:17:04 -05:00
Preetha
be65442002
Merge pull request #4919 from hashicorp/f-fingerprint-attribute-type
...
Modify fingerprint interface to use typed attribute struct
2018-11-28 14:18:28 -06:00
Michael Schurter
8cdce8b257
Merge pull request #4894 from hashicorp/f-device-hook
...
Device hook and devices affect computed node class
2018-11-28 12:10:43 -06:00
Preetha Appan
829bf74aa8
modify fingerprint interface to use typed attribute struct
2018-11-28 10:01:03 -06:00
Nick Ethier
6352052211
client/plugin: remove println from plugin group func
2018-11-27 22:45:09 -05:00
Nick Ethier
6ead1a8f72
client/plugin: lint/spelling errors
2018-11-27 22:45:09 -05:00
Nick Ethier
5b11495b31
client/plugin: add generic plugin mananger interface and orchestration
2018-11-27 22:45:03 -05:00
Mahmood Ali
90daa8b2d3
Fixes in old lxc driver
2018-11-27 21:40:43 -05:00
Michael Schurter
b959d9831c
add nil check around task resources in device hook
...
Looking at NewTaskRunner I'm unsure whether TaskRunner.TaskResources
(from which req.TaskResources is set) is intended to be nil at times or
if the TODO in NewTaskRunner is intended to ensure it is always non-nil.
2018-11-27 17:25:33 -08:00
Michael Schurter
c7b4ee1546
assume that slices contain only non-nil items
2018-11-27 17:25:33 -08:00
Michael Schurter
a13607f2d9
client: properly support hook env vars
...
The old approach was incomplete. Hook env vars are now:
* persisted and restored between agent restarts
* deterministic (LWW if 2 hooks set the same key)
2018-11-27 17:25:33 -08:00
Alex Dadgar
429c5bb885
Device hook and devices affect computed node class
...
This PR introduces a device hook that retrieves the device mount
information for an allocation. It also updates the computed node class
computation to take into account devices.
TODO Fix the task runner unit test. The environment variable is being
lost even though it is being properly set in the prestart hook.
2018-11-27 17:25:33 -08:00
Michael Schurter
e660046f06
Merge pull request #4896 from hashicorp/b-prevalloc-deadlock
...
Fix deadlock in previous alloc watcher by emitting last alloc update
2018-11-27 19:07:16 -06:00
Michael Schurter
3a61c2bb37
fix test breakage caused by rebase
2018-11-27 16:34:01 -08:00
Michael Schurter
518d03d7cd
fix mispelings
2018-11-27 16:33:55 -08:00
Chris Baker
e3108507c5
Merge pull request #4891 from hashicorp/b-1150-rkt-volume-names
...
drivers/rkt: fix invalid volumes
2018-11-27 18:55:00 -05:00
Danielle Tomlinson
d361015562
Merge pull request #4909 from hashicorp/b-restart-delay
...
taskrunner: Return the restart delay correctly
2018-11-27 23:55:54 +01:00
Michael Schurter
748448970b
client: comment on importance of chan ops ordering
2018-11-27 14:11:32 -08:00
Mahmood Ali
9e1d51659b
Update client/structs/broadcaster.go
...
Co-Authored-By: schmichael <michael.schurter@gmail.com >
2018-11-27 14:06:08 -08:00
Michael Schurter
ff7df70f32
client: fix send-after-close in broadcaster
2018-11-27 14:06:08 -08:00
Michael Schurter
17a611bf98
client: check if prev alloc is already terminated
...
This is a defensive fast-path as 7c6aa0be already fixed the deadlock.
2018-11-27 14:06:08 -08:00
Michael Schurter
6d49163b12
client: emit last sent alloc to new listeners
...
Fixes a deadlock where the allocwatcher would block forever waiting for
an update from a terminal alloc.
Made the broadcaster easier to debug as well.
2018-11-27 14:06:08 -08:00
Michael Schurter
5d6d4bf290
Merge pull request #4883 from hashicorp/f-graceful-shutdown
...
Support graceful shutdowns in agent
2018-11-27 15:55:15 -06:00
Michael Schurter
f06b2a872d
client: fix races in use of goroutine group
...
The group utility struct does not support asynchronously launched
goroutines (goroutines-inside-of-goroutines), so switch those uses to a
normal go call.
This means watchNodeUpdates and watchNodeEvents may not be shutdown when
Shutdown() exits. During nomad agent shutdown this does not matter.
During tests this means a test may leak those goroutines or be unable to
know when those goroutines have exited.
Since there's no runtime impact and these goroutines do not affect alloc
state syncing it seems ok to risk leaking them.
2018-11-26 12:52:55 -08:00
Michael Schurter
0efa2d24e4
client: reuse group instead of diy'ing it
2018-11-26 12:52:31 -08:00
Michael Schurter
134c04744e
client/ar: remove useless wait ch from runTasks
...
Arguably this makes task.WaitCh() useless, but I think exposing a wait
chan from TaskRunners is a generically useful API.
2018-11-26 12:51:18 -08:00
Michael Schurter
021c0cc4bf
client: document how AR/TR Run methods behave
2018-11-26 12:50:35 -08:00
Chris Baker
790fe0b1db
modified TaskConfig to include AllocID
...
use this for volume names in drivers/rkt to address #1150
2018-11-26 18:54:26 +00:00
Nick Ethier
66674116dc
Merge pull request #4844 from hashicorp/f-docker-plugin
...
Docker driver plugin
2018-11-20 20:43:03 -05:00
Mahmood Ali
0fc84f4cfb
address review comments
2018-11-20 17:10:54 -05:00
Mahmood Ali
88c1698ef5
Emit metric counters for Vault token and renewal failures
2018-11-20 17:10:54 -05:00
Mahmood Ali
feaf6214f9
Set User-Agent header when hitting Vault API
2018-11-20 17:10:54 -05:00
Danielle Tomlinson
d73c2f3c8d
taskrunner: Return the restart delay correctly
...
We were incorrectly returning a 0 duration to the taskrunner when
determining when a task should restart. This would cause tasks to be
restarted immediately, ignoring the restart {} stanza in a users
configuration.
This commit causes us to return the restart duration to the task runner
so it may correctly delay further execution.
2018-11-20 21:52:23 +01:00
Nick Ethier
6dfa2309c4
task_runner: use NodeResources instead of deprecated struct
2018-11-20 13:46:39 -05:00
Nick Ethier
4dfcc80a0b
task_runner: use task and alloc copies instead of referencing the original pointer
2018-11-20 13:34:46 -05:00
Nick Ethier
cf69895d31
task_runner: emit event on task exit with exit result details
2018-11-19 22:59:17 -05:00
Nick Ethier
3601e4241d
plugins/driver: remove NodeResources from task Resources and use PercentTicks field for docker driver
2018-11-19 22:59:17 -05:00
Nick Ethier
9c154d7135
drivers: added NodeResources to drivers.TaskConfig
2018-11-19 22:59:16 -05:00
Nick Ethier
98b295d617
docker: started work on porting docker driver to new plugin framework
2018-11-19 22:59:15 -05:00