Commit Graph

2233 Commits

Author SHA1 Message Date
Alex Dadgar
7dee8ae534 perf 2017-05-01 16:01:50 -07:00
Alex Dadgar
4d6a012c6f metrics 2017-05-01 14:51:27 -07:00
Alex Dadgar
5aa6e18807 Use batching 2017-05-01 14:50:34 -07:00
Alex Dadgar
7614feddbd boltDB database for client state 2017-05-01 14:50:34 -07:00
Alex Dadgar
9def7e1a14 Don't deepcopy job when retrieving copy of Alloc
This PR removes deepcopying of the job attached to the allocation in the
alloc runner. This operation is called very often so removing reflect
from the code path and the potentially large number of mallocs need to
create a job reduced memory and cpu pressure.
2017-05-01 14:50:34 -07:00
Michael Schurter
fb3b30bba9 Fix Windows build. 2017-04-19 13:16:48 -07:00
Michael Schurter
b9ea2765ec Thanks go vet! 2017-04-19 13:05:41 -07:00
Michael Schurter
8e0c97e52f Unregister from Consul when waiting for restart 2017-04-19 12:42:48 -07:00
Michael Schurter
4f224132ad Remove stale comment 2017-04-19 12:42:47 -07:00
Michael Schurter
db8aabe1c3 Fix circular test imports 2017-04-19 12:42:47 -07:00
Michael Schurter
0e0845e94b Use a DriverAbility to expose Exec functionality 2017-04-19 12:42:47 -07:00
Michael Schurter
fd69d48244 Move removal from Consul into TaskRunner cleanup 2017-04-19 12:42:47 -07:00
Michael Schurter
63a8307255 Move ScriptExecutor to driver 2017-04-19 12:42:47 -07:00
Michael Schurter
b6937912d8 Add UpdateTask method instead of Remove/Add 2017-04-19 12:42:47 -07:00
Michael Schurter
10cb924b2c Refactor Consul Syncer into new ServiceClient
Fixes #2478 #2474 #1995 #2294

The new client only handles agent and task service advertisement. Server
discovery is mostly unchanged.

The Nomad client agent now handles all Consul operations instead of the
executor handling task related operations. When upgrading from an
earlier version of Nomad existing executors will be told to deregister
from Consul so that the Nomad agent can re-register the task's services
and checks.

Drivers - other than qemu - now support an Exec method for executing
abritrary commands in a task's environment. This is used to implement
script checks.

Interfaces are used extensively to avoid interacting with Consul in
tests that don't assert any Consul related behavior.
2017-04-19 12:42:47 -07:00
Michael Schurter
17471bf7c0 Set ownership on directories in chroot
Also support getOwner on all Unixes as they all have `Stat_t.{U,G}id`
2017-04-17 12:41:33 -07:00
Michael Schurter
1cffc7310e Don't disable hardlinking! 2017-04-17 11:03:15 -07:00
Michael Schurter
2fe3de16be Chown files when copying into chroot
Fixes #2552

Not needed when hardlinking. Only adds Linux support but other OS's may
be easy.
2017-04-17 11:03:15 -07:00
Alex Dadgar
3018ae07bb Sync allocation state before waiting for a destroy
This change ensures that the client syncs allocation state with the
servers before entering its wait loop for the allocation to be
destroyed.

Fixes https://github.com/hashicorp/nomad/issues/2563
2017-04-14 13:09:54 -07:00
Alex Dadgar
374c96b600 Merge pull request #2519 from hashicorp/b-sticky-tmp
Add sticky bit to temp directory
2017-04-12 14:59:14 -07:00
Alex Dadgar
211a8409b9 Merge pull request #2541 from hashicorp/f-stable-distributed-id
Hash host ID so its stable and well distributed
2017-04-11 11:27:53 -07:00
Alex Dadgar
8d07bd8f9c Add ExtraHosts to Docker driver
This PR allows job submitters to add extra hosts to the containers
/etc/hosts file.

Fixes https://github.com/hashicorp/nomad/issues/2546
2017-04-11 10:52:41 -07:00
Diptanu Choudhury
b0a20b4dc9 Fixed typo 2017-04-10 11:45:11 -07:00
Alex Dadgar
68ba51c600 Hash host ID so its stable and well distributed
This PR takes the host ID and runs it through a hash so that it is well
distributed. This makes it so that machines that report similar host IDs
are easily distinguished.

Instances of similar IDs occur on EC2 where the ID is prefixed and on
motherboards created in the same batch.

