Commit graph

180 commits

Author SHA1 Message Date
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
Michael Schurter a724779720 Replace _ with - in task names for rkt volumes
Fixes #2358
2017-03-07 14:34:57 -08: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
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
Alex Dadgar 2be221d664 Don't retrieve Driver Stats if unsupported
This PR makes us only try to collect stats once if the Driver doesn't
support collecting stats.

Fixes https://github.com/hashicorp/nomad/issues/1986
2017-01-09 13:47:06 -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 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
Michael Schurter 1f0bfa00aa rkt: Support host and none dns options
Fixes #2025
2016-11-28 13:13:40 -08:00
Michael Schurter 44e4414490 Fix rkt volumes
I forgot to validate the volumes field!
2016-11-28 13:13:40 -08:00
Alex Dadgar f1689bc7f9 Rkt env var 2016-11-08 15:14:04 -08:00
Alex Dadgar 0cbd0188b1 Move the wait result to bottom of methods 2016-11-04 14:58:55 -07:00
Michael Schurter 21b8030ded Fix tests for rkt port map 2016-10-25 17:06:41 -07:00
Kenjiro Nakayama 56d91632ca driver.rkt: support port mapping with net and port options 2016-10-25 15:41:49 -07:00
Alex Dadgar 8e07c2750e Merge pull request #1839 from hashicorp/f-signal-constraints
Signal creates an auto-constraints
2016-10-25 11:09:33 -07:00
Michael Schurter 4f45aece4b Fingerprint rkt volume support and make periodic
Fix rkt docs and custom volume mounting
2016-10-25 09:46:49 -07:00
Michael Schurter 49ed6da0ad Enable rkt and docker volume mounting by default 2016-10-25 09:46:49 -07:00
Michael Schurter f075bda9b9 Make volume name unique 2016-10-25 09:46:49 -07:00
Michael Schurter 83a11fc93b Bump minimum required rkt version; update docs
Make section names match between docker and rkt
2016-10-25 09:46:49 -07:00
Michael Schurter 02ed35bd1c Add arbitrary volume support to rkt 2016-10-25 09:46:49 -07:00
Michael Schurter 473c28824c Fix standard mounts in rkt and tests 2016-10-25 09:46:49 -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 5b01b1be1b Rkt 2016-10-10 11:47:04 -07:00
Alex Dadgar 280af8f4d1 Docker + Qemu 2016-10-10 11:47:04 -07:00
Kenjiro Nakayama c97beb8deb driver.rkt: Remove unnecessary job validation 2016-08-16 23:33:34 +09:00
Alex Dadgar 64b86bed0d Merge pull request #1581 from nak3/fix-rkt2
Set host environment variables to taskEnv of rkt driver
2016-08-15 10:31:10 -07:00
Alex Dadgar a2b603bd82 Merge pull request #1586 from nak3/rkt-fix3
tiny: Catch error returned from SyncServices in rkt driver
2016-08-15 10:29:28 -07:00
Kenjiro Nakayama d0ccdacd08 rkt.driver: Fix wrong MB calculation 2016-08-14 14:27:42 +09:00
Kenjiro Nakayama 906526fbe0 tiny: Catch error returned from SyncServices in rkt driver 2016-08-14 13:11:17 +09:00
Kenjiro Nakayama 0efc0e0231 Set host environment variables to taskEnv of rkt driver 2016-08-14 00:42:53 +09:00
Kenjiro Nakayama 6ec6c27cb4 Update debug option from string to bool 2016-08-09 16:51:00 +09:00
Kenjiro Nakayama 11a8a7218e Add debug option to rkt task config 2016-08-09 09:01:05 +09:00
Alex Dadgar ddd8adce96 changelog + use driver config 2016-08-05 10:55:20 -07:00
Kenjiro Nakayama 1176fd123e Pass command and trust_prefix to the validation of rkt task configuration 2016-08-04 17:24:56 +09: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
Sean Chittenden dc28ab0cb5
Speling police 2016-05-15 09:41:34 -07:00
Ivo Verberk 6d0191a485 Add missing comments on exported Validate function 2016-04-10 01:15:09 +02: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 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
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
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 62242595fc Using the name of the task and the alloc id in the service name 2016-03-23 17:35:29 -07:00
Diptanu Choudhury 54a5e795a5 Hooking up the executor in all drivers 2016-03-23 13:19:45 -07:00
Diptanu Choudhury f6a932194f Removing references to old consul services and adding consul config to executor context 2016-03-23 12:19:19 -07:00
Miquel Sabaté Solà 8c56c64615 client/driver: added the user config value
This way Nomad allows to set which user has to run the task.

