Commit graph

498 commits

Author SHA1 Message Date
Jan-Hendrik Lendholt 6c7cbe5fcb Added support to mount host folders into container. For example if you don't want to bake certificates into the container, you can mount them into the directory directly.
Furthermore, I added support for volumes-from.

Currently, there is no support to move the data from one container to another, hence: If a container spawns on another host, it is very likely, that the data will not be found.
2016-10-03 15:02:49 -07:00
Jan-Hendrik Lendholt ac5cde4641 Added logging options support for docker driver 2016-10-03 15:02:49 -07:00
Alex Dadgar 6702a29071 Vault token threaded 2016-09-14 13:30:01 -07:00
Alex Dadgar eef786dd9d Secret dir materialized in alloc/task directory 2016-09-02 12:44:05 -07:00
Alex Dadgar 2c8dd8bbd3 Revert "Introduce a Secret/ directory" 2016-09-01 17:23:15 -07:00
Alex Dadgar 0626eb9619 environment variables 2016-08-31 13:56:11 -07:00
Kenjiro Nakayama b06c6d9311 driver.docker: tiny: debug messages output task name instead of image name 2016-08-21 19:51:32 +09:00
Diptanu Choudhury ab7f8847c1 changing error statement 2016-08-17 13:48:31 -07:00
Alex Dadgar 096956257d changelog 2016-08-05 10:47:44 -07:00
Michal Wieczorek b688261a99 Set windows containers default network mode to 'nat' 2016-08-05 06:01:26 +02:00
Diptanu Choudhury 531b619ce4 Merge pull request #1475 from mwieczorek/windows-hostIp-portBindings
Empty host ip for windows containers port bindings
2016-08-04 13:30:43 -07:00
Alex Dadgar 1fe4158097 Merge pull request #1519 from vrenjith/master
Remove docker volumes while removing container
2016-08-04 12:54:00 -07:00
vrenjith 41cf7cc623 Update docker.go
Remove container volumes
2016-08-04 11:43:50 +05:30
Mathias Lafeldt d91f7dbdf8
Docker driver: allow to configure working directory 2016-08-03 16:18:15 +02:00
Alex Dadgar 47f5c8f523 use priviledge of the config 2016-08-02 16:10:15 -07:00
Alex Dadgar cec6d8a1eb remove gating of ipc, user ns and pidmode based on hosts priviledge mode config 2016-08-02 16:02:34 -07:00
Alex Dadgar 2999c12ef1 disable swap 2016-07-28 12:17:00 -07:00
Michal Wieczorek 4b82b6c3d4 Empty host ip for windows containers port bindings 2016-07-28 00:00:57 +02:00
Diptanu Choudhury 22af229cef Merge pull request #1321 from mwieczorek/f-windows-binds
Volume binds for windows containers
2016-07-18 10:20:44 -06:00
Wojciech Bederski a73422b4ff Fix docker driver lockup during nomad boot
Unit mismatch caused docker driver to wait almost indefinitely during boot 
(when one or more containers were a bit uncooperative during StopContainer())
This should fix problems described in  #1202
2016-06-28 14:26:47 +02:00
Diptanu Choudhury 0a10873aa6 Merge pull request #1335 from hashicorp/f-set-docker-timeout
Setting a timeout in the docker client
2016-06-21 17:00:14 -07:00
Diptanu Choudhury 2837d3395d Setting a timeout in the docker client 2016-06-21 16:58:21 -07:00
Diptanu Choudhury 1d5c5b18f3 Making SSL default 2016-06-21 16:41:14 -07:00
Michal Wieczorek 67a04bb1cc Volume binds for windows containers 2016-06-20 21:46:33 +02:00
Sean Chittenden 7b9961f09b
Initialize the stats helpers before accessing them for the first time 2016-06-17 13:23:30 -07:00
Alex Dadgar 27c6398639 debug message when stopping container 2016-06-17 11:52:44 -07:00
Diptanu Choudhury 266c417ac8 Changed the client options for docker volume selinux labels 2016-06-16 21:41:02 +01:00
Diptanu Choudhury fa216199ce Added documentation 2016-06-15 02:42:15 +02:00
Diptanu Choudhury e08083acfe Added a client options for setting selinux options 2016-06-15 02:33:09 +02:00
Alex Dadgar c4a819528a Merge pull request #1260 from hashicorp/f-alloc-stats-struct
Allocation resources returned in a struct
2016-06-12 11:18:57 -07:00
Diptanu Choudhury 34f85baab0 Fix the calculation of total ticks for docker and exec 2016-06-12 18:08:35 +02:00
Alex Dadgar e952540f6f Allocation resources returned in a struct 2016-06-11 21:04:10 -07:00
Diptanu Choudhury 19f4adbcf1 Using a different client for collecting stats and waiting on containers 2016-06-11 20:37:29 +02:00
Diptanu Choudhury 7fb507e810 Moving the clkspeed code to helper 2016-06-11 17:31:49 +02:00
Diptanu Choudhury 59540c3e93 Extracted a method for getting clock speed 2016-06-11 02:07:28 +02:00
Diptanu Choudhury c38a6fb3c5 Implementing the total ticks per task for the docker driver 2016-06-10 23:33:25 +02:00
Alex Dadgar 3cf74e7fd8 Alloc-status only shows measured statistics and fixes to CPU calculations 2016-06-10 10:38:29 -07:00
Alex Dadgar 98d7547014 Annotate what is measured 2016-06-09 19:45:41 -07:00
Diptanu Choudhury 4027ff56f0 Returning an error if stats collection hasn't started yet for a new docker container 2016-06-06 18:52:54 -07:00
Diptanu Choudhury c0dc6cfbf2 Changing the api of the stats endpoints 2016-05-28 19:59:20 -07:00
Diptanu Choudhury 40e60ce920 Making the call to Stats on a go-routine 2016-05-28 19:59:20 -07:00
Diptanu Choudhury 75c7f84490 Simplified the docker stats collection 2016-05-28 19:59:20 -07:00
Diptanu Choudhury 313c61b9db Added pidstats in task resource usage struct 2016-05-28 19:59:20 -07:00
Diptanu Choudhury cfd3016747 Renamed CpuUsage to CpuStats 2016-05-28 19:59:20 -07:00
Diptanu Choudhury e37a108b4c Implemented cpu stats 2016-05-28 19:51:22 -07:00
Diptanu Choudhury 1789dbd1ff Fixed implementation of the docker stats 2016-05-28 19:51:22 -07:00
Diptanu Choudhury 6c1b60ff07 Add the Stats api to driverhandle 2016-05-28 19:42:34 -07:00
Daniel Kerwin df7f5175a8 Add support for shm_size to docker driver. Required update of go-dockerclient
to more recent version (ba4298ecf4cfa216f1cce2befbf653359f62c722).
2016-05-27 12:30:04 +02:00
Sean Chittenden dc28ab0cb5
Speling police 2016-05-15 09:41:34 -07:00
Ivo Verberk e25a2d2f4f Docker labels configuration should be of type "array" in schema 2016-04-25 23:58:31 +02:00
Alex Dadgar ae0a54eb70 Timeout docker connections after 1 minute 2016-04-22 11:11:38 -07:00
Alex Dadgar 9ccacaa9e5 Remove unused field 2016-04-14 11:05:20 -07:00
Alex Dadgar 78adfa8ed6 changelog + docker GC cleanup 2016-04-14 10:52:38 -07:00
Alex Dadgar c4406f2b31 Merge pull request #1071 from hashicorp/b-docker-fix-gc
GC Docker containers and images after the container exits
2016-04-14 10:26:37 -07:00
Diptanu Choudhury bab7d8c9ce Fixing the API call of stopping container 2016-04-12 02:29:28 -07:00
Diptanu Choudhury 02f16e0ea5 Removing container and image once the wait from docker api returns 2016-04-12 00:52:45 -04:00
Ivo Verberk 11f4e647b2 Add interactive option to the Docker driver configuration schema 2016-04-10 12:20:01 +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
Paul Hinze 044978783f client/docker: add interactive option
Equivalent to `docker run --interactive` - keeps STDIN open.

