Commit graph

422 commits

Author SHA1 Message Date
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