Commit graph

335 commits

Author SHA1 Message Date
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 d00c700318 go fmt 2015-11-16 16:23:03 -08: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 5e876e9c86 Fixed the java driver config 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 3b3907e367 Fixed the exec driver config 2015-11-16 13:10:57 -08:00
Diptanu Choudhury ba9f101660 Fixed the test related to setting env variables in tasks 2015-11-16 13:10:57 -08:00
Diptanu Choudhury 0673b832fb Fixed compilation issues with driver tests 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 ef00ab3198 Change this to a valid IP address so docker can bind to it 2015-11-12 21:46:59 -08:00
Chris Bednarski 2f05a15aa5 Expose mapped ports 2015-11-12 17:23:04 -08:00
Alex Dadgar d3e2455459 Merge pull request #408 from hashicorp/f-client-restore
Client Restore State Fixes
2015-11-11 12:32:11 -08:00
Chris Bednarski b637ca7f60 Added some comments to the test to explain why we're doing stuff this way 2015-11-10 17:48:06 -08:00
Chris Bednarski c5682fc751 Change dockerIs* to accept *testing.T for logging 2015-11-10 17:43:08 -08:00
Alex Dadgar 787164044d Enable Open tests for Exec/Java 2015-11-10 16:59:52 -08:00
Alex Dadgar 90336a160e Guard mounting dev/ and proc/ and TaskRunner_RestoreState test 2015-11-10 16:35:33 -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
Alex Dadgar 933498e388 Client Restore test 2015-11-10 16:03:18 -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 d56f9715c9 Comments on alive 2015-11-06 11:26:14 -08:00
Alex Dadgar 2321bddf2e Add Valid command to spawner and make executors check when opening 2015-11-06 11:23:27 -08:00
Alex Dadgar f36685c7d2 Merge pull request #392 from hashicorp/f-raw-exec-use-exec
RawExec driver uses exec_basic
2015-11-06 10:48:55 -08:00
Alex Dadgar 71be38abe0 merge 2015-11-06 10:42:49 -08:00
Alex Dadgar a5940ef25e Merge 2015-11-06 10:41:42 -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
Alex Dadgar 135d8630f6 Merge pull request #391 from hashicorp/f-periodic-fingerprint
Add support for periodic fingerprints and make consul periodic
2015-11-05 18:49:42 -08:00
Diptanu Choudhury b035661d7d Passing in the AllocID to exec context so that it can be used in the drivers 2015-11-05 18:34:04 -08: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 880d567836 Merge pull request #388 from hashicorp/f-basic-exec-use-spawner
Basic executor uses spawner and an executor test harness
2015-11-05 13:57:11 -08:00
Alex Dadgar f9fd83c696 Merge fix 2015-11-05 13:46:02 -08:00
Alex Dadgar d14bc26607 Calling incorrect executor build method 2015-11-05 11:54:51 -08:00
Clint e494a24335 Merge pull request #381 from hashicorp/f-getter-refactor
client/drivers: Refactor to use Getter wrapper
2015-11-05 13:47:42 -06:00
Alex Dadgar 04aecbda0b Fix typo 2015-11-05 11:31:50 -08:00
Alex Dadgar 3cf7dfb588 Merge pull request #377 from nak3/selinux-docker-driver
Apply SELinux label to allocate directory of docker driver
2015-11-05 10:54:48 -08:00
Shiem Edelbrock adb8d4c1f7 Merge branch 'master' of https://github.com/hashicorp/nomad into f-docker-driver-options
* 'master' of https://github.com/hashicorp/nomad: (59 commits)
  Move the executor and spawn package into driver
  Remove file watching
  Check if the PID is alive instead of heartbeating through modify time
  Update CHANGELOG.md
  nomad/watch: add a note about the Item struct
  go fmt this file
  Vet errors
  Search path
  Update website
  Make a basic executor that can be shared and fix some fingerprinting/tests
  Small improvements
  Use const value for AWS metadata URL
  Create Spawn pkg that handles IPC with the spawn-daemon and update exec_linux to use that
  Fixed the restart policy syntax
  Introducing vars to create default batch and service restart policies
  Fixed the tests
  Declaring Batch and Service default restart policies
  Fixing tests to not create a TG without restart policies
  This option only work -> This option only works
  leave -> leaving
  ...
