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
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