Commit graph

797 commits

Author SHA1 Message Date
Diptanu Choudhury 6e069369fe Implemented a method to purge files 2016-01-16 19:19:52 -08:00
Diptanu Choudhury c3fd960485 Fixing tests 2016-01-15 11:18:02 -08:00
Diptanu Choudhury 2bfdd71db9 add a logger 2016-01-14 23:16:30 -08:00
Diptanu Choudhury 3fb21b1b40 excluding directories before opening file for writing 2016-01-14 23:05:45 -08:00
Diptanu Choudhury 385fe065ec Added a test for testing if logrotator creates an empty dir when it starts from scratch 2016-01-14 22:43:52 -08:00
Diptanu Choudhury 5835d0e436 Fixed the logic of rotating files 2016-01-14 22:36:55 -08:00
Diptanu Choudhury 97dca83866 Fixed the test for writing only N amount of bytes as much as capacity 2016-01-14 18:30:53 -08:00
Diptanu Choudhury b474810134 Added a test for file rotation 2016-01-14 11:41:31 -08:00
Diptanu Choudhury 9749ee301d Added an impl for log-rotator 2016-01-14 11:13:11 -08:00
Alex Dadgar 6d157a0337 Fix tests 2016-01-11 09:58:31 -08:00
Alex Dadgar 7fe6c8bd1b Add folder 2016-01-11 09:58:31 -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 ef36ae0168 Use basic executor 2016-01-06 15:31:08 -08:00
Diptanu Choudhury 161f90abc6 Adding a , between args to netdav 2016-01-05 13:17:51 -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
Alex Dadgar 813d3545e3 Merge pull request #633 from achanda/opts_change
Update the insecure flag
2015-12-28 13:35:36 -08:00
Kenneth Feng a85b2c0e90 linux/exec: add /usr/share to ChrootEnv 2015-12-28 13:39:34 -05: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
Clint Shryock 77b5639160 Executors/Linux: Update Executor config struct 2015-12-17 10:25:42 -06:00
Diptanu Choudhury f6fb42835e Using cgo dependencies to look up users 2015-12-15 11:12:13 -08:00
Alex Dadgar b943c6e278 Remove all calls to the default logger 2015-12-11 15:02:13 -08:00
Chris Hines 5f5f91717d Avoid leaking a time.Ticker. 2015-12-11 15:30:53 -05:00
Alex Dadgar 0a950a4070 Merge pull request #556 from hashicorp/b-cache-docker-client
Do.Once docker client initialization
2015-12-10 16:19:06 -08:00
Chris Bednarski 545f0ff120 Move raw_exec enabled into the DevMode config block 2015-12-10 15:24:21 -08:00
Chris Bednarski 36e828ea9a Use ReadBoolDefault 2015-12-10 15:03:25 -08:00
Chris Bednarski 65d4aa889b Enable raw exec in dev mode 2015-12-10 14:48:06 -08:00
Alex Dadgar 5eeec26102 Do Once docker client initialization 2015-12-10 13:49:29 -08:00
Diptanu Choudhury de06482506 Sending the user process sigint during shutdown on linux 2015-12-08 08:14:13 -08:00
Chris Bednarski 9292a97062 Merge branch 'user-lookup-nocgo' of https://github.com/carlosdp/nomad into b-user-lookup 2015-12-01 13:44:56 -08:00
Carlos Diaz-Padron 55e49506f0 Refactor out userLookup to helper package
Also replaces user.Lookup in exec driver
2015-12-01 11:59:55 -08:00
Diptanu Choudhury 29915ddd16 Moving the args to helper 2015-11-26 14:13:19 -08:00
Chris Hines 37745f66c9 Speed up tests by allowing parallel execution. 2015-11-25 15:56:55 -05:00
Chris Hines 5b2168bb12 Use package testtask and httptest.Server to make client/driver tests OS independent. 2015-11-25 15:56:20 -05:00
Chris Hines e569fb4787 Use package testtask in client/driver/spawn tests. 2015-11-25 15:34:55 -05:00
Chris Hines 46e848c8ec Eliminate special case in production code for embedding test binary into chroot. 2015-11-25 15:31:29 -05:00
Chris Hines d7ebe099c1 Factor portable test task out of client/driver/executor. 2015-11-24 20:59:42 -05:00
Alex Dadgar c7cd7abe22 Inject the current binary into the chroot in test mode 2015-11-24 16:30:53 -08:00
Chris Hines ea5a60629a Fix Executor_Open_Invalid test for Windows. 2015-11-24 16:30:53 -08:00
Chris Hines cb262d787f Include Executor_Open_Invalid in test suite. 2015-11-24 16:30:53 -08:00
Chris Hines 769415dbd2 Improve names and documentation in test code. 2015-11-24 16:30:53 -08:00
Chris Hines ec7e78680d Use TestMain to provide portable echo, sleep, and write commands. 2015-11-24 16:30:53 -08:00
Alex Dadgar b2daa5e2e6 Standardize log messages in fingerprinters to DEBUG 2015-11-24 11:06:51 -08:00
Chris Bednarski 3ed8cb5b8b Merge pull request #481 from hashicorp/b-vet
Fix some issues caught by go vet
2015-11-20 16:31:47 -08:00
Chris Bednarski e6daf57b10 Merge pull request #480 from hashicorp/f-docker-tls-config
Added docker.tls config file options and docs
2015-11-20 16:31:41 -08:00
Chris Bednarski 655a4bf334 Fix some issues caught by go vet 2015-11-20 16:01:27 -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
Alex Dadgar 34b2f62c0b Merge pull request #442 from ChrisHines/windows-spawn
Fix tests for nomad/client/driver/spawn package to work on Windows.
2015-11-20 14:49:54 -08:00
Chris Bednarski 10bb550ad8 Added client checks back to the tests that can't use dockerSetup() 2015-11-20 13:50:47 -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
Chris Hines 3a77952d59 Handle additional edge cases when parsing environment variables. 2015-11-18 21:21:07 -05: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 c04e2b8b8e Fix executor tests 2015-11-18 12:29:04 -08:00
Alex Dadgar 54ddf4d3c1 Rebase 2015-11-18 12:29:04 -08:00
Alex Dadgar 7b918ee1e7 Update ParseAndReplace to take a list of args and remove shell style parsing 2015-11-18 12:29:04 -08:00
Chris Hines 713d63e467 Move test code to *_test.go file. 2015-11-18 14:46:56 -05: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 f4344092fb Change DNS and DNSSearch to use lists; added a test 2015-11-17 22:02:23 -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 6c1df52342 Merge pull request #439 from hashicorp/b-docker-ports-len
Fix docker port tests and empty port_map
2015-11-17 21:37:48 -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
Alex Dadgar 2a8bd98fdc Qemu driver takes a port_map to configure host to guest port forwarding 2015-11-17 20:54:53 -08:00
Chris Bednarski 5ac6664c46 Purge existing container during Start() 2015-11-17 20:50:14 -08:00
Chris Hines af2c47460b Speed up tests by allowing parallel execution. 2015-11-17 23:43:20 -05:00
Chris Hines 2120e9e10a Move defer f.Close after error check. 2015-11-17 23:43:20 -05:00
Chris Hines 8e8eccee20 Use TestMain to provide portable echo and sleep commands. 2015-11-17 23:43:19 -05:00
Chris Hines 071018569d Extract code to acquire temp file name and make sure the file is closed so os.Remove works on Windows. 2015-11-17 23:43:18 -05: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
Alex Dadgar 45bb0d349c Update API docs 2015-11-17 19:12:19 -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 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
Chris Bednarski b9dd4c40c5 Added basic resources to exec/java tests so each test has cpu, ram, and network 2015-09-25 16:49:18 -07:00
Alex Dadgar 3cea4288b9 Merge qemu test 2015-09-25 16:49:14 -07:00
Alex Dadgar 6725cbb3f5 Mount shared alloc dir, modified API and tests 2015-09-25 16:46:41 -07:00
Alex Dadgar 9d3e3c0704 AllocDirBuilder that creates the alloc directory structure 2015-09-25 16:46:41 -07:00
Armon Dadgar 5bc26c3f9d Merge pull request #101 from hashicorp/f-qemu-network-update
driver/qemu: Use Restricted Ports, additional port forwarding
2015-09-25 16:36:46 -07:00
Clint Shryock f1ede2f555 Fix bad copy-paste from refactoring 2015-09-25 08:36:46 -05: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
Clint Shryock 4e6c795352 re-order the resources check and don't bail if no ports requested 2015-09-24 14:32:54 -05:00
Chris Bednarski 3fd3c2a913 Add test case for PopulateEnvironment 2015-09-24 00:17:33 -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
Clint Shryock e67d892ea3 driver/qemu: Setup multiple port forwards 2015-09-23 23:15:28 -05: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 8b2f8efe70 Merge branch 'master' into f-port-configs 2015-09-23 15:31:00 -07:00
Chris Bednarski b8fd345128 Docs and remove uppercase since it's checked at the config parse step 2015-09-23 15:28:58 -07:00
Armon Dadgar 3bdae950c5 Merge pull request #97 from hashicorp/f-qemu-driver-docs
Basic Qemu docs
2015-09-23 14:37:56 -07:00
Clint Shryock e2c1bfe19c Basic Qemu docs 2015-09-23 14:44:49 -05:00
Chris Bednarski 73c4c1f210 Changed fmt for CPU to integer 2015-09-23 12:19:46 -07:00
Clint Shryock 0db8ce12d4 Update Java docs on how Java is detected 2015-09-23 14:16:43 -05:00
Clint Shryock b93518b509 start the Qemu docs 2015-09-23 13:58:42 -05:00
Chris Bednarski e2c324d098 Merge branch 'master' into f-port-configs 2015-09-23 11:57:12 -07:00
Chris Bednarski f4ad6e51dc Replaced List with Map 2015-09-23 11:56:36 -07:00
Chris Bednarski e26dbf4850 Fix some printf tokens 2015-09-22 23:43:05 -07:00
Chris Bednarski 9067b2594f Added environment variables to docker 2015-09-22 23:12:24 -07:00
Chris Bednarski 8bf45688b6 Check for nils before accessing data 2015-09-22 23:11:55 -07:00
Chris Bednarski 27376dc548 Added environment variables to Java 2015-09-22 22:36:10 -07:00
Chris Bednarski 3e90379f05 Pass dynamic ports to the exec driver via environment variables 2015-09-22 22:33:29 -07:00
Chris Bednarski 09249d877c Removed comment that's no longer relevant 2015-09-22 20:11:07 -07:00
Alex Dadgar dd2f16123f Fix qemu check and add debug lines when a driver is disabled 2015-09-22 17:36:44 -07:00
Alex Dadgar bbb3853dd8 Update Qemu Fingerprint check 2015-09-22 17:12:52 -07:00
Alex Dadgar dd0a76a9d7 Disable exec/java/qemu when non-root on non-windows OSes 2015-09-22 16:32:05 -07:00
Alex Dadgar 0e3f21b34f Linux executor with cgroup isolation support 2015-09-21 09:08:57 -07:00
Clint Shryock 61948802a8 executor/linux: Add UUID for the name, return error on failure to apply 2015-09-21 09:08:57 -07:00
Clint Shryock 067e65bf12 exec/linux: move Limit to after Start 2015-09-21 09:08:57 -07:00
Clint Shryock 0c526ddb8e spike on adding cgroups 2015-09-21 09:08:57 -07:00
Chris Bednarski 57e4f7c44f Merge branch 'master' into f-executor 2015-09-15 19:03:52 -07:00
Chris Bednarski 4cefbc3c22 Rename exec package to executor so it works better with goimports; fixes for Java driver 2015-09-15 14:03:03 -07:00
Chris Bednarski 6a7b82f7ba Update Java driver to use Executor 2015-09-15 13:45:48 -07:00
Chris Bednarski 9db88f6013 Updated exec driver to use nomad/client/exec 2015-09-15 13:11:56 -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 2a40673a3a Relax Qemu version regexp to accomodate build identifier in the version command 2015-09-09 18:39:40 -07:00
Chris Bednarski cc4d361ee9 Updated Qemu and tests to use DriverContext 2015-09-09 18:38:52 -07:00
Chris Bednarski 0281debee4 Merge branch 'master' into f-driver-config
Conflicts:
	client/driver/driver.go
