Michael Schurter
a96fc052dd
Fix tr race by not sharing alloc/task
...
prestart only needs the original alloc/task so pass their pointers in.
Task updates may concurrently replace the pointer on tr.
2017-07-21 16:17:42 -07:00
Michael Schurter
96127527a1
Fix handle race
2017-07-21 14:00:32 -07:00
Michael Schurter
55713e2a61
Always interpolate task before calling with Consul
...
Also switch to returning a copy of the task to avoid races between
altering the Task and persitence.
2017-07-21 13:37:16 -07:00
Michael Schurter
738321efa3
Don't save task runner state if it is destroyed
2017-07-20 10:17:41 -07:00
Michael Schurter
4117c8b3a2
Fix Service.AddressMode changes during task updates
2017-06-21 17:19:08 -07:00
Michael Schurter
8a7df57227
Test driver network advertisement and checks
2017-06-21 17:19:08 -07:00
Michael Schurter
3fddb05fc8
Implement DriverNetwork and Service.AddressMode
...
Ideally DriverNetwork would be fully populated in Driver.Prestart, but
Docker doesn't assign the container's IP until you start the container.
However, it's important to setup the port env vars before calling
Driver.Start, so Prestart should populate that.
2017-06-21 17:19:08 -07:00
Michael Schurter
72a24aecb0
Add env.Builder.UpdateTask for alloc updates
2017-05-23 16:00:57 -07:00
Michael Schurter
1295f88d03
Handle Driver.Prestart returning nil, nil
2017-05-23 13:53:34 -07:00
Michael Schurter
a96fb5dbb0
Move task env into execcontext
...
Also inject PATH into rkt commands since we're no longer appending host
env vars for it.
2017-05-23 13:53:34 -07:00
Michael Schurter
6db35013d2
Add PortMap to struct returned by Driver.Prestart
...
Moves env.Builder out of drivers entirely so one less thing to worry
about when implementing driver plugins.
2017-05-23 13:53:34 -07:00
Michael Schurter
37c1cbc9cf
Move env template handling into consul_template.go
2017-05-23 13:53:34 -07:00
Michael Schurter
96753dcbcb
Improve PortMap handling and simplify Builder creation
2017-05-23 13:53:34 -07:00
Michael Schurter
3b24980680
Move path building to task dir initialization
2017-05-23 13:53:34 -07:00
Michael Schurter
ace00980a1
Refactor TaskEnvironment into Builder and TaskEnv
2017-05-23 13:53:33 -07:00
Michael Schurter
7dac668adf
Functional consul template env file support
2017-05-23 13:45:14 -07:00
Michael Schurter
70fdc46abc
Merge pull request #2591 from hashicorp/b-2180-script-updates
...
Properly interpolate services on updated tasks
2017-05-17 09:09:01 -07:00
Alex Dadgar
e47be9f771
Merge branch 'master' into f-bolt-db
2017-05-09 11:11:55 -07:00
Alex Dadgar
3f1ccf7278
Respond to comments
2017-05-09 10:50:24 -07:00
Michael Schurter
499ada5a64
Merge pull request #2585 from hashicorp/b-2554-container-exec
...
Execute exec/java script checks in containers
2017-05-05 10:31:18 -07:00
Michael Schurter
a39eef0f11
Test pre06ScriptCheck
2017-05-04 16:49:00 -07:00
Michael Schurter
9012357414
Oops, remove dev logging
2017-05-04 16:27:04 -07:00
Michael Schurter
3999b57e7d
Build new env from new alloc before interpolating
2017-05-04 15:06:15 -07:00
Alex Dadgar
e22393aeb8
Restore state + upgrade path
2017-05-02 18:21:49 -07:00
Alex Dadgar
85a81f47de
Revert "metrics"
...
This reverts commit 4d6a012c6f .
2017-05-02 09:28:11 -07:00
Alex Dadgar
7dee8ae534
perf
2017-05-01 16:01:50 -07:00
Alex Dadgar
4d6a012c6f
metrics
2017-05-01 14:51:27 -07:00
Alex Dadgar
5aa6e18807
Use batching
2017-05-01 14:50:34 -07:00
Alex Dadgar
7614feddbd
boltDB database for client state
2017-05-01 14:50:34 -07:00
Pete Wildsmith
aa2da9ea50
address feedback
2017-04-28 10:27:37 +01:00
Pete Wildsmith
06f3aac9de
clean up consul earlier when destroying a task
2017-04-27 23:29:30 +01:00
Michael Schurter
92535496b4
Properly interpolate services on updated tasks
...
Previously was interpolating the original task's services again.
Fixes #2180
Also fixes a slight memory leak in the new consul agent. Script check
handles weren't being deleted after cancellation.
2017-04-26 11:22:01 -07:00
Michael Schurter
2cc492c95e
Test pre-0.6 script check upgrade path
2017-04-25 11:41:03 -07:00
Michael Schurter
90f5e232a5
Switch java/exec to use Exec in Executor
2017-04-21 16:25:49 -07:00
Michael Schurter
fe2b3e382d
Restart tasks on upgrade with script checks and old executors
2017-04-21 16:25:49 -07:00
Michael Schurter
8e0c97e52f
Unregister from Consul when waiting for restart
2017-04-19 12:42:48 -07:00
Michael Schurter
4f224132ad
Remove stale comment
2017-04-19 12:42:47 -07:00
Michael Schurter
0e0845e94b
Use a DriverAbility to expose Exec functionality
2017-04-19 12:42:47 -07:00
Michael Schurter
fd69d48244
Move removal from Consul into TaskRunner cleanup
2017-04-19 12:42:47 -07:00
Michael Schurter
63a8307255
Move ScriptExecutor to driver
2017-04-19 12:42:47 -07:00
Michael Schurter
b6937912d8
Add UpdateTask method instead of Remove/Add
2017-04-19 12:42:47 -07:00
Michael Schurter
10cb924b2c
Refactor Consul Syncer into new ServiceClient
...
Fixes #2478 #2474 #1995 #2294
The new client only handles agent and task service advertisement. Server
discovery is mostly unchanged.
The Nomad client agent now handles all Consul operations instead of the
executor handling task related operations. When upgrading from an
earlier version of Nomad existing executors will be told to deregister
from Consul so that the Nomad agent can re-register the task's services
and checks.
Drivers - other than qemu - now support an Exec method for executing
abritrary commands in a task's environment. This is used to implement
script checks.
Interfaces are used extensively to avoid interacting with Consul in
tests that don't assert any Consul related behavior.
2017-04-19 12:42:47 -07:00
Alex Dadgar
4596542197
Fix variable capture and add tests
...
This PR fixes token revocation and adds tests to make sure it is
working. The 0.5.6 RC1's token revocation does not work becasue the
token's value is captured at the instantiation of the deferred
stoprenewal statement rather than its exectution.
2017-03-29 13:17:50 -07:00
Michael Schurter
4d3c571859
Merge pull request #2482 from hashicorp/f-2289-better-artifact-err
...
Improve artifact download error message
2017-03-28 12:48:22 -07:00
Alex Dadgar
87474b7c37
Merge pull request #2495 from hashicorp/b-vault-stop-renew
...
Stop Vault token renew on task exit
2017-03-28 11:14:18 -07:00
Alex Dadgar
c6a796e67f
Stop Vault token renew on task exit
...
This PR fixes an oversight in which the client would attempt to renew a
token even after the task exits.
Fixes https://github.com/hashicorp/nomad/issues/2475
2017-03-28 10:53:15 -07:00
Michael Schurter
76c909bc9e
Add WrapRecoverable helper
2017-03-27 15:37:15 -07:00
Alex Dadgar
564367fa71
Proper reference counting through task restarts
...
This PR fixes an issue in which the reference count on a Docker image
would become inflated through task restarts.
2017-03-25 17:05:53 -07:00
Michael Schurter
774cb8dd9b
Improve artifact download error message
...
Fixes #2289
Unfortunately took more RecoverableError hijinx than I would have liked.
There might be a better way.
2017-03-24 15:26:05 -07:00
Alex Dadgar
0021961361
Fix vet
2017-03-24 12:24:47 -07:00