Also adds docs for both `tty` and `interactive` docker config.
2016-04-08 12:51:07 -05:00
Diptanu Choudhury 77fbf85518 Added the tty flag to the driverconfig 2016-04-06 09:54:45 -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
Diptanu Choudhury 2601468708 Making the load a list of strings and added website docs 2016-03-30 17:23:29 -07:00
Diptanu Choudhury 6b46e27236 Simplified the logic of deciding how to create image 2016-03-30 15:45:17 -07:00
Diptanu Choudhury 52af6cd63c Added docs 2016-03-30 15:26:51 -07:00
Diptanu Choudhury cc9c07afdb Added a test 2016-03-30 13:42:17 -07:00
Diptanu Choudhury babbe86933 Added ability to create image from archive 2016-03-30 13:09:32 -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 8b91606b22 Making the docker driver register services and checks 2016-03-23 12:59:22 -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
Diptanu Choudhury abf8e50c29 Destroying the plugin if kill wasn't successful 2016-03-18 11:53:25 -07:00
Diptanu Choudhury 3c7b83b393 Introduced a method in executor to launch syslog server 2016-03-18 11:49:10 -07:00
Diptanu Choudhury 512d0c317a Merge pull request #897 from hashicorp/syslog-addr
Using unix domain sockets for docker syslog collector
2016-03-10 11:49:21 -08:00
Diptanu Choudhury b18cbaa416 Using unix domain sockets for docker syslog collector 2016-03-09 23:28:26 -08:00
Diptanu Choudhury f1c9d11c55 Merge pull request #878 from hashicorp/b-kill-timeout-update
client: Updating kill timeout adheres to operator specified maximum
2016-03-09 18:33:40 -08:00
Diptanu Choudhury 674d1c9b24 Making the docker fingerprinter periodic 2016-03-08 12:02:55 -08:00
Erik Evenson c515cce551 moves transform to Init() 2016-03-06 19:00:40 -06:00
Erik Evenson bef4b0d9b6 Merge branch 'master' into study/aws-ecr-1 2016-03-06 18:18:20 -06:00
Alex Dadgar 929e705ba1 Updating kill timeout adheres to operator specified maximum 2016-03-03 09:21:21 -08:00
Alex Dadgar 144ccfb561 Killing a docker container that is dead is not an error 2016-03-02 16:27:01 -08:00
Erik Evenson eca9029664 adds comments and removes redundant false flag setting 2016-02-29 08:17:40 -06:00
Alex Dadgar 61972c9ddc Refactor task runner to include driver starting into restart policy and add recoverable errors 2016-02-28 16:56:05 -08:00
Erik Evenson 10e32a74d1 refactors 2016-02-27 12:00:17 -06:00
Erik Evenson 4572753014 allows AWS ECR to work 2016-02-27 11:06:40 -06:00
Diptanu Choudhury e3d6c4a9dd Adding version information to snapshots 2016-02-24 19:06:30 -08:00
Diptanu Choudhury 27ab08ce1c Merge pull request #842 from hashicorp/f-validate-command
drivers: validate that command contains one field
2016-02-23 13:45:10 -08:00
Alex Dadgar f612b9c81e validate that command contains one field 2016-02-23 10:19:40 -08:00
Diptanu Choudhury d6f09400f7 Merge pull request #819 from hashicorp/r-syslog-collector
Refactored syslog server and log rotator
2016-02-23 10:15:14 -08:00
Diptanu Choudhury c21f6f8eea Throwing an error if Nomad can't create an docker auth object 2016-02-22 13:20:06 -08:00
Diptanu Choudhury bf3e3f5f59 Throwing an error if Nomad can't create an docker auth object 2016-02-22 13:00:54 -08:00
Diptanu Choudhury 488fd763c8 Renamed packages 2016-02-19 13:08:25 -08:00
Diptanu Choudhury b1c57e078f Changing log messages in the docker driver 2016-02-12 13:33:09 -08:00
Alex Dadgar 18da7eea95 Update go-plugin 2016-02-12 12:16:56 -08:00
Diptanu Choudhury 3db617472c Fixed an issue with purge 2016-02-11 14:44:35 -08:00
Diptanu Choudhury 5480a6744e Renamed the syslog package to logcollector 2016-02-10 18:47:46 -08:00
Diptanu Choudhury 566d709110 Handling errors when client can't re-attach to syslog collector 2016-02-10 16:40:36 -08:00
Diptanu Choudhury 25c48cd1ea Updating log configs 2016-02-10 15:04:41 -08:00
Diptanu Choudhury 776e57deb0 Adding newlines to loglines 2016-02-10 10:18:14 -08:00
Diptanu Choudhury 4b22221c27 Writing log lines from docker to files 2016-02-10 07:52:15 -08:00
Diptanu Choudhury 1e4c42f29d Starting the syslog collector along with a docker container 2016-02-09 18:24:30 -08:00
Diptanu Choudhury b8e4941862 Fixed merge conflicts 2016-02-08 10:24:27 -08:00
Diptanu Choudhury d0b6fb1993 Updated the docker auth config 2016-02-06 05:47:56 -08:00
Diptanu Choudhury 745bfaae7b Reading dockercfg files for authenticating with private registries 2016-02-06 05:43:30 -08:00
Diptanu Choudhury faf6083352 Passing the log rotation parameters to docker daemon 2016-02-05 00:22:31 -08:00
Alex Dadgar 41e1174f72 Client handles updates to KillTimeout and Restart Policy 2016-02-03 19:43:44 -08:00
Ivo Verberk 061445468b Rename IPPort env variable and add a mapped host port to the env. 2016-01-25 20:46:01 +01:00
Ivo Verberk e58bda9056 Pass a combination of ip and port to the task environment.
The different labels can be on different IPs.
2016-01-24 10:31:03 +01:00
Alex Dadgar ec9c375c1c Have docker use the task environment in the context 2016-01-22 15:00:36 -08:00
Alex Dadgar 1ceb6f012a Fix a bunch of tests
Up timeouts