2015-09-09 18:19:19 -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 1ff755f31a Merge pull request #24 from hashicorp/qemu-driver
Basic Qemu driver implementation
2015-09-09 17:43:13 -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
Clint Shryock 037ae6d6eb driver/qemu+java: Code cleanups 2015-09-09 14:38:42 -05:00
Clint Shryock bd0f92f977 driver/qemu: Actually use the requred Memory from the Task 2015-09-09 14:30:35 -05:00
Clint Shryock 2611523b3b driver/qemu: Require a memory resource on the task 2015-09-09 14:28:16 -05:00
Chris Bednarski ac277c5765 Change SIGINT to SIGTERM 2015-09-09 01:52:58 -07:00
Chris Bednarski b70b852662 Added preliminary resource constraints for docker; CPU and Memory 2015-09-09 01:08:31 -07:00
Clint Shryock 98c53162d2 driver/qemu: add to builtin drivers 2015-09-08 16:25:36 -05:00
Clint Shryock d2822a435d driver/qemu: Basic lifecycle management of Qemu images 2015-09-08 16:08:49 -05: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
Clint Shryock c1f982a1d0 Merge branch 'master' into qemu-driver
* master: (66 commits)
  Use a single implementation of GenerateUUID
  scheduler: use update strategy for rolling updates
  nomad: adding helper structs
  scheduler: Adding CreateEval to Planner
  nomad: worker supports create eval
  nomad: guard eval creation based on parent eval
  nomad: adding Eval.Create endpoint
  nomad: support time wait for evaluations
  nomad: adding fields to cause an evaluation to 'wait'
  scheduler: support in-place allocation updates
  scheduler: util method to diff task groups
  nomad: helper struct func
  nomad: PopUpdate should minimize plan size
  nomad: adding helper to manipulate plans
  scheduler: share context and stack
  scheduler: allow updating the base nodes
  scheduler: allow StaticIterator to update base set
  scheduler: pull node shuffle into util
  nomad: adding node GC
  nomad: using Raft StartAsLeader to make tests faster
  ...
