Commit graph

7806 commits

Author SHA1 Message Date
Michael Schurter 09b887133d Merge pull request #2861 from hashicorp/f-update-raft-serf
Update vendored raft and serf
2017-07-19 12:33:00 -07:00
Michael Schurter 96e9857f12 Missing hashicorp/serf/serf dep 2017-07-19 11:53:53 -07:00
Michael Schurter 68891839d3 Update raft to hashicorp/raft@b3d48f1
Pulls in hashicorp/raft#225
2017-07-19 11:53:53 -07:00
Michael Schurter cfa7606b4e Update serf to hashicorp/serf@bbeddf0 2017-07-19 11:53:53 -07:00
Michael Schurter c9e4c041b3 Too lazy to remember the right formatter for floats 2017-07-19 11:53:18 -07:00
Alex Dadgar 5fe5547b15 Merge pull request #2862 from hashicorp/b-reconcile-panic
Fix update limit calculation to avoid panic
2017-07-19 11:19:09 -07:00
Alex Dadgar a9ec1d6ca7 Fix update limit calculation to avoid panic
This PR fixes the rolling update limit calculation to avoid a panic when
there are more allocations for a deployment that haven't determined
their health than the max_parallel count of the task group.

Fixes https://github.com/hashicorp/nomad/issues/2820
2017-07-19 11:11:47 -07:00
Alex Dadgar e1888e822c Merge pull request #2841 from hashicorp/b-rolling-no-fit
Treat destructive updates atomically
2017-07-19 11:11:25 -07:00
Michael Schurter 40c2d4e5eb Merge pull request #2858 from hashicorp/b-2849-deploy-json
Implement -json for job deployments
2017-07-19 10:15:01 -07:00
Alex Dadgar 9fde39b107 Changelog 2017-07-19 10:09:11 -07:00
Alex Dadgar 15912d29d2 Merge pull request #2859 from hashicorp/f-heartbeat-tunables
Allow tuning of heartbeat ttls
2017-07-19 10:07:36 -07:00
Michael Schurter 125a3fb2f9 Error -> Errof 2017-07-19 10:00:57 -07:00
Alex Dadgar 747d67eb3f Allow tuning of heartbeat ttls
This PR allows tuning of heartbeat TTLs. An example of very aggressive
settings is as follows:

```
server {
  heartbeat_grace = "1s"
  min_heartbeat_ttl = "1s"
  max_heartbeats_per_second = 200.0
}
```
2017-07-19 09:38:35 -07:00
Alex Dadgar 9206f4d832 Changelog 2017-07-18 18:02:42 -07:00
Alex Dadgar f4c313c973 Merge pull request #2856 from hashicorp/b-port-range
Shrink dynamic port range
2017-07-18 18:01:19 -07:00
Michael Schurter 3eaa3b2ec3 Implement -json for job deployments
Fixes #2849
2017-07-18 17:28:44 -07:00
Michael Schurter dbcb19c6d9 Merge pull request #2854 from hashicorp/b-2827-agent-services
Never remove unknown agent services
2017-07-18 14:48:36 -07:00
Michael Schurter 7f53c951c2 Merge pull request #2857 from hashicorp/b-retry-send
Use broadcast send retry logic everywhere
2017-07-18 14:39:04 -07:00
Michael Schurter c1b8bef813 Use broadcast send retry logic everywhere 2017-07-18 14:36:32 -07:00
Alex Dadgar d2381c9263 Merge pull request #2853 from hashicorp/b-watcher
Improve alloc health watcher
2017-07-18 14:12:28 -07:00
Alex Dadgar 7bbe817a30 Merge pull request #2855 from hashicorp/f-autocomplete-files
Autocomplete files
2017-07-18 14:10:36 -07:00
Michael Schurter e6f6e8c02b Merge pull request #2852 from hashicorp/b-gc-race
Fix deadlock caused by syncing during destroy
2017-07-18 14:07:57 -07:00
Alex Dadgar 9399ef5213 docs 2017-07-18 14:07:28 -07:00
Alex Dadgar e51bc66680 Shrink dynamic port range
This PR shrinks the dynamic port range to not overlap with most
operating systems ephemeral port range: https://en.wikipedia.org/wiki/Ephemeral_port
2017-07-18 13:47:53 -07:00
Michael Schurter 99d1486f32 Never remove unknown agent services
Fixes #2827

This is a tradeoff. The pro is that you can run separate client and
server agents on the same node and advertise both. The con is that if a
Nomad agent crashes and isn't restarted on that node in the same mode
its entry will not be cleaned up.

