Danielle Tomlinson
35a4790740
Merge pull request #5142 from hashicorp/dani/cleanup-allocrunner-logs
...
allocrunner: Standardised discard logs
2019-01-03 18:40:48 +01:00
Preetha
8078cb79f0
Merge pull request #5140 from hashicorp/dani/b-taskrunner
...
taskrunner: Persist environment from hooks
2019-01-03 09:30:52 -06:00
Danielle Tomlinson
29196ca70e
allocrunner: Standardised discard logs
...
Follow up from https://github.com/hashicorp/nomad/pull/5007#pullrequestreview-186739124
2019-01-03 14:04:31 +01:00
Danielle Tomlinson
1c8baf7db7
chore: Fix environement->environment typo
2019-01-03 13:31:30 +01:00
Danielle Tomlinson
28aa34ea78
taskrunner: Persist environment from hooks
...
https://github.com/hashicorp/nomad/pull/5032 introduced a regression
where the origHookState was used in place of the response from the hook.
2019-01-03 13:13:57 +01:00
Alex Dadgar
d7d32c2f61
Merge pull request #5032 from hashicorp/f-driver-env
...
Store device envs separately and pass to drivers
2018-12-20 13:38:27 -08:00
Nick Ethier
6c43ccf628
client: add proper build flag to allocrunner testing.go
2018-12-19 20:22:07 -05:00
Michael Schurter
4448f19413
Merge pull request #5030 from hashicorp/test-client-statusupdate
...
client: assert alloc status updates work
2018-12-19 14:55:34 -08:00
Alex Dadgar
9d34802f7a
Store device envs separately and pass to drivers
2018-12-19 14:23:09 -08:00
Michael Schurter
951100af16
client: assert alloc status updates work
...
Re-enabling and updating an old test. Able to cut out a ton of extra
work by using WaitForRunning which does almost everything this test
needs.
2018-12-19 11:41:53 -08:00
Michael Schurter
ee23bdafbc
client/state: missing deploy status isn't an error
...
Fixes TestClient_SaveRestoreState
2018-12-19 10:39:27 -08:00
Michael Schurter
c84998e996
tests: implement HasHealth for mock health
2018-12-19 10:39:27 -08:00
Michael Schurter
ba1ddd2238
gofmt -s -w upgrade_int_test.go
2018-12-19 10:39:27 -08:00
Michael Schurter
337d07fdd8
client/state: improve upgradeTaskBucket error handling
...
And add a test
2018-12-19 10:39:27 -08:00
Michael Schurter
c5ddcb6a15
client/state: add context to errors
...
Unfortunately I don't know how to test these errors. As far as I can
tell they should only happen if there was a programming error in the
upgrade code or the underlying boltdb was corrupted somehow.
2018-12-19 10:39:27 -08:00
Michael Schurter
99bd5b3422
client/state: use 2 as version; test error path
2018-12-19 10:39:27 -08:00
Michael Schurter
d9ea8252a7
client/state: support upgrading from 0.8->0.9
...
Also persist and load DeploymentStatus to avoid rechecking health after
client restarts.
2018-12-19 10:39:27 -08:00
Michael Schurter
0018b2f659
client/state: reorg state buckets to ease transition
...
* Prefix task bucket with task- to prevent name conflicts
* Shorten device manager bucket name
* Remove commented out outdated var
* Update layout comment
2018-12-19 10:22:28 -08:00
Michael Schurter
461599ff20
tr: fix HookState Copy() and Equal() methods
...
They did not take into account the Env field.
2018-12-19 09:58:06 -08:00
Danielle Tomlinson
c580512d32
allocrunner: Close updates routine correctly
2018-12-19 18:32:51 +01:00
Nick Ethier
969ec51730
devicemanager: fix devicemanager tests
2018-12-19 00:35:12 -05:00
Nick Ethier
6f1777284d
drivermanager: use correct plugin config types
2018-12-18 23:07:01 -05:00
Nick Ethier
a02308ee6a
drivermanager: attempt to reattach and shutdown driver plugin if blocked by allow/block lists
2018-12-18 23:01:57 -05:00
Nick Ethier
ce1a5cba0e
drivermanager: use allocID and task name to route task events
2018-12-18 23:01:51 -05:00
Nick Ethier
bda32f9c79
client/pluginmanager: add plugin manager interface to device/driver managers
2018-12-18 22:56:23 -05:00
Nick Ethier
d8a0265e68
client: batch initial fingerprinting in plugin manangers
...
drivermanager: fix pr comments/feedback
2018-12-18 22:56:19 -05:00
Nick Ethier
7d23cbf448
client/drivermananger: fixup issues from rebase and address PR comments
2018-12-18 22:55:38 -05:00
Nick Ethier
1543335710
tr: deregister task handler on cleanup
2018-12-18 22:55:38 -05:00
Nick Ethier
82175d1328
client/drivermananger: add driver manager
...
The driver manager is modeled after the device manager and is started by the client.
It's responsible for handling driver lifecycle and reattachment state, as well as
processing the incomming fingerprint and task events from each driver. The mananger
exposes a method for registering event handlers for task events that is used by the
task runner to update the server when a task has been updated with an event.
Since driver fingerprinting has been implemented by the driver manager, it is no
longer needed in the fingerprint mananger and has been removed.
2018-12-18 22:55:18 -05:00
Alex Dadgar
730a6f5b9a
lint
2018-12-18 16:48:00 -08:00
Alex Dadgar
4c57d2ec4d
Add plugin API versioning to plugin loader and plugins
2018-12-18 16:48:00 -08:00
Alex Dadgar
9d1403d617
Merge pull request #5002 from hashicorp/b-task-config-resources
...
Convert driver resource to AllocatedTaskResource
2018-12-18 16:46:34 -08:00
Danielle Tomlinson
0edc65631a
Merge pull request #5007 from hashicorp/dani/f-allocrunner-async
...
allocrunner: Async api for shutdown/destroy/update
2018-12-19 01:26:41 +01:00
Alex Dadgar
8efac7ec81
Fix unit tests + upgrade pathing resources
2018-12-18 15:50:44 -08:00
Alex Dadgar
b8268d9a46
Lint
2018-12-18 15:50:44 -08:00
Alex Dadgar
66cf3156b2
LinuxResources doesn't use task.Resources
2018-12-18 15:50:44 -08:00
Alex Dadgar
327b551b39
Drivers
2018-12-18 15:50:11 -08:00
Alex Dadgar
b653ae2af7
utilities
2018-12-18 15:48:52 -08:00
Danielle Tomlinson
95a0c4fb29
taskrunner: Use a random suffix for Task Config
...
The RestartCount is not really suitable for use as a source of
uniqueness within task invocations as it is not monotonic, and interacts
with the restart stanza in a users config, so conflates restarts due to
task failures, with restarts due to enviromental changes, such as consul
template or vault secrets changing.
Here we instead use a substring from a uuid, which is more random than
we strictly need, but is nicer than rolling our own random string
generator here.
2018-12-19 00:38:54 +01:00
Danielle Tomlinson
1be0170ebe
client: Update tests for async destroy
2018-12-18 23:38:34 +01:00
Danielle Tomlinson
d6eb084d8a
allocrunner: Drop and log updates after closing waitCh
2018-12-18 23:38:34 +01:00
Danielle Tomlinson
0d91285cd6
allocrunner: Documentation for ShutdownCh/DestroyCh
2018-12-18 23:38:34 +01:00
Danielle Tomlinson
f2bb13818e
fixup: Log when we detect out of order updates
2018-12-18 23:38:33 +01:00
Danielle Tomlinson
986fde0f5a
allocrunner: Handle updates asynchronously
...
This creates a new buffered channel and goroutine on the allocrunner for
serializing updates to allocations. This allows us to take updates off
the routine that is used from processing updates from the server,
without having complicated machinery for tracking update lifetimes, or
other external synchronization.
This results in a nice performance improvement and signficantly better
throughput on batch changes such as preempting a large number of jobs
for a larger placement.
2018-12-18 23:38:33 +01:00
Danielle Tomlinson
f3fa9d1406
gc: Wait for allocrunners to be destroyed
2018-12-18 23:38:33 +01:00
Danielle Tomlinson
cb78a90f40
client: Async API for shutdown/destroy allocrunners
2018-12-18 23:38:33 +01:00
Danielle Tomlinson
d1fbac1aad
allocrunner: Async shutdown and destroy
...
This commit reduces the locking required to shutdown or destroy
allocrunners, and allows parallel shutdown and destroy of allocrunners during
shutdown.
2018-12-18 23:38:33 +01:00
Danielle Tomlinson
d9174d8dcf
Merge pull request #4989 from hashicorp/dani/b-client-update-race-condition
...
client: Give a copy of clientconfig to allocrunner
2018-12-17 10:49:46 +01:00
Danielle Tomlinson
53aa1bc198
Merge pull request #5004 from hashicorp/dani/f-hook-errors
...
client: Emit TaskEvents when task hooks fail
2018-12-17 10:42:57 +01:00
Danielle Tomlinson
a50ea29da4
taskrunner: Use hook errors for artifacts
2018-12-17 10:39:38 +01:00