2015-11-05 10:48:09 -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
Alex Dadgar 3cc2dd52b6 exec_basic uses Spawner; create shared test harness for executors 2015-11-05 09:58:57 -08:00
Clint Shryock fb8066d8f3 add checksums to tests, formatting after rebase 2015-11-05 09:23:45 -06:00
Clint Shryock 1a35649ea1 remove debug line 2015-11-05 08:55:30 -06:00
Clint Shryock 145a2e3610 refactor drivers to use new getter 2015-11-05 08:55:30 -06:00
Alex Dadgar 587031f14d Get rid of exec.cmd struct and setuid file 2015-11-04 17:20:52 -08:00
Alex Dadgar 4259d3a43c Move the executor and spawn package into driver 2015-11-04 16:53:27 -08:00
Alex Dadgar f210fcd1a6 Merge pull request #380 from hashicorp/f-daemonize
Improve spawn-daemon and Nomad Client usage of it
2015-11-04 16:44:50 -08:00
Kenjiro Nakayama 1e47dd4c7d Apply SELinux label to allocate directory of docker driver 2015-11-05 09:06:22 +09:00
Alex Dadgar d83777f198 Make a basic executor that can be shared and fix some fingerprinting/tests 2015-11-03 12:47:48 -08:00
Alex Dadgar 271702f4a2 Small improvements 2015-11-03 10:50:30 -08:00
Alex Dadgar 5562fc7672 Create Spawn pkg that handles IPC with the spawn-daemon and update exec_linux to use that 2015-11-02 20:28:37 -08:00
Alex Dadgar 01e0be4cc6 Add comment explaining the qemu-img command on windows 2015-10-29 16:57:02 -07:00
Alex Dadgar 2781cbbde1 Exec driver only applies on linux as root 2015-10-28 17:22:04 -07:00
Alex Dadgar a5a1e45f4b Get Qemu to fingerprint and test properly on both windows and linux 2015-10-27 15:27:11 -07:00
Clint 4b0dc2cb39 Merge pull request #288 from hashicorp/f-go-getter
Drivers: Use go-getter for artifact retrieval, add artifact support to Exec, Raw Exec drivers
2015-10-26 10:00:29 -05:00
Clint Shryock 343daeb1ea drivers: Add/Use go-getter to fetch remote binaries
Updates Qemu, Java drivers to use go-getter to fetch binaries
Adds remote artifact support for Exec, Raw Exec drivers
2015-10-26 09:40:06 -05:00
Alex Dadgar b5caa6c5bd Merge branch 'master' of https://github.com/hashicorp/nomad 2015-10-23 16:23:54 -07:00
Alex Dadgar d2b23c9143 Format rkt_test 2015-10-23 16:23:43 -07:00
Abhishek Chanda 6ecab13b5d Cleanup tests
- Consolidate checking if non-windows and if qemu is installed
- Fix non-windows check
2015-10-23 14:19:22 -07:00
Abhishek Chanda 81da6ce54e Just put the version as string 2015-10-21 21:09:04 -07:00
Alex Dadgar fd77180d64 Merge pull request #291 from hashicorp/d-rkt-volume-mounts-blocked
Document that Rkt doesn't support task directory mounting
2015-10-16 17:07:53 -07:00
Abhishek Chanda 9e541450c2 Actually append jvm opts to the CLI
- Also adds a test
2015-10-16 22:45:16 +00:00
Abhishek Chanda dfbdb10fcb No need to pass jvm_options initially 2015-10-16 12:44:43 -07:00
Abhishek Chanda ab1a8f3532 Some minor style cleanups 2015-10-16 12:44:33 -07:00
Abhishek Chanda 6ab97078e5 Support passing options to the JVM in java driver
Closes #292
2015-10-16 12:44:33 -07:00
Alex Dadgar cadc738fa0 Fix broken test 2015-10-16 10:11:31 -07:00
Alex Dadgar f185701d6d Rkt driver clears task environment variables 2015-10-15 18:19:13 -07:00
Alex Dadgar 384a622c59 Add clearing to environment variables 2015-10-15 18:13:05 -07: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 3c7bbc6fd7 Update driver config names for consistency and make the trust_prefix optional 2015-10-12 14:37:56 -07:00
Alex Dadgar 9af8e8d92d Log starting command 2015-10-12 14:33:19 -07:00
Alex Dadgar 6417c506ad Capture Rkt logs 2015-10-12 14:33:18 -07:00
Alex Dadgar cd3135c874 Separate args from exec command; inject environment variables and general cleanup of Rkt driver 2015-10-12 14:33:18 -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
Alex Dadgar c56017179f Fix raw exec test race condition 2015-10-09 20:56:28 -07:00
Alex Dadgar 540007c1a3 Merge pull request #237 from hashicorp/f-raw-exec-driver
A raw fork/exec driver that provides no isolation.
2015-10-09 11:30:12 -07:00
Alex Dadgar db0ba9688d Better parsing of raw_exec option and updated docs 2015-10-09 11:29:59 -07:00
Chris Bednarski 0d6c75eefb Merge pull request #225 from hashicorp/b-docker-port
Change docker default port to support windows and boot2docker
2015-10-08 23:50:11 -07:00
Chris Bednarski a9f1f64199 Use DefaultDockerHost from fsouza upstream 2015-10-08 12:35:19 -07:00
Alex Dadgar 751a17ef0c Actually add the files 2015-10-08 12:19:39 -07:00
Alex Dadgar 9d1d179deb Change name from pexec to raw_exec; hamming distance one seemed like a bad idea 2015-10-08 12:19:39 -07:00
Alex Dadgar dbbaf03b98 Privileged exec driver 2015-10-08 12:19:39 -07:00
Alex Dadgar 1467cb6131 Merge pull request #165 from achanda/rkt
Add a driver for rkt
2015-10-07 16:00:21 -07:00
Abhishek Chanda ba362fae07 Run gofmt 2015-10-07 22:24:16 +00:00
Abhishek Chanda 0e185b6eaf Add an optional exec parameter to task config
This overrides the default exec command in the ACI
2015-10-07 15:15:36 -07:00
Abhishek Chanda 853cd7fa2d Use Run for adding trust prefix
The trust needs to be added before anything can progress
2015-10-07 11:15:17 -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
Abhishek Chanda bd91c51643 Use Start to run commands
Run blocks
2015-10-06 15:56:39 -07:00
Abhishek Chanda ef84902f79 Add prefix to all message logs for rkt driver 2015-10-06 15:56:39 -07:00
Abhishek Chanda 99b3660047 Register rkt as a built in driver 2015-10-06 15:56:39 -07:00
Abhishek Chanda 528632da3d Add missing import and remove unsued one 2015-10-06 15:56:39 -07:00
Abhishek Chanda 612aa69f34 Do not run containers interactively 2015-10-06 15:56:39 -07:00
Abhishek Chanda 578aa89e81 Do not register to the metadata service 2015-10-06 15:56:39 -07:00
Abhishek Chanda ab6d756dfe Remove a stray comment 2015-10-06 15:56:39 -07:00
Abhishek Chanda 02eb3659c9 Fix constructing the handle 2015-10-06 15:56:39 -07:00
Abhishek Chanda b6b7d9e875 Add a test fort he rkt driver 2015-10-06 15:56:39 -07:00
Abhishek Chanda bcb74acbca Fix name of prefix 2015-10-06 15:56:39 -07:00
Abhishek Chanda 8efe3e18ba Add a driver for rkt
rkt docs here
https://github.com/coreos/rkt
2015-10-06 15:56:39 -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
Chris Bednarski 42afc2bfeb This is needed for 1.4.2 compat; not sure what removed it 2015-10-06 00:32:34 -07:00
Chris Bednarski 58217619e3 Add skip detection for all docker tests 2015-10-06 00:27:05 -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 aeb400cd8a update test to reflect not uppercasing passed env vars 2015-10-02 17:49:18 -07:00
Antoine POPINEAU a03ce2b39c Removed capitalization of user-defined envvars. 2015-10-02 17:46:55 -07:00
Antoine POPINEAU 56944536fc Moved the envvars logic to TaskEnvironment and TaskEnvironmentVariables(). Added tests there. 2015-10-02 17:46:55 -07:00
Antoine POPINEAU 722141bfa6 Added a jobspec directive to specify envvars. Updated Docker driver to use them accordingly. 2015-10-02 17:46:55 -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 f8e434aa1d Add environment package 2015-09-27 17:37:25 -07:00
Alex Dadgar a4a440da8e ParseAndReplace args at the executor level 2015-09-27 17:37:24 -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 a96f6dfa6d Remove cruft from rebase 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 198159c5be Put that back! 2015-09-25 18:38:41 -07:00
Chris Bednarski a8c8fc2f96 Merge branch 'master' into b-docker-fixes
Conflicts:
	client/driver/docker_test.go
	client/driver/java_test.go
	client/driver/qemu_test.go
2015-09-25 18:35:23 -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
Alex Dadgar 70a1a37f84 Small test cleanup 2015-09-25 17:55:29 -07:00
Chris Bednarski d8e492d950 Added a failing test case for multiple docker tags 2015-09-25 17:38:07 -07:00
Chris Bednarski aa3019780d Added docker test to spin up 3 containers at the same time 2015-09-25 17:35:33 -07:00
Chris Bednarski 32d260281f Added guards to tests so we can more gracefully degrade the test suite when thing are not installed 2015-09-25 16:49:26 -07:00