Signed-off-by: Miquel Sabaté Solà <msabate@suse.com>
2016-03-23 12:57:31 +01:00
Alex Dadgar c85dfdf9a0 Merge branch 'master' into f-artifact-location 2016-03-19 12:50:44 -07:00
Alex Dadgar f4bb3a9801 binary lookup path 2016-03-19 12:18:10 -07:00
Diptanu Choudhury 0f0bba1a4f Merge pull request #932 from hashicorp/unified-executor
Unified executor
2016-03-18 15:04:48 -07:00
Diptanu Choudhury ddbf18f02a Removing all the destroy logic from wait and calling exit after wait on all drivers 2016-03-18 12:04:11 -07:00
Diptanu Choudhury 3c7b83b393 Introduced a method in executor to launch syslog server 2016-03-18 11:49:10 -07:00
Brian Lalor efe080b53f Remove unnecessary --interactive flag
Per @achanda, this was added [accidentally](b92546a9c5 (commitcomment-16750062)).
2016-03-17 13:22:49 -04:00
Alex Dadgar e6d50f96ef Respond to comments and fix test 2016-03-15 20:21:52 -07:00
Alex Dadgar 393807a677 Make user specified tasks executable 2016-03-15 19:22:40 -07:00
Alex Dadgar 2ccfb43c7a Merge pull request #892 from achanda/rkt_dns
Enable passing DNS info to the rkt driver
2016-03-10 08:54:26 -08:00
Abhishek Chanda 3260254cb4 Enable passing DNS info to the rkt driver 2016-03-08 18:59:11 -08:00
Alex Dadgar 929e705ba1 Updating kill timeout adheres to operator specified maximum 2016-03-03 09:21:21 -08:00
Abhishek Chanda ef83066b7a Fix location of volume mount
Also add a test for mounting alloc dirs
2016-03-02 14:04:14 -08:00
Abhishek Chanda 9e1055d595 Use NewWaitResult in the wait channel 2016-03-02 14:04:14 -08:00
Abhishek Chanda 5a3be40b8d Set allocDir in handle 2016-03-02 14:04:14 -08:00
Abhishek Chanda a78fc6707f Run rkt interactively 2016-03-02 14:04:14 -08:00
Abhishek Chanda 29bcab9bfd Cleanup if the plugin executor crashes. 2016-03-02 14:04:14 -08:00
Abhishek Chanda 8957726a0a A number of cleanups
- Removed some unused variables.
2016-03-02 14:04:14 -08:00
Abhishek Chanda fbc6f3f0b1 Do not hard-code binary location 2016-03-02 14:04:14 -08:00
Abhishek Chanda d490df2bad Use the plugin mechanism in the rkt driver 2016-03-02 14:04:14 -08:00
Abhishek Chanda e40c4630d7 Change how a result is returned form wait 2016-03-02 14:04:14 -08:00
Abhishek Chanda 7719a1ce98 A number of rkt fixes
- Reorder rkt arguments to make it work
- Change a few things in test
2016-03-02 14:04:14 -08:00
Abhishek Chanda b35e244c7d Use a host volume to mount alloc and task dirs
host volumes are the preferred way to share data.
2016-03-02 14:04:14 -08:00
Abhishek Chanda 370332fdf3 Create the task and alloc dirs before proceeding 2016-03-02 14:04:14 -08:00
Alex Dadgar 41e1174f72 Client handles updates to KillTimeout and Restart Policy 2016-02-03 19:43:44 -08:00
Alex Dadgar 2d42cb3e55 update the regex 2016-02-02 15:39:45 -08:00
Alex Dadgar 3ba1c9b76b merge 2016-01-11 09:58:26 -08:00
Alex Dadgar 198230bae9 Merge pull request #645 from achanda/mount_dirs
Mount task and alloc dirs in the rkt driver
2016-01-05 10:34:03 -08:00
Abhishek Chanda 2fc6352076 Mount task and alloc dirs in the rkt driver
rkt docs herer https://coreos.com/rkt/docs/latest/subcommands/run.html#mounting-volumes
2016-01-05 10:27:44 +00:00
Alex Dadgar 1e5c776e40 Merge pull request #624 from hashicorp/f-adjustable-timeout
User specifiable kill timeout and operator configurable max
2016-01-04 11:44:22 -08:00
Abhishek Chanda 60fe5e19e8 Update the insecure flag
The current call has been deprecated in
https://github.com/coreos/rkt/pull/1738
2015-12-25 15:59:54 +00:00
Alex Dadgar ddf392c6be User specifiable kill timeout and operator configurable max 2015-12-22 16:10:30 -08:00
Abhishek Chanda a347cda6e3 Consolidate if else conditions 2015-12-22 18:23:29 +00:00
Alex Dadgar 29411d698a Rkt comment and variable name update 2015-12-22 10:11:22 -08:00
Abhishek Chanda 74a5292789 Move constants to the top 2015-12-22 05:15:37 +00:00
Abhishek Chanda 0918a38221 Do not allow rkt version less than 0.14.0 2015-12-21 17:48:21 +00:00
Abhishek Chanda 1c4e380868 Use camelCase for variable names 2015-12-21 16:37:21 +00:00
Abhishek Chanda 3d2589e797 Run gofmt 2015-12-21 06:09:11 +00:00
Abhishek Chanda b843b1a853 Support CPU and meory isolators for the rkt driver
The rkt community added supprt for these isolators recently
2015-12-21 06:06:45 +00:00