That con scenario seems far less likely to occur than the scenario on
the pro side, and even if we do leak an agent entry the checks will be
failing so nothing should attempt to use it.
2017-07-18 13:23:01 -07:00
Alex Dadgar 484e9f2693 Autocomplete files
This PR makes run, validate and plan autocomplete their arg to
appropriate files.
2017-07-18 13:18:17 -07:00
Alex Dadgar cb966e550d fix blocking queries in deployment watcher 2017-07-18 13:02:40 -07:00
Alex Dadgar bd43bd509c Save deployment status 2017-07-18 12:37:52 -07:00
Alex Dadgar 41f67e3535 Small fixes 2017-07-18 12:19:57 -07:00
Michael Schurter 62478730a8 Merge pull request #2836 from hashicorp/f-go-getter-xz-support
Update go-getter to get .xz support
2017-07-18 11:26:13 -07:00
Michael Schurter c24e73ede7 Fix deadlock caused by syncing during destroy
When replacing an alloc the new alloc is blocked until the old alloc is
destroyed. This could cause a deadlock:

1. Destroying the old alloc includes a final sync of its status
2. Syncing status causes a GC
3. A GC looks for terminal allocs to cleanup
4. The GC waits for an alloc to stop completely before GC'ing

If the GC chooses the currently-being-destroyed-alloc to GC, the GC
deadlocks. If `client.max_parallel` deadlocks happen the GC is wedged
until the Nomad process is restarted.

Performing the final sync asynchronously is an ugly hack but prevents
the deadlock by allowing the final sync to occur after the alloc runner
has shutdown and been destroyed.
2017-07-18 11:12:56 -07:00
Michael Schurter 2585d68382 Merge pull request #2838 from hashicorp/b-alloc-dir-fixes
Ensure allocDir is never nil and persisted safely
2017-07-18 10:19:50 -07:00
Michael Schurter 5bd920f828 Mention tls_skip_verify support 2017-07-18 09:15:57 -07:00
Alex Dadgar e0a1097d38 Changelog 2017-07-17 18:27:53 -07:00
Alex Dadgar 5b14f091b1 Merge pull request #2848 from hashicorp/f-autocomplete
Add command autocompletion.
2017-07-17 18:27:04 -07:00
Alex Dadgar 22e84d00ab Fix deep copy of driver config 2017-07-17 17:53:21 -07:00
Alex Dadgar 641e178416 Stop before trying to place 2017-07-17 17:18:12 -07:00
Michael Schurter 420be86e39 Test AllocDir.Copy 2017-07-17 15:46:54 -07:00
Michael Schurter cdb2e96d99 Add AllocRunner.allocID for ease-of-use
Since the AllocRunner.alloc struct can be mutated, most of AllocRunner
needs to acquire a lock to get the alloc's ID. Log lines always need to
include the alloc ID, so we often skipped acquiring a lock just to grab
the ID and accepted the race.

Let's make the race detector a little happier by storing the ID in a
single assignment field.
2017-07-17 15:46:54 -07:00
Michael Schurter 181fda825a Fix log level 2017-07-17 15:46:54 -07:00
Michael Schurter 98f6e7f10f Don't fail if task dirs don't exist on creation
Task dir metadata is created in AllocRunner.Run which may not run before
an alloc is sync'd and Nomad exits. There's no reason not to just create
task dir metadata on restore if it doesn't exist.
2017-07-17 15:46:54 -07:00
Michael Schurter 51515cbe0c Ensure allocDir is never nil and persisted safely
Fixes #2834
2017-07-17 15:46:54 -07:00
Alex Dadgar 755d20da92 Merge pull request #2830 from hashicorp/b-max-warning
Warn instead of error when max_parallel is greater than count.
2017-07-17 15:35:23 -07:00
Alex Dadgar cd78b99d14 Address feedback 2017-07-17 15:35:14 -07:00
Alex Dadgar 978e3f68f6 Merge pull request #2839 from hashicorp/b-failed-eval
Fix allocations pointing to unknown deployment
2017-07-17 15:05:03 -07:00
Alex Dadgar c10b6c0560 Merge pull request #2842 from hashicorp/d-init
Update init command to show new update stanza.
2017-07-17 15:04:49 -07:00
Alex Dadgar 810ab68f94 Add command autocompletion.
This PR adds command autocompletion to the CLI.
2017-07-17 15:00:40 -07:00
Alex Dadgar 84c2f25e0a Deployment GC ensures no alloc references 2017-07-17 14:09:59 -07:00
Alex Dadgar 311084c724 Allow the deployment to not exist and just no-op 2017-07-17 14:09:59 -07:00
Alex Dadgar 0821ee67f5 Fix alloc broadcaster panic on double close 2017-07-17 14:09:05 -07:00