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
Armon Dadgar
28f9234135
scheduler: first pass at job deregister
2015-08-06 17:46:14 -07:00
Armon Dadgar
09a8c15d7e
scheduler: adding service scheduler definition
2015-08-06 17:25:14 -07:00
Armon Dadgar
d7e9927661
nomad: integrating worker and scheduler
2015-07-28 16:15:32 -07:00
Armon Dadgar
90e8bc9b91
scheduler: initial interface
2015-07-28 16:03:15 -07:00