trusty travis beta

Increase timeouts
2016-01-20 16:03:53 -08:00
Alex Dadgar 9f5ccee7ff Fix docker tests 2016-01-19 15:35:01 -08:00
Alex Dadgar 3ba1c9b76b merge 2016-01-11 09:58:26 -08:00
Bastiaan Bakker fcfa8373b2 Add options ipc_mode, pid_mode and uts_mode to docker driver.
May only be used if priviliged mode is enabled in driver config.
2016-01-08 23:34:49 +01:00
Alex Dadgar ddf392c6be User specifiable kill timeout and operator configurable max 2015-12-22 16:10:30 -08:00
Alex Dadgar b943c6e278 Remove all calls to the default logger 2015-12-11 15:02:13 -08:00
Alex Dadgar 5eeec26102 Do Once docker client initialization 2015-12-10 13:49:29 -08:00
Diptanu Choudhury 29915ddd16 Moving the args to helper 2015-11-26 14:13:19 -08:00
Alex Dadgar b2daa5e2e6 Standardize log messages in fingerprinters to DEBUG 2015-11-24 11:06:51 -08:00
Chris Bednarski 719c345164 Change println to printf 2015-11-20 16:00:58 -08:00
Chris Bednarski 8169c8e185 Don't show endpoint when we're not using it 2015-11-20 15:53:38 -08:00
Chris Bednarski 4063b6583e Added docker.tls config file options and docs 2015-11-20 15:47:03 -08:00
Chris Bednarski cf4bb4cfd0 Squash []map[string]type for port_map and labels into map[string]type 2015-11-19 21:29:37 -08:00
Chris Bednarski 275550dcd3 Fixed some issues with expose, port mapping, and environment variables
- Port mapping now works for reserved ports as well as dynamic ports
- Environment variables were being set twice in two different ways; now they are only set once
- Comprehensive tests for exposed ports, forwarded ports, and environment variables
- Cleaned up / DRYed up a lot of test code
2015-11-19 19:08:21 -08:00
Chris Bednarski b9b786732e Export DockerHandle and change tests to use DockerHandle.ContainerID() 2015-11-19 14:20:41 -08:00
Chris Bednarski 6253b1d0aa Add ContainerID() method to get the containerID from a handle 2015-11-19 13:57:18 -08:00
Antonio Fernández 581245f881 fix docker port allocation? 2015-11-19 19:15:25 +01: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
Alex Dadgar 0e51375285 Revert "Make drivers take arguments as a list and not as a string" 2015-11-18 13:46:43 -08:00
Alex Dadgar 6574fd27e3 Remove returning the error 2015-11-18 12:40:34 -08:00
Alex Dadgar 5a678548fa Rebase 2015-11-18 12:30:35 -08:00
Alex Dadgar 54ddf4d3c1 Rebase 2015-11-18 12:29:04 -08:00
Chris Bednarski fc69721cc7 Added missing %s to error format string 2015-11-18 11:29:49 -08:00
Chris Bednarski e17f5984ef Revert "Added missing %s to error format string"
This reverts commit f4acdfd035c2ffa196035cc574d8b40a1795abb3.
2015-11-18 11:28:38 -08:00
Chris Bednarski 7a077a29b5 Added missing %s to error format string 2015-11-18 11:28:07 -08:00
Chris Bednarski b9fcdc400a Merge branch 'master' into f-docker-dns-config 2015-11-18 10:31:06 -08:00
Carlos Diaz-Padron 4a6c3d773d Nest Docker driver auth under object 2015-11-18 01:37:42 -08:00
Carlos Diaz-Padron de6c06d332 De-nest docker registry auth and reformat related doc 2015-11-17 23:32:57 -08:00
Chris Bednarski c80cf651e8 Merge branch 'master' into f-docker-dns-config 2015-11-17 21:43:04 -08:00
Chris Bednarski 7b25c9b4d9 Change dns_servers and dns_search_domains from comma-delimited strings to lists 2015-11-17 21:41:00 -08:00
Chris Bednarski c851ae67c7 Change error check to contains instead of == 2015-11-17 21:36:23 -08:00
Chris Bednarski 563e1aff56 Renamed some things so it's more apparent that reserved and dynamic port mapping have very similar code 2015-11-17 21:34:07 -08:00
Chris Bednarski 8705ea07a4 Remove \n since this is added by the logger 2015-11-17 21:17:51 -08:00
Chris Bednarski 5ac6664c46 Purge existing container during Start() 2015-11-17 20:50:14 -08:00
Chris Bednarski 0e1fe2373a Log container name and labels 2015-11-17 20:04:10 -08:00
Chris Bednarski 640af994ca Added a randomized alloc id for tests so container names don't collide 2015-11-17 19:45:33 -08:00
Chris Bednarski 9a7adb9eb3 Fix guards for docker port mapping and change dummy dynamic ports to real ports (0 is not a valid port) 2015-11-17 19:21:36 -08:00
Chris Bednarski d098acef90 Fix guard for port maps not being specified 2015-11-17 18:16:01 -08:00
Chris Bednarski 122220a424 Merge branch 'master' into f-docker-any-network 2015-11-17 17:22:13 -08:00
Chris Bednarski 9cad290b18 Merge pull request #436 from hashicorp/f-docker-cleanup
Cleanup docker driver
2015-11-17 17:13:17 -08:00
Chris Bednarski b22b5eb3aa Inline err assignment 2015-11-17 17:12:45 -08:00
Chris Bednarski a2f4188246 Streamline reading boolean values from the driver / job config 2015-11-17 16:58:23 -08:00
Chris Bednarski 67ee502acb Added missing linebreaks for log.Printf calls 2015-11-17 16:49:01 -08:00
Chris Bednarski 43aaf94383 Do Itoa once so line items are simpler 2015-11-17 16:31:47 -08:00
Chris Bednarski ffd3f114dd Merge branch 'docker-allow-to-add-labels' of https://github.com/fernandezvara/nomad into f-docker-labels 2015-11-17 16:02:42 -08:00
Chris Bednarski 3b7c252090 Improve phrasing in log messages 2015-11-17 15:17:44 -08:00
Alex Dadgar 7551a263c5 Merge pull request #389 from achanda/name
Set a name for the container
2015-11-17 15:07:23 -08:00
Chris Bednarski 629cdd6baa Clean up extraneous variables 2015-11-17 14:51:38 -08:00
Chris Bednarski 7f117b3b55 That's not a declaration 2015-11-17 14:27:58 -08:00
Chris Bednarski 89c6f56059 Remove restrictions from docker networking mode; we assume users know what they are doing 2015-11-17 14:25:10 -08:00
Chris Bednarski f2e8357e4a Merge branch 'master' into f-docker-cleanup 2015-11-17 14:20:29 -08:00
Antonio Fernández f7f83ee81c allow to set labels on docker containers 2015-11-17 14:12:49 +01:00
Carlos Diaz-Padron 77923255b4 Add hostname parameter to Docker driver 2015-11-16 22:44:44 -08:00
Chris Bednarski bac9bd60dc Improve logging and DRY some of the port mapping code 2015-11-16 19:55:49 -08:00
Diptanu Choudhury 03847dd65a Addressed some review comments 2015-11-16 22:29:06 -05:00
Chris Bednarski 714e1b52d1 Change logging port as %d to logging port.Value 2015-11-16 16:05:28 -08:00
Chris Bednarski 9f40143684 Merge branch 'master' into f-port-labels 2015-11-16 16:02:38 -08:00
Alex Dadgar 82f51601db Track Task State in the client and capture Wait results 2015-11-16 15:14:21 -08:00
Diptanu Choudhury c5102975e3 Made the code more DRY 2015-11-16 13:10:57 -08:00
Diptanu Choudhury e40229aed6 Fixed the docker auth config 2015-11-16 13:10:57 -08:00
Diptanu Choudhury 7d44725370 Adding comments to fields in the docker driver config 2015-11-16 13:10:57 -08:00
Alex Dadgar fa60d86fe5 mapstructure close quotes 2015-11-16 13:10:57 -08:00
Diptanu Choudhury 9d76572831 Making sure that there is only one port_map block in the docker driver config 2015-11-16 13:10:57 -08:00
Diptanu Choudhury 78a0f82bc5 Making the config for drivers public 2015-11-16 13:10:57 -08:00
Diptanu Choudhury 4e05b27111 Implemented port labeling and driver configs 2015-11-16 13:10:57 -08:00
Chris Bednarski 2f05a15aa5 Expose mapped ports 2015-11-12 17:23:04 -08:00
Chris Bednarski 7f3a2595af Change Docker fingerprinter to INFO and not error when the connection to the daemon fails; we simply assume docker isn't there. 2015-11-10 16:18:52 -08:00
Chris Bednarski e5688620e4 Changed behavior for Docker ENV
- Docker ENV variables now work the same way in production, dev, and test
- Docker ENV variables are *ignored* if docker.endpoint is present in the Nomad config file
- Remote tests now work correctly
2015-11-10 15:54:31 -08:00
Alex Dadgar bb9f2aa66c Docker privileged checks if host enabled it 2015-11-06 10:38:54 -08:00
Alex Dadgar 149366b89e Merge pull request #390 from the-control-group/f-docker-driver-options
Expanded docker driver options
2015-11-06 10:32:54 -08:00
Abhishek Chanda 94a4d00f4b Set a name for the container. 2015-11-06 03:33:57 +00:00
Shiem Edelbrock 5e2430de74 Fix build
returned wrong value, and forot a ":" :/
2015-11-05 17:57:51 -08:00
Shiem Edelbrock 1169bef912 Updated priviliged option, added client priviliged option
- Added error checking on priviliged mode.
- Added `docker.privileged.enabled` to client config/fingerprint
2015-11-05 16:40:20 -08:00
Alex Dadgar f9fd83c696 Merge fix 2015-11-05 13:46:02 -08:00
Shiem Edelbrock c174f4819b Added task configuraton options for docker driver
- Added `priviliged` option to task config to allow containers to run in
 priviliged mode.
