Alex Dadgar
7b13c0d702
Lost allocs replaced even if deployment failed
...
This PR allows the scheduler to replace lost allocations even if the job
has a failed or paused deployment. The prior behavior was confusing to
users.
Fixes https://github.com/hashicorp/nomad/issues/2958
2017-08-03 17:42:14 -07:00
Alex Dadgar
7d2b84ab01
Review fixes
2017-08-01 14:18:52 -07:00
Alex Dadgar
2650bb1d12
Distinct Property supports arbitrary limit
...
This PR enhances the distinct_property constraint such that a limit can
be specified in the RTarget/value parameter. This allows constraints
such as:
```
constraint {
distinct_property = "${meta.rack}"
value = "2"
}
```
This restricts any given rack from running more than 2 allocations from
the task group.
Fixes https://github.com/hashicorp/nomad/issues/1146
2017-07-31 16:52:13 -07:00
Alex Dadgar
4f69355a66
Fix incorrect destructive update with distinct_property constraint
...
This PR fixes an issue in which an update to a task group with a
distinct property constraint would result in an incorrect destructive
update.
2017-07-31 11:17:35 -07:00
Michael Schurter
5f1f91a46c
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
492239d3ee
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
184bfd4836
Better comment
2017-07-20 12:31:08 -07:00
Alex Dadgar
248315a2d9
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
ce265e0aff
Update full node test to test more advanced case
2017-07-20 12:23:40 -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
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
Alex Dadgar
66a90326e1
Treat destructive updates atomically
2017-07-16 10:35:38 -07:00
Alex Dadgar
f86760db3c
Basic logs
2017-07-07 16:49:08 -07:00
Alex Dadgar
20005f925a
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
3a29b38108
Status description shows requiring promotion
2017-07-07 12:12:48 -07:00
Alex Dadgar
9f016606aa
Fix some tests, eval monitor shows deployment id and deployment cancels based on version
2017-07-07 12:12:48 -07:00
Alex Dadgar
9aa1f2fea2
Respond to comments
2017-07-07 12:10:04 -07:00
Alex Dadgar
454083ba1b
Remove canary
2017-07-07 12:10:04 -07:00
Alex Dadgar
d352d85bb9
Test scheduler's handling of canaries/inplace updates
2017-07-07 12:10:04 -07:00
Alex Dadgar
83c60483f2
Test marking as complete
2017-07-07 12:10:04 -07:00
Alex Dadgar
477c713df5
Plan apply handles canaries and success is set via update
2017-07-07 12:10:04 -07:00
Alex Dadgar
1e8b5e75a5
Fix handling of failed job
2017-07-07 12:10:04 -07:00
Alex Dadgar
e229d3650b
Attach eval id
2017-07-07 12:10:04 -07:00
Alex Dadgar
af1935e1e1
Mark complete
2017-07-07 12:10:04 -07:00
Alex Dadgar
8424a3b380
Change canary handling
2017-07-07 12:10:04 -07:00
Alex Dadgar
c10d7ab871
Remove promoted bit from allocation
2017-07-07 12:10:04 -07:00
Alex Dadgar
09dfa2fc10
Rename CreateDeployments and remove cancelling behavior in state_store
2017-07-07 12:10:04 -07:00
Alex Dadgar
067ed86a47
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
e7034691ea
deployment status
2017-07-07 12:07:07 -07:00
Alex Dadgar
d04877d23c
initial impl
2017-07-07 12:03:11 -07:00
Alex Dadgar
27a6e6b6d1
update description of the alloc update factory function
2017-07-07 12:03:11 -07:00
Alex Dadgar
ce2319be9b
cleanup limit detection
2017-07-07 12:03:11 -07:00
Alex Dadgar
b2573b01f9
Fix canary handling
2017-07-07 12:03:11 -07:00
Alex Dadgar
7952240d69
Deployment tests
2017-07-07 12:03:11 -07:00
Alex Dadgar
ce55559f12
Non-Canary/Deployment Tests
2017-07-07 12:03:11 -07:00
Alex Dadgar
d111dd5c10
Pull out in-place updating into a passed in function; reduce inputs to reconciler
2017-07-07 12:03:11 -07:00
Alex Dadgar
c77944ed29
assign names
2017-07-07 12:03:11 -07:00
Alex Dadgar
ecacd44888
handle batch filtering
2017-07-07 12:03:11 -07:00
Alex Dadgar
4c123500ee
Remove old
2017-07-07 12:03:11 -07:00
Alex Dadgar
270e26c600
Populate desired state per tg
2017-07-07 12:03:11 -07:00
Alex Dadgar
23dcd175ef
Show canaries on plan
2017-07-07 12:03:11 -07:00
Alex Dadgar
cf5baba808
handle annotations
2017-07-07 12:03:11 -07:00
Alex Dadgar
a46f7c3eb8
Todos
2017-07-07 12:03:11 -07:00
Alex Dadgar
00d962b8b5
Some comments and cleanup
2017-07-07 12:03:11 -07:00
Alex Dadgar
994ad285b7
Split reconcile file
2017-07-07 12:03:11 -07:00
Alex Dadgar
07b1c3e5db
Only upsert a job if the spec changes and push deployment creation into reconciler
2017-07-07 12:03:11 -07:00
Alex Dadgar
0d42b5d421
initial reconciler
2017-07-07 12:01:17 -07:00
Alex Dadgar
b3f4db0930
cancel deployments
2017-07-07 12:01:17 -07:00
Alex Dadgar
8169590d76
Fix tests
2017-05-01 13:54:26 -07:00
Alex Dadgar
5a2449d236
Respond to review comments
2017-04-19 10:54:03 -07:00
Alex Dadgar
3145086a42
non-purge deregisters
2017-04-15 17:08:05 -07:00
Alex Dadgar
2c31d4036b
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
bb12ff69a6
Fix in-place update
2017-03-09 22:03:10 -08:00
Alex Dadgar
601cbd7784
Feedback addressed
2017-03-09 21:36:27 -08:00
Alex Dadgar
b65d248dee
Fix filtering issue and add a test that would catch it
2017-03-09 16:20:39 -08:00
Alex Dadgar
7945e4564c
Refactor
2017-03-09 15:26:46 -08:00
Alex Dadgar
60c42f745a
Split distinct property and host iterator and add iterator to system stack
2017-03-08 19:00:10 -08:00
Alex Dadgar
319b24081f
cleanup
2017-03-08 17:57:31 -08:00
Alex Dadgar
a439bf709d
Property Set
2017-03-08 17:50:40 -08:00
Alex Dadgar
d83a8fe9f2
Unoptimized implementation + testing
2017-03-07 14:48:54 -08:00
Alex Dadgar
87d971a6b8
Double the anti-affinity for placing same task group on node
2017-03-06 11:52:53 -08:00
Alex Dadgar
5be806a3df
Fix vet script and fix vet problems
...
This PR fixes our vet script and fixes all the missed vet changes.
It also fixes pointers being printed in `nomad stop <job>` and `nomad
node-status <node>`.
2017-02-27 16:00:19 -08:00
Alex Dadgar
04862ca10e
Tests compile
2017-02-07 21:30:57 -08:00
Alex Dadgar
b69b357c7f
Nomad builds
2017-02-07 20:31:23 -08:00
Alex Dadgar
302a0cf382
Fix adjust test
2017-01-08 14:14:35 -08:00
Alex Dadgar
2c838a80f6
Detect newly created allocation's properly
2017-01-08 13:55:03 -08:00
Alex Dadgar
8d5f0fea69
Merge pull request #2128 from hashicorp/f-dispatch
...
Nomad Constructor Jobs and Dispatch
2017-01-06 05:22:49 +08:00
Diptanu Choudhury
9cdd576720
Updated changelog and fixed tests
2016-12-20 11:32:17 -08:00
Alex Dadgar
a1dd78c24b
Scheduler combines meta from job > group > task
2016-12-15 17:08:38 -08:00
Diptanu Choudhury
5191b4d33a
Making the status command return the allocs of currently registered job
2016-11-24 16:31:30 +01:00
Alex Dadgar
a1d08c2aba
Add scheduler version enforcement
2016-10-26 14:52:48 -07:00
Alex Dadgar
989827e402
Add set contains
2016-10-19 13:06:28 -07:00
Alex Dadgar
36cfe6e89e
Large refactor of task runner and Vault token rehandling
2016-10-18 11:24:20 -07:00
Ben Barnard
83f647ed84
Replace "the the" with "the" in documentation and comments
2016-10-11 15:31:40 -04:00
Diptanu Choudhury
dae7f88118
Not setting a drained node as preferred node ( #1740 )
2016-09-23 21:15:50 -07:00
Diptanu Choudhury
45afc0b4e1
Added logic to ensure scheduler knows job defn has been updated when ephemeral disks has been updated ( #1725 )
2016-09-21 14:00:02 -07:00
Alex Dadgar
bc500a536c
tasks updated
2016-09-21 11:31:09 -07:00
Diptanu Choudhury
36edabb487
Fixed the logic of calculating queued allocation in sys sched ( #1724 )
2016-09-20 12:05:19 -07:00
Alex Dadgar
683380c25c
Merge pull request #1715 from hashicorp/b-dead-system-nodes
...
Fix bug where dead nodes weren't properly handled by system scheduler
2016-09-19 11:49:44 -07:00
Alex Dadgar
47551e93b4
Fix bug in which dead nodes weren't being properly handled by system scheduler
2016-09-19 11:49:27 -07:00
Diptanu Choudhury
1b3c5e98c8
Renaming LocalDisk to EphemeralDisk ( #1710 )
...
Renaming LocalDisk to EphemeralDisk
2016-09-14 15:43:42 -07:00
Diptanu Choudhury
d94bb45ad3
Added some more comments
2016-08-31 14:06:31 -07:00
Diptanu Choudhury
52e9946da9
Implemented SetPrefferingNodes in stack
2016-08-30 16:17:50 -07:00
Diptanu Choudhury
bfee7b30a3
Introducing shared resources in alloc
2016-08-29 13:49:25 -07:00
Diptanu Choudhury
13497913f9
Ensuring resources are re-calculated properly in fsm
2016-08-26 20:13:11 -07:00
Diptanu Choudhury
e79cb67391
Changing implementation of AllocsFit
2016-08-26 17:28:29 -05:00
Diptanu Choudhury
3447658bba
Added scheduler tests to ensure disk constraints are honored
2016-08-25 15:31:56 -05:00
Diptanu Choudhury
ffaf6c6299
Fixed some tests
2016-08-25 13:56:39 -05:00
Diptanu Choudhury
ec73c768f1
Making the scheduler use LocalDisk instead of Resources.DiskMB
2016-08-25 12:27:42 -05:00
Diptanu Choudhury
c1a455983d
Added the chained alloc for system scheduler
2016-08-16 10:49:45 -07:00
Diptanu Choudhury
1de89776d7
Marking an allocation chained if we are creating this to replace an old one
2016-08-15 17:52:41 -07:00
Alex Dadgar
64f7eff612
Plan on system scheduler doesn't count nodes who don't meet constraints
2016-08-11 15:26:25 -07:00
Diptanu Choudhury
23fcb9f5c9
Ensuring system sched doesn't increment queued count when nodes are filtered
2016-08-10 14:33:13 -07:00
Diptanu Choudhury
13bab5b1ad
Added scheduler tests
2016-08-09 14:52:25 -07:00
Diptanu Choudhury
ab94c8eed9
Marking allocations which are not terminal and are on down nodes as lost
2016-08-09 13:11:58 -07:00
Alex Dadgar
e33bda76bf
test sched doesn't mark complete as lost + core_sched tests
2016-08-04 11:24:17 -07:00
Alex Dadgar
ac3328e812
Make scheduler mark allocations as lost
2016-08-03 15:57:46 -07:00
Alex Dadgar
3a9f3a31bc
KillTimeout can be modified in place
2016-08-01 20:19:12 -07:00
Alex Dadgar
e661c09898
fix filter logic
2016-07-28 15:57:56 -07:00
Alex Dadgar
ddbd9261c1
Merge pull request #1471 from hashicorp/b-handle-old-batch-allocs
...
filterCompleteAllocs filters replaced batch allocs
2016-07-28 14:31:19 -07:00
Diptanu Choudhury
eb08405467
Updated tests and added logic to system sched
2016-07-28 14:02:50 -07:00
Diptanu Choudhury
2e84d246f9
fixed a comment
2016-07-28 12:22:44 -07:00
Diptanu Choudhury
48eda99dd9
Setting the queued count as zero if there is nothing to place
2016-07-28 12:13:35 -07:00
Diptanu Choudhury
4a8636cb61
Added a test
2016-07-27 17:49:53 -07:00
Alex Dadgar
c132952ba2
filterCompleteAllocs filters replaced batch allocs
2016-07-27 11:54:55 -07:00
Diptanu Choudhury
d1a6bdb4ba
Making the queued allocations bind late
2016-07-25 22:11:11 -07:00
Diptanu Choudhury
d1682e052a
Added a test for adjustQueuedAllocations
2016-07-25 17:31:40 -07:00
Diptanu Choudhury
51cb201a09
Initializing the queued allocations late
2016-07-25 17:26:38 -07:00
Diptanu Choudhury
09aa867cc2
Added a test to ensure we record the queued allocations correctly when the plan made partial progress
2016-07-25 17:26:38 -07:00
Diptanu Choudhury
8f0d2a2775
Fixed some more tests
2016-07-25 17:26:38 -07:00
Diptanu Choudhury
4a17d8e6d6
Added a test to ensure failed batch allocations are being added to the number of queued allocations
2016-07-25 17:26:38 -07:00
Diptanu Choudhury
39bcfcd1c6
Added a test to ensure system scheduler records the correct number of queued allocations
2016-07-25 17:26:38 -07:00
Diptanu Choudhury
cce5f483ae
Added some more tests
2016-07-25 17:26:38 -07:00
Diptanu Choudhury
dabb83063b
Review comments
2016-07-25 17:26:38 -07:00
Diptanu Choudhury
50842b88c7
Fixed some bugs
2016-07-25 17:26:38 -07:00
Diptanu Choudhury
804ef1e932
Not setting the desired and client status of an allocation during in-place updates
2016-07-25 17:26:38 -07:00
Diptanu Choudhury
a64785417d
Fixed the logic for decrementing the count of queued based on plan result
2016-07-25 17:26:38 -07:00
Diptanu Choudhury
1cc0bc392b
Setting the number of queued allocations per task group
2016-07-25 17:26:38 -07:00
Diptanu Choudhury
487c66b84d
Removing the queued state of Job Summary and alloc desired status false
2016-07-13 13:20:46 -06:00
Alex Dadgar
e90529afc9
test for max plan
2016-06-20 17:56:49 -07:00
Alex Dadgar
67c0816726
Handle max plans
2016-06-20 17:43:02 -07:00
Sean Chittenden
a658299235
Misc typos
2016-06-16 16:17:17 -07:00
Alex Dadgar
d44c4761f6
track failed allocations properly
2016-06-15 12:58:19 -07:00
Alex Dadgar
8e231fa382
Rename ConsulService back to Service
2016-06-12 16:36:49 -07:00
Sean Chittenden
2f036231e5
Merge pull request #1201 from hashicorp/f-dyn-server-list
...
Dynamic Server Lists/Client Bootstrapping via consul.
2016-06-11 18:58:25 -04:00
Alex Dadgar
b064b392fc
Only unblock if missed class was added after eval snapshot index
2016-06-10 15:24:06 -07:00
Sean Chittenden
95c9d1a63e
Per-comment, remove structs.Allocation's Services attribute.
...
Nuke PopulateServiceIDs() now that it's also no longer needed.
2016-06-10 15:54:39 -04:00
Sean Chittenden
7956eb0c80
Rename structs.Task's `Service` attribute to `ConsulService`
2016-06-10 15:54:39 -04:00
Sean Chittenden
4973ec32bb
Rename structs.Services to structs.ConsulServices
2016-06-10 15:54:39 -04:00
Alex Dadgar
57770de1fc
Add eval-status and remove eval-monitor
2016-05-27 11:50:15 -07:00
Alex Dadgar
fb8d79a908
Blocked evals don't store TG alloc metrics
2016-05-27 11:26:14 -07:00
Alex Dadgar
6a236872b4
address comment
2016-05-25 10:30:47 -07:00
Alex Dadgar
3fd51ecece
Periodically unblock failed evaluations
2016-05-24 20:10:56 -07:00
Alex Dadgar
18d9e89065
Reuse the same evaluation and reblock it until there is no more work to do
2016-05-24 20:10:56 -07:00
Alex Dadgar
3cbb89c61e
Merge pull request #1188 from hashicorp/f-no-failed-allocs
...
Failed Allocation Metrics stored in Evaluation
2016-05-24 20:06:28 -07:00
Alex Dadgar
958d677248
comment
2016-05-24 18:18:10 -07:00
Alex Dadgar
fcc57fbc66
rename SpawnedBlockedEval and simplify map safety check
2016-05-24 18:12:59 -07:00
Alex Dadgar
7167b93ba9
Add test to verify drain doesn't restart successful batch and add to ignore list
2016-05-24 17:47:03 -07:00
Alex Dadgar
b5ad18a7ea
Dont restart successfully finished batch allocations
2016-05-24 17:23:18 -07:00
Alex Dadgar
1feb57b047
Evals track blocked evals they create
2016-05-19 13:09:52 -07:00
Alex Dadgar
8f5f12ae81
Scheduler no longer produces failed allocations; failed alloc metrics stored in evaluation
2016-05-18 18:11:40 -07:00
Alex Dadgar
117b926e2b
inplaceUpdate returns the allocs that were updated in-place
2016-05-17 15:37:37 -07:00
Alex Dadgar
a5ab96d40e
Merge pull request #1168 from hashicorp/f-plan-endpoint
...
Job.Plan endpoint
2016-05-16 13:15:40 -07:00
Alex Dadgar
a231f6f998
Switch to using the harness
2016-05-16 12:49:18 -07:00
Sean Chittenden
dc28ab0cb5
Speling police
2016-05-15 09:41:34 -07:00
Alex Dadgar
bed4cb7a9f
Fixes
2016-05-13 11:53:11 -07:00
Alex Dadgar
7a44ec5ccc
Remove plan from the response
2016-05-12 11:29:38 -07:00
Alex Dadgar
6d69e39966
Test task group update annotations
2016-05-11 16:31:50 -07:00
Alex Dadgar
81f0286dd8
Merge branch 'master' into f-plan-endpoint
2016-05-11 15:39:36 -07:00
Alex Dadgar
24bfaa70ac
Fix switching diff structures
2016-05-11 15:36:28 -07:00
Alex Dadgar
8b45e2c474
Check if network asks have changed when checking task updates
2016-05-05 21:32:01 -07:00
Alex Dadgar
ab0b57a9a1
Initial plan endpoint implementation - WIP
2016-05-05 11:21:58 -07:00
Alex Dadgar
ff0dd9b81c
Task is not eligible for update if User, Meta, or Resources change
2016-04-25 17:20:25 -07:00
Alex Dadgar
733156c016
vendor
2016-04-19 17:12:44 -07:00
Alex Dadgar
7dc1a525cb
more debug
2016-04-19 16:55:27 -07:00
Alex Dadgar
76e493dc16
base debugging
2016-04-19 16:33:25 -07:00
Alex Dadgar
1a31e5e137
Fix drained/batch allocations from continually migrating
2016-04-12 16:14:32 -07:00
Alex Dadgar
f021c1a7b0
filtering failed batch allocs
2016-04-11 12:51:53 -07:00
Alex Dadgar
034bae90bb
Revert "Remove client status from allocation TerminalStatus"
...
This reverts commit 819e1e4b3967c7029ee8221144666ff460fdd7ed.
2016-04-08 14:22:06 -07:00
Alex Dadgar
09f63fd3c0
Remove client status from allocation TerminalStatus
2016-03-25 12:53:37 -07:00
Alex Dadgar
b80e61a66c
Merge pull request #975 from hashicorp/f-rename-complete-alloc
...
Successful allocations are marked as complete instead of dead
2016-03-25 10:35:11 -07:00
Diptanu Choudhury
3f0580f204
Added a note about backward compatibility
2016-03-23 19:08:07 -07:00
Alex Dadgar
94522e7bed
Successful allocations are marked as complete instead of dead
2016-03-23 18:08:19 -07:00
Alex Dadgar
2de9299cab
ProposedAllocs dedups in-place updated allocations
2016-03-21 18:09:32 -07:00
Alex Dadgar
f6e220b987
unit-test demonstrating broken behavior
2016-03-21 16:28:47 -07:00
Alex Dadgar
914207a5c2
Allow count zero
2016-03-17 11:02:59 -07:00
Alex Dadgar
7843ed1218
evict and replace when the artifacts of a task change
2016-03-15 19:32:49 -07:00
Alex Dadgar
ad92e50a24
Avoid serializes Allocation.Resources
2016-03-01 14:09:25 -08:00
Alex Dadgar
6a368a9f67
Merge pull request #848 from hashicorp/b-server-panic
...
core: store the job on allocations that are from stopped jobs
2016-02-24 17:27:22 -08:00
Alex Dadgar
a2b56a5cff
Generic Scheduler handles periodic eval type
2016-02-24 16:20:33 -08:00
Alex Dadgar
a9d410dbee
Store the job on allocations that are from stopped jobs
2016-02-24 14:50:59 -08:00
Alex Dadgar
fa8e2d31ee
Revert "err logs in worker and scheduler"
...
This reverts commit 7befc586521b70eb84013bff367310e4cfa45c27.
2016-02-22 22:23:57 -08:00
Alex Dadgar
f48eabe753
err logs in worker and scheduler
2016-02-22 14:47:59 -08:00
Alex Dadgar
f092c7ca15
format
2016-02-22 13:24:26 -08:00
Armon Dadgar
2b7bdfee37
nomad: add a sanity check guard
2016-02-22 12:15:40 -08:00
Alex Dadgar
e42720c2f5
Fix progressMade in scheduler
2016-02-22 10:38:04 -08:00
Armon Dadgar
87447efa61
schedule: deduplicate the jobs
2016-02-21 11:32:56 -08:00
Armon Dadgar
0dbd4c46c9
nomad: make PopulateServiceIDs more efficient
2016-02-21 11:15:00 -08:00
Alex Dadgar
821b9c13db
Merge pull request #823 from hashicorp/f-bitmap
...
Switch port collision checking to use bitmap instead of map
2016-02-20 16:02:48 -08:00
Armon Dadgar
9784bb7285
nomad: cache bitmaps to avoid GC pressure
2016-02-20 12:18:22 -08:00
Armon Dadgar
35741fcedd
scheduler: Use AllocsByNodeTerminal to avoid filtering
2016-02-20 11:29:15 -08:00
Alex Dadgar
d1011c9668
Fixes
2016-02-19 15:49:32 -08:00
Alex Dadgar
80345a2953
resolveConstraintTargets checks for bracket syntax
2016-02-16 10:03:04 -08:00
Alex Dadgar
f6e0349d3b
go vet
2016-02-12 16:08:58 -08:00
Alex Dadgar
8e6544333e
Only set eligibility if the eval hasn't escaped
2016-02-11 09:45:27 -08:00
Alex Dadgar
a47d5260c5
Reset retry count if progress is made and fail by creating a blocked eval
2016-02-09 21:24:47 -08:00
Alex Dadgar
5018f5dd1e
Only interpret vars wrapped in braces
2016-02-04 17:26:46 -08:00
Alex Dadgar
25cb7fc03d
Fix computed class when the job has multiple task groups
2016-02-03 21:22:18 -08:00
Alex Dadgar
4e527b26b0
test
2016-02-03 14:15:02 -08:00
Alex Dadgar
d930d488b5
Fix node drain
2016-02-03 12:00:43 -08:00
Alex Dadgar
c7821f13d7
Only replace batch allocations that have failed
2016-02-02 17:40:32 -08:00
Alex Dadgar
36df3aaac7
Remove running, system scheduler, and fix tg overriding eligibility
2016-01-31 20:56:52 -08:00
Alex Dadgar
151fe5ed88
Make computed node class a string and add versioning
2016-01-31 18:04:45 -08:00
Alex Dadgar
9045d7e989
Schedulers create blocked eval if there are failed allocations
2016-01-31 18:04:45 -08:00
Alex Dadgar
9a8871249d
EvalEligibility unit tests and simplify escaped constraint tracking
2016-01-26 17:34:41 -08:00
Alex Dadgar
9dc22532e5
Respond to comments
2016-01-26 16:43:42 -08:00
Alex Dadgar
0d55fb2bdd
Add benchmark
2016-01-26 15:16:43 -08:00
Alex Dadgar
1bd9bece62
Change the unique namespace on the node
2016-01-26 15:16:43 -08:00
Alex Dadgar
2b7d42bf9b
FeasibilityWrapper uses computed node class eligibility to call feasibility checks minimally
2016-01-26 15:16:43 -08:00
Alex Dadgar
5d23025df8
EvalEligibility in context
2016-01-26 15:16:43 -08:00
Ivo Verberk
91a9f2c4ce
Shorten CLI identifiers
...
* Truncate all UUID identifiers to eight characters by default
* Refactor the node identifier to an auto-generated UUID
* Created and updated tests and mocks
2016-01-14 21:57:43 +01:00
Alex Dadgar
41efdcb1c3
Add JobModifyIndex
2016-01-12 09:50:33 -08:00
Alex Dadgar
561f9634ba
Fix counts
2016-01-04 14:33:10 -08:00
Alex Dadgar
c0721e45f6
Fix bug, add tests, and cli output
2016-01-04 14:23:06 -08:00
Alex Dadgar
36752b9ed4
Store the available nodes in the alloc metric
2016-01-04 12:07:33 -08:00
Alex Dadgar
d6aa36b417
Merge pull request #618 from hashicorp/f-node-class-constraint
...
Add node class to constraints
2015-12-28 13:27:38 -08:00
Alex Dadgar
0b29c2046d
Test ebug log
2015-12-23 19:44:42 -08:00
Alex Dadgar
5e71751a1d
Add node class to constraints
2015-12-21 17:15:34 -08:00
Alex Dadgar
92823b71a8
merge
2015-12-16 15:01:15 -08:00
Alex Dadgar
2218a79815
Add garbage collection to jobs
2015-12-16 15:00:45 -08:00
Diptanu Choudhury
0cc1275782
Added a test to make sure services no longer present are being removed
2015-12-15 10:43:56 -08:00
Diptanu Choudhury
ba5561cae0
Making sure existing ids for services are not re-generated
2015-12-15 09:14:32 -08:00
Diptanu Choudhury
7a8acd32e4
Populating service ids only if allocations can be placed for system jobs
2015-12-15 08:38:18 -08:00
Diptanu Choudhury
ddaf74fb65
Added a test to prove services are removed from the map in Alloc if they are removed from the Tasks
2015-12-15 08:35:26 -08:00
Diptanu Choudhury
b7f556fabc
Changed some comments
2015-12-14 18:05:58 -08:00
Diptanu Choudhury
1c76715358
Re-initializing the service map for in place updates
2015-12-14 17:06:58 -08:00
Diptanu Choudhury
2eb03e1d23
Renamed serviceId to serviceID
2015-12-14 15:57:56 -08:00
Diptanu Choudhury
76486d71e2
Making the allocs hold service ids
2015-12-14 15:08:35 -08:00
Chris Hines
5f0c30b926
Skip unreliable time measurement assertions on Windows.
2015-12-09 14:55:57 -05:00
Alex Dadgar
9801db55b3
Remove unnecessary copy
2015-11-23 16:36:12 -08:00
Alex Dadgar
9b99eeeec4
Remove shared reference to network resources across allocs
2015-11-23 16:32:30 -08:00
Chris Bednarski
9f40143684
Merge branch 'master' into f-port-labels
2015-11-16 16:02:38 -08:00
Alex Dadgar
bdf7497f1b
Initialize task state in allocation sent by scheduler
2015-11-16 15:14:21 -08:00
Diptanu Choudhury
babc68adfb
Fixing the scheduler tests
2015-11-16 13:10:57 -08:00
Alex Dadgar
3cdbfc010f
Remove weight and hard/soft fields from constraint
2015-10-27 14:31:14 -07:00
Alex Dadgar
c7f904ff31
Merge pull request #321 from hashicorp/f-unique-constraint
...
Add "distinctHost" constraint
2015-10-26 14:18:57 -07:00
Alex Dadgar
1784387e1d
Rename Dynamic -> ProposedAllocConstraintIterator
2015-10-26 14:12:54 -07:00
Alex Dadgar
a9135b92b2
Cleanup DynamicConstraintIterator
2015-10-26 14:01:32 -07:00
Alex Dadgar
fd9c2baf02
Constants for constraints and renaming to use undescore instead of camel
2015-10-26 13:47:56 -07:00
Alex Dadgar
2b2b6c321a
Check for environment variable updates for tasks
2015-10-23 14:52:06 -07:00
Alex Dadgar
be50fe6254
Fix markdown and log messages
2015-10-23 09:56:48 -07:00
Alex Dadgar
ecc4f98f3a
Change "unique" to "distinctHosts"
2015-10-22 17:40:41 -07:00
Alex Dadgar
861a65288c
Fix test and simplify some boolean logic/fix metrics counting
2015-10-22 16:45:03 -07:00
Alex Dadgar
783b0b5aee
Add dynamic constraint to generic_scheduler
2015-10-22 15:09:03 -07:00
Alex Dadgar
910dcc49fb
DynamicConstraintIterator that implements the unique constraint
2015-10-22 14:31:12 -07:00
Gregory Man
400363079c
Make go vet happy
2015-10-21 15:47:36 +03:00
Alex Dadgar
d9b78ffdfe
Remove base nodes from stack constructors
2015-10-16 17:05:23 -07:00
Alex Dadgar
1a1febba4f
Unit tests for the refactor scheduler methods
2015-10-16 16:35:55 -07:00
Alex Dadgar
1ec921a3c2
Refactor task group constraint logic in generic/system stack
2015-10-16 14:00:51 -07:00
Alex Dadgar
ab9acb9edf
diffResult stores values not pointers
2015-10-16 11:43:09 -07:00
Alex Dadgar
406e135ce8
Add negative test to DriverIterator, increase system scheduler attempts, and fix evictAndPlace status message
2015-10-16 11:36:26 -07:00
Alex Dadgar
70c39bd5a4
Add diffSystemAlloc which gives richer information which node to place a system allocation
2015-10-15 13:14:44 -07:00
Alex Dadgar
65fd28d7d1
Refactor shared code between schedulers
2015-10-14 18:39:44 -07:00
Alex Dadgar
692efe513d
Use valid driver values in test
2015-10-14 18:39:44 -07:00
Alex Dadgar
494244ed06
System scheduler and system stack
2015-10-14 18:39:44 -07:00
Armon Dadgar
931a113cb5
scheduler: adding regexp and version constraint cache
2015-10-12 20:15:07 -07:00
Armon Dadgar
81c08ba66e
scheduler: support lexical ordering constraints
2015-10-11 15:57:06 -04:00
Armon Dadgar
751fa61b3e
scheduler: adding regexp constraints
2015-10-11 15:35:13 -04:00
Armon Dadgar
86ca7c59a1
scheduler: adding version constraint logic
2015-10-11 15:12:39 -04:00
Ivo Verberk
c6e1b13b51
Fix vet warnings
2015-10-07 12:26:58 +02:00
Armon Dadgar
32f4e9e401
scheduler: tasks updated should only check if number of dynamic ports is different
2015-10-04 15:53:02 -04:00
Armon Dadgar
b213462cb4
Change CPU from float64 to int
2015-09-23 11:14:32 -07:00
Armon Dadgar
d442a49fde
scheduler: job anti-affinity score should record as negative
2015-09-22 22:24:07 -07:00
Armon Dadgar
90a82da0fd
scheduler: do not skip job anti-affinity
2015-09-22 22:20:07 -07:00
Armon Dadgar
a23c8bf713
scheduler: Allow rolling update, assign eval first.Fixes #91
2015-09-22 21:45:25 -07:00
Chris Bednarski
168c959497
Added named ports
2015-09-22 13:59:16 -07:00
Armon Dadgar
ee2fd15cc2
scheduler: ignore allocations in terminal state
2015-09-17 21:25:55 -07:00
Armon Dadgar
38471c81a0
scheduler: pass failure reason to ExhaustedNode
2015-09-13 18:38:26 -07:00
Armon Dadgar
cece4473b8
scheduler: in-place update should preserve network offer
2015-09-13 17:06:34 -07:00
Armon Dadgar
fcd367e657
scheduler: track dimension of exhaustion
2015-09-13 16:48:01 -07:00
Armon Dadgar
f71527dadf
schedule: avoid in-place update of task if network resources are different
2015-09-13 16:41:53 -07:00
Armon Dadgar
cf0a546fdc
scheduler: expose reason network offer failed
2015-09-13 16:41:32 -07:00
Armon Dadgar
c6f5a8e029
scheduler: thread through the TaskResources
2015-09-13 15:20:50 -07:00
Armon Dadgar
cb3aa5d4db
nomad: update for new AllocsFit API
2015-09-13 14:57:58 -07:00
Armon Dadgar
aed6bd8a41
scheduler: use the new network index
2015-09-13 14:37:09 -07:00
Armon Dadgar
e901b0a1ca
nomad: moving network index
2015-09-13 14:35:28 -07:00
Armon Dadgar
625308661a
scheduler: binpacker makes network offers
2015-09-13 14:31:32 -07:00
Armon Dadgar
b0eb463823
scheduler: expose AddReserved, add test
2015-09-13 14:31:01 -07:00
Armon Dadgar
5c8f1c0fa5
scheduler: adding helper library for network assignments
2015-09-12 19:34:46 -07:00
Armon Dadgar
0e38f0e914
scheduler: refactor shared logic
2015-09-12 14:44:40 -07:00
Armon Dadgar
4333b7370b
scheduler: recompute scan limit on SetNodes
2015-09-11 12:03:41 -07:00
Armon Dadgar
e804567324
scheduler: Adding SetLimit to LimitIterator
2015-09-11 12:01:22 -07:00
Armon Dadgar
ea0795995d
Use a single implementation of GenerateUUID
2015-09-07 15:23:03 -07:00
Armon Dadgar
b0ef497f92
scheduler: use update strategy for rolling updates
2015-09-07 15:17:39 -07:00
Armon Dadgar
e7c0bb5e1e
scheduler: Adding CreateEval to Planner
2015-09-07 14:26:29 -07:00
Armon Dadgar
c8bcb292a0
scheduler: support in-place allocation updates
2015-09-07 12:27:12 -07:00
Armon Dadgar
c2eff48412
scheduler: util method to diff task groups
2015-09-07 12:25:23 -07:00
Armon Dadgar
f8ee848fee
scheduler: share context and stack
2015-09-07 11:34:59 -07:00
Armon Dadgar
4a348cc0da
scheduler: allow updating the base nodes
2015-09-07 11:30:13 -07:00
Armon Dadgar
5b45705165
scheduler: allow StaticIterator to update base set
2015-09-07 11:26:16 -07:00
Armon Dadgar
f1a93b0aa7
scheduler: pull node shuffle into util
2015-09-07 11:23:38 -07:00
Armon Dadgar
8bedd3769c
nomad: unifying the state store API
2015-09-06 20:56:38 -07:00
Armon Dadgar
1a5579384a
nomad: cleanup API descrepencies
2015-09-06 20:47:42 -07:00
Armon Dadgar
5832b2f147
nomad: adding drain as node property
2015-09-06 19:47:02 -07:00
Chris Bednarski
96cb220ff4
Update references to "os" to use "kernel.name"
...
This brings test code and mocks up to date with the fingerprinter. This was a slightly larger change than I anticipated, but I think it's good for two reasons:
1. More semanitcally correct. `os.name` is something like "Windows 10 Pro" or "Ubuntu", while `kernel.name` is "windows" or "linux". `os.version` and `kernel.version` match these semantics.
2. `kernel.name` is much easier to grep for than `os`, which is helpful because oracle can't help us with strings.
2015-08-28 01:30:47 -07:00
Armon Dadgar
2ee6947844
scheduler: updating for new APIs
2015-08-25 17:06:06 -07:00
Armon Dadgar
b77e4ff343
scheduler: update tests to filter terminal allocs
2015-08-23 16:30:57 -07:00
Armon Dadgar
f04e2b81ba
nomad: adding evicted state for allocs
2015-08-22 18:30:49 -07:00
Armon Dadgar
383a6aa76d
scheduler: adding job anti-affinity to the generic stack
2015-08-16 10:37:11 -07:00
Armon Dadgar
6d60c4c623
scheduler: adding JobAntiAffinityIterator
2015-08-16 10:32:25 -07:00
Armon Dadgar
f4e9ef8d1e
scheduler: move proposed alloc logic to Context
2015-08-16 10:28:58 -07:00
Armon Dadgar
0dff5a77a2
scheduler: coalesce failures by task group
2015-08-16 10:03:21 -07:00
Armon Dadgar
107da3a174
scheduler: track sub-scores
2015-08-16 09:57:30 -07:00
Armon Dadgar
1fd148d97d
nomad: fixing vet errors
2015-08-15 16:10:10 -07:00
Armon Dadgar
088cc37487
scheduler: update status and test retry limit
2015-08-15 14:47:13 -07:00
Armon Dadgar
cae67b7f60
nomad: expose UpdateEval as a planner
2015-08-15 14:25:00 -07:00
Armon Dadgar
9fd8049e16
scheduler: create allocs for failed placements
2015-08-15 13:40:13 -07:00
Armon Dadgar
da90c453ce
nomad: adding index on EvalID and Status to alloc
2015-08-15 13:27:42 -07:00
Armon Dadgar
3f16a21658
nomad: remove NodesByDatacenterStatus
2015-08-15 13:11:42 -07:00
Armon Dadgar
6738e9fe08
nomad: associate alloc with eval
2015-08-15 13:08:06 -07:00
Armon Dadgar
0b1d096f87
scheduler: adding minor specialization for batch
2015-08-13 22:35:48 -07:00
Armon Dadgar
ddfe28e694
scheduler: ServiceScheduler is now GenericScheduler with service and batch modes
2015-08-13 22:28:37 -07:00
Armon Dadgar
698055f97c
scheduler: testing job update
2015-08-13 22:14:37 -07:00
Armon Dadgar
e0cacff41c
scheduler: test node drain behavior
2015-08-13 22:11:32 -07:00
Armon Dadgar
6f62ceb2ae
scheduler: test job registration
2015-08-13 22:07:01 -07:00
Armon Dadgar
e3f769f0ad
scheduler: test all the metrics
2015-08-13 21:58:55 -07:00
Armon Dadgar
b290aac24f
scheduler: testing service stack
2015-08-13 21:55:37 -07:00
Armon Dadgar
64bab68680
scheduler: basic metrics integration
2015-08-13 21:46:33 -07:00
Armon Dadgar
be4cd4d8a4
scheduler: adding tests
2015-08-13 18:51:08 -07:00
Armon Dadgar
d4e3270757
scheduler: simply stack implementation
2015-08-13 18:44:27 -07:00
Armon Dadgar
6fa4822e61
scheduler: thread size through
2015-08-13 18:36:13 -07:00
Armon Dadgar
d872c1434e
scheduler: integrate metrics to context
2015-08-13 18:34:04 -07:00
Armon Dadgar
085e579c44
scheduler: make diff less nasty
2015-08-13 18:28:09 -07:00
Armon Dadgar
1b41cb0abe
scheduler: remove explicit index
2015-08-13 18:20:55 -07:00
Armon Dadgar
5dc01ff7c2
scheduler: hide the indexing
2015-08-13 18:18:32 -07:00
Armon Dadgar
89eef4ed6a
scheduler: simplifying
2015-08-13 18:16:32 -07:00
Armon Dadgar
32333a25cd
scheduler: trimming more fat
2015-08-13 18:05:31 -07:00
Armon Dadgar
8f55662e11
schduler: refactor and test
2015-08-13 17:51:31 -07:00
Armon Dadgar
453fc7b23d
scheduler: refactor stack out
2015-08-13 17:48:26 -07:00
Armon Dadgar
de45ed0950
scheduler: trying to simplify further
2015-08-13 17:40:23 -07:00
Armon Dadgar
c6340488bf
scheduler: refactor and test
2015-08-13 17:19:09 -07:00
Armon Dadgar
b2ad51c791
scheduler: major refactor
2015-08-13 17:11:20 -07:00
Armon Dadgar
61ecbea1f2
schedulder: handle tainted nodes
2015-08-13 16:48:34 -07:00
Armon Dadgar
53ec367b89
scheduler: determine if any allocations need to be migrated
2015-08-13 16:47:39 -07:00
Armon Dadgar
eafa8ccd21
scheduler: simplify eviction logic
2015-08-13 16:29:28 -07:00
Armon Dadgar
6977133bc9
scheduler: testing utility methods
2015-08-13 16:25:59 -07:00
Armon Dadgar
91f0392812
scheduler: refactor harness location
2015-08-13 15:57:49 -07:00
Armon Dadgar
fcd6ccbd53
scheduler: working on plan submission
2015-08-13 15:17:24 -07:00
Armon Dadgar
bbb9b2c618
scheduler: support iterator reset
2015-08-13 15:01:02 -07:00
Armon Dadgar
faad7db9f7
scheduler: working on node selection
2015-08-13 14:03:03 -07:00
Armon Dadgar
49878bf01d
scheduler: allow changing parameters mid-stream
2015-08-13 13:52:20 -07:00
Armon Dadgar
a077605114
nomad: adding NodesByDatacenterStatus
2015-08-13 13:17:03 -07:00
Armon Dadgar
f5e37c926c
scheduler: testing bin pack scoring
2015-08-13 13:08:15 -07:00
Armon Dadgar
022e583a2a
scheduler: testing basic bin pack
2015-08-13 12:08:53 -07:00
Armon Dadgar
b0c15ed894
scheduler: refactor tests
2015-08-13 12:02:42 -07:00
Armon Dadgar
df21ab3d10
scheduler: working on bin pack
2015-08-13 11:54:59 -07:00
Armon Dadgar
861a5e2097
scheduler: Adding State to Context
2015-08-13 11:33:58 -07:00
Armon Dadgar
a19e98202d
schedueler: adding best fit scoring
2015-08-13 11:28:02 -07:00
Armon Dadgar
28a4126277
scheduler: implement basic constraint iterator
2015-08-13 10:46:30 -07:00
Armon Dadgar
9430a99c87
scheduler: implementing driver iterator
2015-08-13 10:19:46 -07:00
Armon Dadgar
acef950c5f
scheduler: testing more iterators
2015-08-13 10:13:11 -07:00
Armon Dadgar
e46b1f58b5
scheduler: testing select iterators
2015-08-13 10:05:54 -07:00
Armon Dadgar
f25bd47bda
scheduler: adding static rank iterator
2015-08-11 18:30:45 -07:00
Armon Dadgar
9943b83463
scheduler: adding various iterators
2015-08-11 18:27:54 -07:00
Armon Dadgar
e49f1d4da6
scheduler: adding feasibility iterators
2015-08-11 17:57:23 -07:00
Armon Dadgar
fb0c230f3b
scheduler: working on job updates
2015-08-11 16:41:48 -07:00
Armon Dadgar
b2c15545c8
scheduler: test job deregister
2015-08-11 14:54:21 -07:00
Armon Dadgar
7a36b845e2
scheduler: derp, job deregister should always evict
2015-08-11 14:04:45 -07:00
Armon Dadgar
dbb631d0b2
scheduler: check node status before evicting
2015-08-11 14:04:04 -07:00