Michael Schurter
fd9bef768f
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
37b148fb60
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
d2c08ff24b
Refactor TaskEnvironment into Builder and TaskEnv
2017-05-23 13:53:33 -07:00
Michael Schurter
095d2ee340
Switch java/exec to use Exec in Executor
2017-04-21 16:25:49 -07:00
Michael Schurter
caf317e3f2
Use a DriverAbility to expose Exec functionality
2017-04-19 12:42:47 -07:00
Michael Schurter
e204a287ed
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
4ecebe7d8c
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
Alex Dadgar
f9323f03df
Drivers log during fingerprinting
...
This PR fixes a regression in which some drivers did not log during
fingerprinting.
2017-02-20 19:35:51 -08:00
Michael Schurter
295c2bf74a
Merge pull request #2186 from hashicorp/f-driver-cleanup
...
Add Cleanup method to Driver interface
2017-01-20 13:02:14 -08:00
Michael Schurter
a3a3656dbb
Switch to use recoverable errors from Cleanup
...
TaskRunner handles retrying but Cleanup handles all of CreatedResources.
2017-01-13 16:46:08 -08:00
Alex Dadgar
78deb8b292
Support setting class_path and class name.
...
This PR enhances the java driver to allow setting the class path and
class name to run. It also fixes an issue that would make the Java
driver attempt to chroot regardless of operating system (this never
effected a released version of Nomad).
2017-01-13 16:03:11 -08:00
Michael Schurter
dc68aa1a5a
Return errors from cleanup and let TaskRunner retry
2017-01-12 17:21:54 -08:00
Diptanu Choudhury
6809a4b104
Added executorconfig
2017-01-12 15:47:58 -08:00
Diptanu Choudhury
b1d0078db5
Filter executor log messages
2017-01-12 11:54:19 -08:00
Michael Schurter
4d081490e6
Add Cleanup method to Driver interface
...
Cleanup can be used for cleaning up resources created by drivers to run
a task. Initially the Docker driver is the only user (to remove
downloaded images).
2017-01-11 17:23:33 -08:00
Michael Schurter
baf6f078d6
Remove task name prefix from executor logs
2017-01-05 16:31:56 -08:00
Michael Schurter
3ea09ba16a
Move chroot building into TaskRunner
...
* Refactor AllocDir to have a TaskDir struct per task.
* Drivers expose filesystem isolation preference
* Fix lxc mounting of `secrets/`
2017-01-05 16:31:49 -08:00
Michael Schurter
8e1ae14feb
Remove unneeded env building
2016-12-20 16:14:42 -08:00
Michael Schurter
770ed703d0
Add Driver.Prestart method
...
The Driver.Prestart method currently does very little but lays the
foundation for where lifecycle plugins can interleave execution _after_
task environment setup but _before_ the task starts.
Currently Prestart does two things:
* Any driver specific task environment building
* Download Docker images
This change also attaches a TaskEvent emitter to Drivers, so they can
emit events during task initialization.
2016-12-02 11:03:48 -08:00
Alex Dadgar
0cbd0188b1
Move the wait result to bottom of methods
2016-11-04 14:58:55 -07:00
Alex Dadgar
41b5679015
Advertise signalling abilities
2016-10-19 15:06:23 -07:00
Alex Dadgar
53eeec9bc1
Merge pull request #1801 from hashicorp/f-signals
...
Consul-template signal change mode
2016-10-18 11:23:47 -07:00
Alex Dadgar
86238387e7
Send Executor Ctx separately
2016-10-12 11:35:29 -07:00
Alex Dadgar
00a1234c55
Executor + Java/Raw Exec/Exec
2016-10-10 11:47:04 -07:00
Alex Dadgar
280af8f4d1
Docker + Qemu
2016-10-10 11:47:04 -07:00
Jay Oster
2ae059b41d
Address review comments
...
- Simplify map length check in Linux Executor
- Added a `chroot_env` test for config parser
- Moved `ChrootEnv` field from ExecutorCommand to ExecutorContext
- Added a test for `chroot_env` functionality
2016-08-04 15:33:06 -07:00
Jay Oster
24e8f752ab
Add chroot_env to Java driver (which uses the exec driver internally)
2016-08-04 11:15:35 -07:00
Sean Chittenden
a5dc6c2da9
Push the Client's cleanup of Cgroups down
2016-07-09 23:45:33 -07:00
Alex Dadgar
e952540f6f
Allocation resources returned in a struct
2016-06-11 21:04:10 -07:00
Diptanu Choudhury
6c1b60ff07
Add the Stats api to driverhandle
2016-05-28 19:42:34 -07:00
Alex Dadgar
736ef76cc1
Put the executor into the cgroup to avoid a fork race
2016-04-18 17:59:08 -07:00
Ivo Verberk
13a2d62bfa
Implement configuration validation for all task drivers
2016-04-10 00:42:57 +02:00
Ivo Verberk
542603dec6
Add helper to validate raw configuration data
2016-04-10 00:42:43 +02:00
Diptanu Choudhury
d9afcc1293
Using the paths of cgroups to reconstruct the manager
2016-04-02 12:37:19 -07:00
Diptanu Choudhury
121773607a
Merge pull request #1020 from hashicorp/f-capture-signals
...
Capturing signals from wait
2016-04-02 11:13:04 -07:00
Diptanu Choudhury
e47ead97da
Capturing signals from wait
2016-04-01 14:31:19 -07:00
Diptanu Choudhury
8c7c48b01a
Logging in fingerprinters only when state changes
2016-04-01 02:22:17 -07:00
Diptanu Choudhury
fd3c05a2be
Making driver fingerprinters run periodically and unblocking evals when node registration happens
2016-03-31 18:11:27 -07:00
Alex Dadgar
2e88933eb1
Merge pull request #1009 from hashicorp/b-more-chroot
...
Chroot all of /usr/
2016-03-30 11:33:53 -07:00
Diptanu Choudhury
f517eb16de
Added version to executor
2016-03-29 22:24:22 -07:00
Diptanu Choudhury
2b773b0a39
Added the Version method to executor
2016-03-29 22:23:03 -07:00
Alex Dadgar
8e762ab1ee
include all of usr
2016-03-29 16:14:56 -07:00
Diptanu Choudhury
a6711ea25f
Introducing ConsulContext
2016-03-24 15:57:16 -07:00
Diptanu Choudhury
f09bb1572a
Fixed merge conflicts
2016-03-24 15:09:50 -07:00
Diptanu Choudhury
2a5f300f92
Added a check type for consul service to delegate certain checks
2016-03-24 14:54:26 -07:00
Diptanu Choudhury
60fc9919f7
Changing the log line
2016-03-24 14:53:53 -07:00
Diptanu Choudhury
6a62d4f452
Fixing check registration in perform sync
2016-03-24 14:12:09 -07:00
Alex Dadgar
fc0e48b0ec
Merge pull request #950 from mssola/raw-exec-user
...
client: added the "user" option to tasks
2016-03-24 08:57:13 -07:00
Diptanu Choudhury
76343a3748
Merge pull request #972 from hashicorp/scripts
...
Moving consul service to executor
2016-03-24 00:12:45 -07:00
Diptanu Choudhury
62242595fc
Using the name of the task and the alloc id in the service name
2016-03-23 17:35:29 -07:00