Commit Graph

189 Commits

Author SHA1 Message Date
Nick Ethier
5b14d24bf4 executor v2 (#4656)
* client/executor: refactor client to remove interpolation

* executor: POC libcontainer based executor

* vendor: use hashicorp libcontainer fork

* vendor: add libcontainer/nsenter dep

* executor: updated executor interface to simplify operations

* executor: implement logging pipe

* logmon: new logmon plugin to manage task logs

* driver/executor: use logmon for log management

* executor: fix tests and windows build

* executor: fix logging key names

* executor: fix test failures

* executor: add config field to toggle between using libcontainer and standard executors

* logmon: use discover utility to discover nomad executable

* executor: only call libcontainer-shim on main in linux

* logmon: use seperate path configs for stdout/stderr fifos

* executor: windows fixes

* executor: created reusable pid stats collection utility that can be used in an executor

* executor: update fifo.Open calls

* executor: fix build

* remove executor from docker driver

* executor: Shutdown func to kill and cleanup executor and its children

* executor: move linux specific universal executor funcs to seperate file

* move logmon initialization to a task runner hook

* client: doc fixes and renaming from code review


* taskrunner: use shared config struct for logmon fifo fields

* taskrunner: logmon only needs to be started once per task
2018-10-16 16:53:31 -07:00
Alex Dadgar
da0bec03c1 Fix make check errors 2018-09-04 16:03:52 -07:00
Alex Dadgar
383251f53b Fix kill timeout exceeding 5m on Docker driver
Fixes an issue where the Docker API client would timeout before the kill
timeout was hit.
2018-08-17 16:01:09 -07:00
Daniele Valeriani
a4771a49ab Add test for cpu_cfs_period 2018-07-16 22:43:34 +02:00
Alex Dadgar
98c7abe541 Tests only use testlog package logger 2018-06-13 15:40:56 -07:00
Alex Dadgar
0e85d2032d Fix TestDockerDriver_StartNVersions 2018-05-31 17:14:59 -07:00
Justen Walker
ba2d9570e8 driver/docker: add test for dockerImageRef 2018-05-14 14:24:03 -04:00
Justen Walker
f4670f6003 driver/docker: fix up TestParseDockerImage 2018-05-14 14:23:48 -04:00
Justen Walker
44923339a8 driver/docker: fix TestDockerDriver_ForcePull_RepoDigest 2018-05-14 14:23:02 -04:00
Justen Walker
e77d8a59eb driver/docker: pull image with digest
GH #4290

Add digest support to the docker driver image config. This commit
factors out some common code to print the repo:tag (dockerImageRef) for
events/logs as well as parsing the image to retreive the repo,tag
(parseDockerImage) so that the results are consistent/sane for both
repo:tag and repo@sha256:... references.

When pulling an image with a digest, the tag is blank and the repo
contains the digest. See:
https://github.com/fsouza/go-dockerclient/blob/master/image_test.go#L471
2018-05-14 10:42:58 -04:00
Javier Palomo Almena
92cbfd0cf3 docker tests: Fix usage of NewDriverContext 2018-04-23 22:51:06 +02:00
Chelsea Holland Komlo
9dfb5c6b46 go style; update comments 2018-03-21 15:15:25 -04:00
Chelsea Holland Komlo
1570972cb3 add concept of health checks to fingerprinters and nodes
fix up feedback from code review

add driver info for all drivers to node
2018-03-21 15:15:25 -04:00
Michael Schurter
b096fd7539 docker: make volume errors recoverable
The interface+mock just to test this one little error handling may seem
like overkill but there was just no other way to write an automated test
around this logic as there's no way to simluate this error with stock
Docker.
2018-03-15 17:52:43 -07:00
Alan Scherger
83ca7beeeb drivers: use ctx.TaskEnv for mount points 2018-02-08 12:59:20 -06:00
Michael Schurter
0a806f66f6 Merge pull request #3790 from 42wim/dockerv6
Service registration for IPv6 docker addresses (Fixes #3785)
2018-02-05 17:07:53 -08:00
Michael Schurter
e486a27a4e docker: Skip IPv6 test if IPv6 disabled 2018-02-05 16:24:30 -08:00
Chelsea Komlo
7b9cf12244 Merge pull request #3781 from hashicorp/f-client-fingerprint-refactor
Refactor client fingerprinters to return a diff of node attributes
2018-02-01 20:13:44 -05:00
Wim
51bf06f468 Add AdvertiseIPv6Address test 2018-02-01 23:21:47 +01:00
Chelsea Holland Komlo
ba2ebbc7f9 code review fixup 2018-01-31 18:34:03 -05:00
Chelsea Holland Komlo
a9447addd3 add applicable boolean to fingerprint response
public fields and remove getter functions
2018-01-31 13:21:45 -05:00
Filip Ochnik
7507a1e161 Add ReadonlyRootfs option to the Docker driver 2018-01-27 14:38:29 +01:00
Chelsea Holland Komlo
f5fc20a564 create safe getters and setters for fingerprint response 2018-01-26 11:22:05 -05:00
Chelsea Holland Komlo
5e8151d700 refactor Fingerprint to request/response construct 2018-01-24 11:54:02 -05:00
Alex Dadgar
0cf5c76326 Allow overriding an image's entrypoint in Docker
Fixes https://github.com/hashicorp/nomad/issues/2219
2018-01-23 14:05:00 -08:00
Filip Ochnik
4080aac002 Finish implementation of the capabilities whitelist 2018-01-21 12:14:24 +01:00
Filip Ochnik
7f072ab2da Add an option to add and drop capabilities in the Docker driver 2018-01-14 19:56:57 +01:00
Alex Dadgar
db63054740 Keyify struct 2017-12-11 17:23:14 -08:00
Chelsea Holland Komlo
927c0a4d88 change location of default kill signal 2017-12-06 17:48:25 -05:00
Chelsea Holland Komlo
9e49836d4f move kill_signal to task level, extend to docker 2017-12-06 14:36:39 -05:00
Preetha Appan
d522149f6b Missed assert in one place 2017-11-20 13:04:38 -06:00
Preetha Appan
ee4b4d859d Better error validation, and added test case for invalid sysctl inputs 2017-11-20 12:07:18 -06:00
Preetha Appan
0d4797711b Address some review comments 2017-11-20 11:15:09 -06:00
Preetha Appan
9e07471e48 Fix gofmt warnings 2017-11-18 09:23:09 -06:00
Preetha Appan
48829e88d0 Fix test compilation after rebase 2017-11-17 17:46:04 -06:00
Samuel BERTHE
e6c0372318 review(docker driver): sysctls -> sysctl + ulimits -> ulimit 2017-11-17 16:30:45 -06:00
Samuel BERTHE
657619c0ec Oops 2017-11-17 16:14:14 -06:00
Samuel BERTHE
cf586996f4 test(docker driver): testing sysctls and ulimits 2017-11-17 16:03:22 -06:00
Michael Schurter
b37a03a458 Add a test demonstrating the bug
Fails on Docker 17.09, passes on Docker 17.06 and earlier
2017-11-14 15:25:52 -08:00
Preetha Appan
8e70fd812a Make device mounting unit test verify configuration via docker inspect 2017-11-13 09:56:54 -06:00
Preetha Appan
b2eeab1b8c Unit test (linux only) that tests mounting a device in the docker driver 2017-11-13 09:56:54 -06:00
Preetha Appan
85c5218b78 Add support for passing device into docker driver 2017-11-13 09:56:54 -06:00
Alex Dadgar
a94bab6491 fix spelling mistake 2017-11-03 15:04:59 -07:00
Jonathan Ballet
15114e448e docker: changed OOM killed error message 2017-10-27 20:30:52 +02:00
Jonathan Ballet
e5a790753d docker: log that a container has been killed by the OOM killer
Fix: #2203 (at least for Docker tasks)
2017-10-27 18:05:27 +02:00
Alex Dadgar
f5549a6eb9 go style vars 2017-10-25 10:49:34 -07:00
Alex Dadgar
8accabcd87 move to consul freeport implementation 2017-10-23 16:51:40 -07:00
Alex Dadgar
e1b1465081 Standardize retrieving a free port into a helper package 2017-10-23 16:48:20 -07:00
Alex Dadgar
3be474b811 don't double parallel 2017-10-23 16:48:06 -07:00
Alex Dadgar
41773c3fdf respond to comments 2017-10-23 15:50:27 -07:00