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