Commit graph

13974 commits

Author SHA1 Message Date
Danielle Tomlinson 65457dd2f2 rawexec: SIGINT is not available on Windows 2019-01-17 18:43:14 +01:00
Danielle Tomlinson de86435cf8 docker: Test cleanup for windows
* Docker for Windows does not support ulimits
* Use filepath.ToSlash to test workdir
* Convert expected mount paths to system style
* Skip security-opt test on windows
  - Windows does not support seccomp, and it's unclear which options are
    available.
* Skip StartN due to lack of sigint
* docker: Use api to get image info on windows
* No bridge on windows
* Stop hardcoding /bin/
2019-01-17 18:43:14 +01:00
Danielle Tomlinson 3d2f0bb7da docker: ExpandPath tests validate slashpath 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 62e06eda56 chore: Cleanup formatting 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 37190a5595 dockerlogger: Fix tests on windows
Uses the home directory and windows path expansion, as c:\tmp doesn't
necessarily exist, and mktemp would involve unnecessarily complicating
the commands.
2019-01-17 18:43:13 +01:00
Danielle Tomlinson e6c0738b65 Expand unix build definition 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 8ef78e7912 appveyor: GOMAXPROCS: 1 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 580b8c5dda client/fs: Skip delete-while-streaming test on win 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 4dbddd0620 client/fs: windows error message for not found 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 587405079d api: Validate the slash variant of a given path
This validates the slash variant of a RelativeDest, rather than the
platform native version, to support test execution on windows.
2019-01-17 18:43:13 +01:00
Danielle Tomlinson 0f1d5a9315 appveyor: Add gopath/bin to PATH 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 0659f0aa04 appveyor: Push test results as an artifact 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 32e7aecf2d appveyor: Fix env access? 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 477c0b1d23 plugins: Load plugins on windows 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 771dd92f06 DROP: disable consul tests on windows 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 160c8d80e8 testutil: Start vault in the same routine as waiting
This is a workaround for the windows process model.

Go os/exec does not pass the parent process handle to the child
processes STARTUPINFO struct, this means that unless we wait in
the _same_ execution context as Starting the process, the
handle will be lost, and we cannot kill it without regaining
a handle.

A better long term solution would be a higher level process
abstraction that uses windows.CreateProcess on windows.
2019-01-17 18:43:13 +01:00
Danielle Tomlinson 915bab2365 vaultclient: use require for error assertions 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 5d54a0408f fingerprint: Limit vault shutdown waiting
When vault is installed through chocolatey, it also installs a shim that
will not pass kill signals to the child. This means the process will
never actually terminate, and we lose the process handle.

Here, rather than waiting forever, we timeout fast.
2019-01-17 18:43:13 +01:00
Danielle Tomlinson dc55d3e353 vaultclient: Update tests for vault 1.0 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 7a5d511349 fingerprinter: Use HCLogger for windows 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 96b1d5d20c testtask: Build on windows 2019-01-17 18:43:13 +01:00
Danielle Tomlinson 2656f28f08 chore: Setup appveyor for windows test execution 2019-01-17 18:43:13 +01:00
Mahmood Ali 061c38e4b5
Merge pull request #5202 from hashicorp/b-no-gpl-gopsutil
Update shirou/gopsutil dep to use non-GPL code
2019-01-17 11:40:04 -05:00
Preetha Appan 4ccf96de03
wip cluster with raw exec enabled 2019-01-17 10:18:19 -06:00
Mahmood Ali 21e193ecf4 Update shirou/gopsutil dep to use non-GPL code
Previously used `github.com/shirou/gopsutil`[1], used some GPL code [2].
This was somewhat unintentional, and was addressed later [3].

Due to being late in the cycle of Nomad release when this is noticed,
and time elapsed since we updated the dependency, we want to be
conservative in our package updates.

As such, we opted to go with forking the repo to use the previously used
version with the GPL removal code commit, done in [4].