2015-09-08 09:52:40 -05:00
Chris Bednarski bd06e4bad2 Merge pull request #19 from hashicorp/test-resources
Added example python and java apps for testing
2015-09-07 17:03:09 -07:00
Armon Dadgar f1da1226c1 driver/java: Add to builtin list 2015-09-04 13:09:11 -07:00
Clint Shryock 60ad3b7517 Merge remote-tracking branch 'upstream/master' into qemu-driver
* upstream/master:
  Removed debug logging
  Added tests for docker, improved logging, and fixed a few bugs
  Added initial implementation for the docker driver; tests pending
2015-09-04 14:50:47 -05:00
Chris Bednarski aa3937f248 Added example python and java apps for testing
- Java example from @catsby
2015-09-04 11:13:24 -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
Clint Shryock 9cb1dc95a0 driver: Add README.md for docs 2015-09-03 17:01:43 -05:00
Chris Bednarski b9ceb69683 Added initial implementation for the docker driver; tests pending 2015-09-03 12:35:22 -07:00
Clint Shryock 8c6128503f driver/java: use filepath.Join instead of simple + 2015-09-03 10:25:09 -05:00
Clint Shryock 256d5c1286 driver/java: Don't error if Java isn't found; log if error parsing 2015-09-03 10:02:48 -05:00
Clint Shryock 1dd0b63cb4 clean up orphaned java processes 2015-09-03 09:49:39 -05:00
Clint Shryock c774c67b6b driver/java: update Fingerprint for Java driver 2015-09-02 11:41:25 -05:00
Clint Shryock 9d5c04ddbb Spike at a Java driver, runs Java jars 2015-09-01 17:07:41 -05:00
Clint Shryock 9e79a15789 move test logger to shared file 2015-09-01 16:56:42 -05:00
Armon Dadgar 0527529f88 client: allocate alloc dir and cleanup 2015-08-30 17:35:58 -07:00
Armon Dadgar c99fe72f54 driver/exec: basic implementation 2015-08-29 16:20:07 -07:00
Armon Dadgar 83dd313b5c client: working on runners 2015-08-29 15:46:10 -07:00
Chris Bednarski 0b255c6af6 Pass config to fingerprints; update tests 2015-08-25 16:21:29 -07:00
Armon Dadgar 8e32075210 client: making progress 2015-08-23 16:49:48 -07:00
Armon Dadgar 3663c44dee client: standardize naming 2015-08-23 15:36:06 -07:00
Armon Dadgar c5553017be client: scan for drivers 2015-08-20 16:53:43 -07:00
Armon Dadgar a561fbb9a9 driver: skeleton package 2015-08-20 16:50:28 -07:00