Commit Graph

141 Commits

Author SHA1 Message Date
Michael Schurter
90f5e232a5 Switch java/exec to use Exec in Executor 2017-04-21 16:25:49 -07:00
Michael Schurter
0e0845e94b Use a DriverAbility to expose Exec functionality 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
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
Alex Dadgar
4ba4987625 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
269b3c7e14 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
db096b23b5 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
9206446a8d 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
1ec5c930a6 Return errors from cleanup and let TaskRunner retry 2017-01-12 17:21:54 -08:00
Diptanu Choudhury
a066d90313 Added executorconfig 2017-01-12 15:47:58 -08:00
Diptanu Choudhury
84137b02c5 Filter executor log messages 2017-01-12 11:54:19 -08:00
Michael Schurter
33c015bcc7 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
86db19407e Remove task name prefix from executor logs 2017-01-05 16:31:56 -08:00
Michael Schurter
de7351b959 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
904543ef1b Remove unneeded env building 2016-12-20 16:14:42 -08:00
Michael Schurter
ee17940dfe 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
12c033ab81 Move the wait result to bottom of methods 2016-11-04 14:58:55 -07:00
Alex Dadgar
008d91aa56 Advertise signalling abilities 2016-10-19 15:06:23 -07:00
Alex Dadgar
917c7e5085 Merge pull request #1801 from hashicorp/f-signals
Consul-template signal change mode
2016-10-18 11:23:47 -07:00
Alex Dadgar
358c43333d Send Executor Ctx separately 2016-10-12 11:35:29 -07:00
Alex Dadgar
0b65a5f95d Executor + Java/Raw Exec/Exec 2016-10-10 11:47:04 -07:00
Alex Dadgar
1a3585b572 Docker + Qemu 2016-10-10 11:47:04 -07:00
Jay Oster
593669ada2 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
09f2fc9f8f Add chroot_env to Java driver (which uses the exec driver internally) 2016-08-04 11:15:35 -07:00
Sean Chittenden
71dddc7f05 Push the Client's cleanup of Cgroups down 2016-07-09 23:45:33 -07:00
Alex Dadgar
1a7df4e7d2 Allocation resources returned in a struct 2016-06-11 21:04:10 -07:00
Diptanu Choudhury
1cae57aee9 Add the Stats api to driverhandle 2016-05-28 19:42:34 -07:00
Alex Dadgar
7616be8094 Put the executor into the cgroup to avoid a fork race 2016-04-18 17:59:08 -07:00
Ivo Verberk
51755c513f Implement configuration validation for all task drivers 2016-04-10 00:42:57 +02:00
Ivo Verberk
92bf6f1ad0 Add helper to validate raw configuration data 2016-04-10 00:42:43 +02:00
Diptanu Choudhury
ced78c9457 Using the paths of cgroups to reconstruct the manager 2016-04-02 12:37:19 -07:00
Diptanu Choudhury
21a2914363 Merge pull request #1020 from hashicorp/f-capture-signals
Capturing signals from wait
2016-04-02 11:13:04 -07:00
Diptanu Choudhury
1a0c35a196 Capturing signals from wait 2016-04-01 14:31:19 -07:00
Diptanu Choudhury
d203d62684 Logging in fingerprinters only when state changes 2016-04-01 02:22:17 -07:00
Diptanu Choudhury
621ae065d9 Making driver fingerprinters run periodically and unblocking evals when node registration happens 2016-03-31 18:11:27 -07:00
Alex Dadgar
be1266e42d Merge pull request #1009 from hashicorp/b-more-chroot
Chroot all of /usr/
2016-03-30 11:33:53 -07:00
Diptanu Choudhury
1471f747f3 Added version to executor 2016-03-29 22:24:22 -07:00
Diptanu Choudhury
323975d500 Added the Version method to executor 2016-03-29 22:23:03 -07:00
Alex Dadgar
cfb46db65f include all of usr 2016-03-29 16:14:56 -07:00
Diptanu Choudhury
588666d0df Introducing ConsulContext 2016-03-24 15:57:16 -07:00
Diptanu Choudhury
e8995be723 Fixed merge conflicts 2016-03-24 15:09:50 -07:00
Diptanu Choudhury
42dc8bea16 Added a check type for consul service to delegate certain checks 2016-03-24 14:54:26 -07:00
Diptanu Choudhury
3c7d3cdca5 Changing the log line 2016-03-24 14:53:53 -07:00
Diptanu Choudhury
6c5f546e86 Fixing check registration in perform sync 2016-03-24 14:12:09 -07:00
Alex Dadgar
324a11003f 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
ba12ba2127 Merge pull request #972 from hashicorp/scripts
Moving consul service to executor
2016-03-24 00:12:45 -07:00
Diptanu Choudhury
1f6137aba5 Using the name of the task and the alloc id in the service name 2016-03-23 17:35:29 -07:00
Diptanu Choudhury
701a1bd9bc Hooking up the executor in all drivers 2016-03-23 13:19:45 -07:00
Alex Dadgar
4f923f14b9 Pass environment variables from host to exec based tasks 2016-03-23 13:01:45 -07:00
Diptanu Choudhury
9a71225b9e Removing references to old consul services and adding consul config to executor context 2016-03-23 12:19:19 -07:00