Commit Graph

350 Commits

Author SHA1 Message Date
Michael Schurter
55bd0c8df7 Use go-testing-interface instead of testing
This drops the testings stdlib pkg from our dependencies. Saves a
whopping 46kb on our binary (was really hoping for more of a win there),
but also avoids potential ugliness with how testing sets flags.
2017-07-25 15:35:19 -07:00
Alex Dadgar
78e246eab5 Improve multiple group handling in a deployment
This PR resolves a bug in which a job with multiple task groups would
create new deployment objects each, thus clearing out all other task
groups deployment state.
2017-07-25 11:27:47 -07:00
Alex Dadgar
c8d763406f Better comment 2017-07-20 12:31:08 -07:00
Alex Dadgar
95fa06a356 Handle destructive changes before placements
This PR updates the generic scheduler to handle destructive changes
before handling placements. This is important because the destructive
change may be due to a lowering of resources. If this is the case, the
handling of the destructive changes first may make it possible for the
placement to happen.

To reason about this imagine there is one node with CPU = 500.

If the group originally had:
* `count = 1`
* `cpu = 400`

And then the job was updated such that the group had:
* `count = 4`
* `cpu = 120`

If the original alloc isn't discounted first, nothing would be able to
place.
2017-07-20 12:24:27 -07:00
Alex Dadgar
6a59fbd44a Update full node test to test more advanced case 2017-07-20 12:23:40 -07:00
Alex Dadgar
d507d5bf20 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
698c964c88 Fix deep copy of driver config 2017-07-17 17:53:21 -07:00
Alex Dadgar
83fb59969d Stop before trying to place 2017-07-17 17:18:12 -07:00
Alex Dadgar
d457735b2f Treat destructive updates atomically 2017-07-16 10:35:38 -07:00
Alex Dadgar
5001fafd09 Basic logs 2017-07-07 16:49:08 -07:00
Alex Dadgar
0129455876 Rolling node drains using max_parallel and stagger
This PR adds rolling node drains done at max_parallel and stagger of the
update spec. It brings it inline with old behavior.
2017-07-07 12:12:48 -07:00
Alex Dadgar
9eb2c8f848 Status description shows requiring promotion 2017-07-07 12:12:48 -07:00
Alex Dadgar
fe990ca3e0 Fix some tests, eval monitor shows deployment id and deployment cancels based on version 2017-07-07 12:12:48 -07:00
Alex Dadgar
b3ec146685 Respond to comments 2017-07-07 12:10:04 -07:00
Alex Dadgar
989aa56304 Remove canary 2017-07-07 12:10:04 -07:00
Alex Dadgar
127d43db88 Test scheduler's handling of canaries/inplace updates 2017-07-07 12:10:04 -07:00
Alex Dadgar
463d20e4f3 Test marking as complete 2017-07-07 12:10:04 -07:00
Alex Dadgar
690fc78091 Plan apply handles canaries and success is set via update 2017-07-07 12:10:04 -07:00
Alex Dadgar
598748d6d5 Fix handling of failed job 2017-07-07 12:10:04 -07:00
Alex Dadgar
29e31af007 Attach eval id 2017-07-07 12:10:04 -07:00
Alex Dadgar
0c6a1c0ee8 Mark complete 2017-07-07 12:10:04 -07:00
Alex Dadgar
71c7c45cf6 Change canary handling 2017-07-07 12:10:04 -07:00
Alex Dadgar
e5b1e3171c Remove promoted bit from allocation 2017-07-07 12:10:04 -07:00
Alex Dadgar
591ef9c9f3 Rename CreateDeployments and remove cancelling behavior in state_store 2017-07-07 12:10:04 -07:00
Alex Dadgar
f72bbaa370 Client watches for allocation health using task state and Consul checks
This PR adds watching of allocation health at the client. The client can
watch for health based on the tasks running on time and also based on
the consul checks passing.
2017-07-07 12:10:04 -07:00
Alex Dadgar
bab25f6834 deployment status 2017-07-07 12:07:07 -07:00
Alex Dadgar
53f4952c56 initial impl 2017-07-07 12:03:11 -07:00
Alex Dadgar
0ec6d74338 update description of the alloc update factory function 2017-07-07 12:03:11 -07:00
Alex Dadgar
0d29972c8c cleanup limit detection 2017-07-07 12:03:11 -07:00
Alex Dadgar
af7f93b56b Fix canary handling 2017-07-07 12:03:11 -07:00
Alex Dadgar
369a04b135 Deployment tests 2017-07-07 12:03:11 -07:00
Alex Dadgar
f32a9a5539 Non-Canary/Deployment Tests 2017-07-07 12:03:11 -07:00
Alex Dadgar
d72b270a51 Pull out in-place updating into a passed in function; reduce inputs to reconciler 2017-07-07 12:03:11 -07:00
Alex Dadgar
85e0d6fccd assign names 2017-07-07 12:03:11 -07:00
Alex Dadgar
1dabd206bb handle batch filtering 2017-07-07 12:03:11 -07:00
Alex Dadgar
4c9e5c34fa Remove old 2017-07-07 12:03:11 -07:00
Alex Dadgar
201ad8bf40 Populate desired state per tg 2017-07-07 12:03:11 -07:00
Alex Dadgar
66789e81f2 Show canaries on plan 2017-07-07 12:03:11 -07:00
Alex Dadgar
662bc3941b handle annotations 2017-07-07 12:03:11 -07:00
Alex Dadgar
a7df708c14 Todos 2017-07-07 12:03:11 -07:00
Alex Dadgar
3ae7abac3a Some comments and cleanup 2017-07-07 12:03:11 -07:00
Alex Dadgar
4bbf24a875 Split reconcile file 2017-07-07 12:03:11 -07:00
Alex Dadgar
c16195a2ea Only upsert a job if the spec changes and push deployment creation into reconciler 2017-07-07 12:03:11 -07:00
Alex Dadgar
df40bd8a5f initial reconciler 2017-07-07 12:01:17 -07:00
Alex Dadgar
bb6524151a cancel deployments 2017-07-07 12:01:17 -07:00
Alex Dadgar
741a71e0b3 Fix tests 2017-05-01 13:54:26 -07:00
Alex Dadgar
019bb3ae58 Respond to review comments 2017-04-19 10:54:03 -07:00
Alex Dadgar
950171f094 non-purge deregisters 2017-04-15 17:08:05 -07:00
Alex Dadgar
eb675eb82d Skip inplace update on terminal batch allocation
This PR skips adding an inplace update to a successfully terminal batch
job to the plan. This avoids extra data in the plan and avoids
triggering updates on all clients that have the terminal allocation.
This is matching behavior of the service scheduler.

/cc @armon for review
2017-03-11 17:19:22 -08:00
Alex Dadgar
336a976205 Fix in-place update 2017-03-09 22:03:10 -08:00