Fixes https://github.com/hashicorp/nomad/issues/2534
2017-04-10 11:44:51 -07:00
Diptanu Choudhury
536fdde121 Added a test 2017-04-08 13:44:21 -07:00
Alex Dadgar
719bddaaec Merge branch 'f-ipv6-fingerprint' of github.com:hashicorp/nomad into f-ipv6-fingerprint 2017-04-07 18:37:19 -07:00
Diptanu Choudhury
bee4b57368 Removed redundant code 2017-04-07 18:28:22 -07:00
Alex Dadgar
f05c3fe233 Merge branch 'master' into f-ipv6-fingerprint 2017-04-07 17:11:24 -07:00
Diptanu Choudhury
ad00ec861b Ignoring link local addresses 2017-04-07 16:04:36 -07:00
Alex Dadgar
3a9763aac6 Merge pull request #2535 from clinta/docker-ip
Allow specifying container IP with docker driver
2017-04-07 12:59:12 -07:00
Clint Armstrong
5f4716b4ea Allow specifying container IP with docker driver 2017-04-07 11:56:07 -04:00
Michael Schurter
df30a110fb Create AssertUntil helper func 2017-04-06 17:05:09 -07:00
Diptanu Choudhury
94f9542a04 Finding the appropriate cidr block 2017-04-06 16:04:59 -07:00
Michael Schurter
985bde83d6 Improve test timings
1234ms was far longer than needed and not sleeping between iterations
was just mean.
2017-04-06 11:10:36 -07:00
Michael Schurter
11206c7c3e Require TLS for server RPC when enabled
Fixes #2525

We used to be checking a RequireTLS field that was never set. Instead we
can just check the TLSConfig.EnableRPC field and require TLS if it's
enabled.

Added a few unfortunately slow integration tests to assert the intended
behavior of misconfigured RPC TLS.

Also disable a lot of noisy test logging when -v isn't specified.
2017-04-06 09:34:36 -07:00
Diptanu Choudhury
8b93d40298 Making the fingerprinter support ipv6 ips 2017-04-06 01:06:32 -07:00
Alex Dadgar
1dbd63ad2a Split driver tests 2017-04-04 15:12:14 -07:00
Alex Dadgar
1458d9b35a Split task runner tests 2017-04-04 15:02:09 -07:00
Alex Dadgar
274c855f00 Add sticky bit to temp directory
Fixes an issue where the Ruby runtime expects the sticky bit to be set
on the temp directory. The sticky bit is commonly set on the temp
directory since it is usually shared by many users. This change brings
ours in line with that assumption.
2017-04-04 10:48:29 -07:00
Alex Dadgar
c934063713 FinishedAt only records when the task has actually started 2017-03-31 17:06:05 -07:00
Alex Dadgar
d212f6fe94 Track task start/finish time & improve logs errors
This PR adds tracking to when a task starts and finishes and the logs
API takes advantage of this and returns better errors when asking for
logs that do not exist.
2017-03-31 16:14:11 -07:00
Alex Dadgar
4596542197 Fix variable capture and add tests
This PR fixes token revocation and adds tests to make sure it is
working. The 0.5.6 RC1's token revocation does not work becasue the
token's value is captured at the instantiation of the deferred
stoprenewal statement rather than its exectution.
2017-03-29 13:17:50 -07:00
Robert Neumayer
46dcbc5c5e Fix typo and be consistent in naming 2017-03-29 09:33:54 +02:00
Michael Schurter
4d3c571859 Merge pull request #2482 from hashicorp/f-2289-better-artifact-err
Improve artifact download error message
2017-03-28 12:48:22 -07:00
Michael Schurter
ae9d49502a Recoverable struct field must be exported 2017-03-28 12:18:57 -07:00
Michael Schurter
7f2bbe70c1 Merge branch 'master' into b-2491-task-env 2017-03-28 11:28:00 -07:00
Alex Dadgar
87474b7c37 Merge pull request #2495 from hashicorp/b-vault-stop-renew
Stop Vault token renew on task exit
2017-03-28 11:14:18 -07:00
Alex Dadgar
d698288f3a Merge pull request #2461 from hashicorp/b-groups
Various fixes for setting user/group of task
2017-03-28 11:13:27 -07:00
Alex Dadgar
3750f97ac6 Merge pull request #2488 from hashicorp/f-node-values-template
Access Node Meta and Attrs in template
2017-03-28 11:10:29 -07:00
Alex Dadgar
d1562194a9 feedback 2017-03-28 11:10:11 -07:00