- Added `dns-servers` option to task config to allow containers to use
  custom DNS servers
- Added `search-domains` option to task config to allow containers to
  use custom dns search domains
- Added authentication options (under key namespace `auth.*`) to allow
  authentication on a task level for docker remote.
- Updated site docs to reflect changes
2015-11-05 10:47:41 -08:00
Kenjiro Nakayama 1e47dd4c7d Apply SELinux label to allocate directory of docker driver 2015-11-05 09:06:22 +09:00
Alex Dadgar c7fd8993c1 Change two helper functions to be methods 2015-10-15 17:47:14 -07:00
Alex Dadgar a0d9f8dd33 Remove debug lines 2015-10-15 17:30:40 -07:00
Alex Dadgar 2f6a279d09 Docker alloc dir tests and test fixes 2015-10-15 16:59:08 -07:00
Alex Dadgar 1d15f6eda6 Bind alloc dir and task local dir to docker containers and parse args correctly 2015-10-15 16:40:07 -07:00
Abhishek Chanda dbe9fa9f27 Run gofmt on the docker driver 2015-10-13 23:21:16 +00:00
Abhishek Chanda 36dc8a5a18 Do not default to a network mode
Makes the driver error out when a wrong or un-supported
network_mode is used
2015-10-13 10:57:21 -07:00
Alex Dadgar a4035050e8 Change Docker/Rkt to set driver to 1 not true for consistency 2015-10-12 13:15:37 -07:00
Chris Bednarski a9f1f64199 Use DefaultDockerHost from fsouza upstream 2015-10-08 12:35:19 -07:00
Chris Bednarski 3c170b70ee Remove panic -- client is nil when there is an error 2015-10-06 19:09:59 -07:00
Chris Bednarski a4c3da6c0c Merge branch 'master' into b-docker-port 2015-10-06 17:54:32 -07:00
Chris Bednarski d046858057 Support boot2docker or VM for dev/test 2015-10-06 17:53:05 -07:00
Chris Bednarski 88bb01ab6f Fingerprint test should now behave correctly when the executor is not installed; fix some go vet issues 2015-10-06 16:33:02 -07:00
Chris Bednarski 8cd34d3947 Use docker.NewClient; move dockerClient before it's used 2015-10-06 16:26:31 -07:00
Chris Bednarski 5e73e746dc Merge branch 'docker-use-environment' of https://github.com/carlosdp/nomad into b-docker-port 2015-10-06 15:36:06 -07:00
Carlos Diaz-Padron aaddc7bf6c Use environment to connect to Docker by default
Uses the environment definition for docker by default. Docker will
default to the unix/tcp socket if the environment is not set.
2015-10-04 12:59:54 -07:00
Alex Dadgar faf8002d2d go-fmt 2015-10-02 10:54:04 -07:00
Abhishek Chanda 3751b46673 Make sure createHostConfig is called only once
The second call discards any mods to port binding or
network type