[1] 5776ff9c7c
[2] 5776ff9c7c/host/include/smc.c
[3] c95755e4bc
[4] 62d5761ddb
2019-01-17 11:08:30 -05:00
Mahmood Ali 677e11da86 fix imports 2019-01-16 19:53:48 -05:00
Michael Schurter bea4d297b9
Merge pull request #5197 from hashicorp/b-rkt-cpu
rkt: revert to pre-0.9 --cpu flag
2019-01-16 15:05:21 -08:00
Preetha 71aa7c2b37
Merge pull request #5182 from hashicorp/b-docker-fingerprint-log-once
Make driver logging less redundant
2019-01-16 11:35:33 -06:00
Preetha Appan 55319b05d1
clean up read access 2019-01-16 11:04:11 -06:00
Danielle Tomlinson a695b3562c
Merge pull request #5193 from hashicorp/dani/logmon-reattach
logmon: Reattach to existing loggers
2019-01-16 17:34:13 +01:00
Preetha Appan 469a286b1b
Refactor logging in drivers to use a tri-state boolean
Changes logging warnings/errors only if the state changes
from healthy to unhealthy
2019-01-16 10:19:31 -06:00
Preetha Appan 0c2c0a2d43
Make docker driver logging less redundant 2019-01-16 10:16:57 -06:00
Michael Schurter 282cdde382
Merge pull request #5199 from hashicorp/test-dispatch
test: porting TestTaskRunner_SimpleRun_Dispatch
2019-01-16 06:33:51 -08:00
Danielle Tomlinson 99da4c780d logmon: Reattach to existing loggers
This commit prevents us from creating duplicate logmon hooks when
restoring allocations by persisting the logmon reattach config using
HookData.
2019-01-16 14:56:10 +01:00
Michael Schurter daa7d029a1 test: porting TestTaskRunner_SimpleRun_Dispatch
Porting test from 0.8 to 0.9.
2019-01-15 15:22:13 -08:00
Alex Dadgar 5de91cbfb7
Merge pull request #5046 from oleksii-shyman/docker_runtimes
Nvidia runtime
2019-01-15 14:34:14 -08:00
Michael Schurter 1879a7f788 rkt: revert to pre-0.9 --cpu flag
See
https://github.com/hashicorp/nomad/issues/3394#issuecomment-453296121
for details. During 0.9 development we switched to shares, but we'd
prefer to maintain backward compat.
2019-01-15 13:15:28 -08:00
Chris Baker d355650026
Merge pull request #5194 from hashicorp/f-minor-update-docs-tense
docs: updated tense around fixed bug
2019-01-15 14:50:57 -05:00
oleksii.shyman e41fbf7577 Add support for docker runtimes
- docker fingerprint issues a docker api system info call to get the
  list of supported OCI runtimes.
  - OCI runtimes are reported as comma separated list of names
  - docker driver is aware of GPU runtime presence
  - docker driver throws an error when user tries to run container with
  GPU, when GPU runtime is not present
  - docker GPU runtime name is configurable
2019-01-15 11:34:47 -08:00
oleksii.shyman 7393e91145 Update go-dockerclient and docker dependencies
- go-dockerclient is updated because of lack of "runtime" API field
 - docker/docker is updated because go-dockerclient depends on docker
 master branch
2019-01-15 11:28:57 -08:00
Alex Dadgar f349e3f2e5
Merge pull request #5195 from hashicorp/d-update-087-date
make change to the 0.8.7 release date
2019-01-15 09:53:07 -08:00
Cathy Chang 5d1e4b5650 make change to the 0.8.7 release date 2019-01-15 09:47:13 -08:00
Chris Baker 8b15543a14 docs: updated tense around fixed bug 2019-01-15 17:43:03 +00:00
Danielle Tomlinson b918d25e62
Merge pull request #5192 from hashicorp/dani/executor-close
executor: Always close stdout/stderr fifos
2019-01-15 17:49:04 +01:00
Danielle Tomlinson f120c8f8f6
Merge pull request #5184 from hashicorp/dani/b-logmon-reattach
docker: Terminate dockerlogger
2019-01-15 16:48:40 +01:00
Danielle Tomlinson 7f1ff3fab6 executor: Always close stdout/stderr fifos 2019-01-15 16:47:27 +01:00
Michael Schurter 48afda786b
Merge pull request #5187 from hashicorp/test-consul
Port a bunch of pre-0.9 Consul tests to 0.9
2019-01-15 07:41:50 -08:00
Mahmood Ali ce5a4e7b94
Merge pull request #5189 from hashicorp/b-fix-executor-logs
propagate logs to executor plugin
2019-01-15 10:26:01 -05:00
Danielle Tomlinson 272a8726d7 docker: Terminate dockerlogger
Previously, we did not attempt to stop Docker Logger processes until
DestroyTask, which means that under many circumstances, we will never
successfully close the plugin client.

This commit terminates the plugin process when `run` terminates, or when
`DestroyTask` is called.

Steps to repro:

```
$ nomad agent -dev
$ nomad init
$ nomad run example.nomad
$ nomad stop example
$ ps aux | grep nomad # See docker logger process running
$ signal the dev agent
$ ps aux | grep nomad # See docker logger process running
```
2019-01-15 14:58:05 +01:00
Mahmood Ali 5649f72d27 propogate logs to executor plugin 2019-01-15 08:25:03 -05:00