Commit graph

178 commits

Author SHA1 Message Date
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
Diptanu Choudhury 29915ddd16 Moving the args to helper 2015-11-26 14:13:19 -08:00
Alex Dadgar 4d817f5cbc Revert "Revert "Make drivers take arguments as a list and not as a string"" 2015-11-18 15:16:42 -08:00