Fixes #185 and #196
2015-10-02 10:43:37 -07:00
Abhishek Chanda 0cb649bd5f Enable setting networking mode for docker
This patch enables setting networking mode for the docker
driver. This does not handle the `container` mode.
Closes #175
2015-10-01 18:52:41 -07:00
Armon Dadgar 6ff19853ef docker: check for missing unix socket 2015-09-27 17:49:58 -07:00
Alex Dadgar a45f9f2e71 Pull task environments into their own type to be reusable across drivers and executors 2015-09-27 17:37:24 -07:00
Alex Dadgar a7eebcbd5b merge fixes 2015-09-27 17:37:24 -07:00
Chris Bednarski 162247ffbe Correct implementation of config check for container and image cleanup; moved into Start and Open because handle does not have the config object 2015-09-27 13:59:38 -07:00
Chris Bednarski 9455370d8e Merge branch 'master' into f-docker-config-cleanup 2015-09-26 21:52:02 -07:00
Chris Bednarski 5678859752 Add configuration option for whether Nomad will clean up containers and images when they are no longer used 2015-09-26 18:53:15 -07:00
Chris Bednarski 79488baa4d Add all containers when searching for images that are still in used, since the container using the image may be stopped 2015-09-26 18:51:36 -07:00
Chris Bednarski af314b0f4d Log an info when an image can't be removed because it's still in use 2015-09-26 00:34:57 -07:00
Chris Bednarski 5632a33036 Use env.Get, remove sha256 checks, and change from regexp to strconv to test for int 2015-09-25 23:55:01 -07:00
Chris Bednarski 7021ac3ce8 Add docker 'command' to docs; cleanup some comments 2015-09-25 23:28:23 -07:00
Chris Bednarski 23407c54af Replace docker version and docker ps with native calls; no more exec! 2015-09-25 23:13:40 -07:00
Chris Bednarski 72cd22347f Docker kill now exits with an error, as expected 2015-09-25 22:43:19 -07:00
Chris Bednarski 0c31a83783 Go native for docker API calls 2015-09-25 20:01:03 -07:00
Chris Bednarski efb7c409bb Improve handling of tagged docker images
- Converted Start() to use docker native client throughout
- Better handling of latest vs. tagged images
    - We can now support multiple versions of an image
    - We will now not download a tag if we already have it
2015-09-25 18:22:10 -07:00
Chris Bednarski d2aa4fd53c Merge pull request #104 from hashicorp/f-docker-static-ports
Add static (reserved) ports for docker
2015-09-24 15:44:41 -07:00
Chris Bednarski 40ce6ece41 Get only one version of a docker container 2015-09-24 14:07:28 -07:00
Chris Bednarski f8e8084c71 Rename containerConfigForTask to createContainer to mirror the docker api call; other helper functions will follow this convention too 2015-09-24 00:00:46 -07:00
Chris Bednarski a071bb6d59 Rename containerConfig to hostConfig since there are two types of container configs 2015-09-23 23:57:04 -07:00
Chris Bednarski 9ff0e88d33 Added static / reserved port allocations to docker 2015-09-23 23:45:34 -07:00
Chris Bednarski 1978be24d0 Format as string instead of casting to string 2015-09-23 19:29:53 -07:00
Chris Bednarski e413c6f9d2 Support mapped ports and labelled ports for docker 2015-09-23 18:19:01 -07:00
Chris Bednarski 1654d08fca Add docker ports; change to uppercase examples and tests 2015-09-23 18:01:08 -07:00
Chris Bednarski 9067b2594f Added environment variables to docker 2015-09-22 23:12:24 -07:00
Chris Bednarski 09249d877c Removed comment that's no longer relevant 2015-09-22 20:11:07 -07:00
Chris Bednarski da93d4a30f Change error to err to be consistent with other usage 2015-09-11 10:26:33 -07:00
Chris Bednarski 4f83bc7090 Fix typos 2015-09-10 11:35:03 -07:00
Chris Bednarski 2ccad3d6e8 Change panic to a more helpful message 2015-09-09 19:04:06 -07:00
Chris Bednarski 237bf5f68e Merge branch 'f-driver-config' into f-docker-resource-constraints 2015-09-09 18:47:35 -07:00
Chris Bednarski a695e311dc Replace logging and config with DriverContext, which allows us to expand the dependency injection without changing the interface 2015-09-09 18:06:23 -07:00
Chris Bednarski 9965d28a22 Add logger to the dockerHandle created by Open() 2015-09-09 13:43:28 -07:00
Chris Bednarski a731a84136 Cleanup based on PR feedback
- Add validation that Resources.MemoryMB and Resources.CPU have non-zero values
- Change log calls to use logger whenever possible
- Change log format to add colon after driver.docker
2015-09-09 13:35:10 -07:00
Chris Bednarski b70b852662 Added preliminary resource constraints for docker; CPU and Memory 2015-09-09 01:08:31 -07:00
Chris Bednarski 4eb8fc5188 Added config to drivers; needed for docker driver to get the socket endpoint 2015-09-08 12:43:02 -07:00
Chris Bednarski 813f905a1c Removed debug logging 2015-09-03 21:08:14 -07:00
Chris Bednarski c483036e16 Added tests for docker, improved logging, and fixed a few bugs 2015-09-03 21:00:16 -07:00
Chris Bednarski b9ceb69683 Added initial implementation for the docker driver; tests pending 2015-09-03 12:35:22 -07:00