Mahmood Ali
3a1cb51539
schedulers: check all drivers on node
...
When checking driver feasability for an alloc with multiple drivers, we
must check that all drivers are detected and healthy.
Nomad 0.9 and 0.8 have a bug where we may check a single driver only,
but which driver is dependent on map traversal order, which is
unspecified in golang spec.
2019-08-29 09:03:31 -04:00
Mahmood Ali
3da10b5cb3
scheduler: tests for multiple drivers in TG
2019-08-29 09:03:31 -04:00
Danielle Lancashire
3a5e48ad18
scheduler: Implicit constraint on readonly hostvol
...
When a Client declares a volume is ReadOnly, we should only schedule it
for requests for ReadOnly volumes. This change means that if a host
exposes a readonly volume, we then validate that the group level
requests for the volume are all read only for that host.
2019-08-21 20:57:05 +02:00
Danielle Lancashire
e132a30899
structs: Unify Volume and VolumeRequest
2019-08-12 15:39:08 +02:00
Danielle
fc53283489
Update scheduler/feasible.go
...
Co-Authored-By: Mahmood Ali <mahmood@hashicorp.com>
2019-08-12 15:39:08 +02:00
Danielle Lancashire
073836ec67
scheduler: Add a feasability checker for Host Vols
2019-08-12 15:39:08 +02:00
Alex Dadgar
5198ff05c3
convert driver to device for device constraint/attributes
2019-01-23 10:58:45 -08:00
Alex Dadgar
4bdccab550
goimports
2019-01-22 15:44:31 -08:00
Danielle Tomlinson
9c72dafc95
scheduler: Add is_set/is_not_set constraints
...
This adds constraints for asserting that a given attribute or value
exists, or does not exist. This acts as a companion to =, or !=
operators, e.g:
```hcl
constraint {
attribute = "${attrs.type}"
operator = "!="
value = "database"
}
constraint {
attribute = "${attrs.type}"
operator = "is_set"
}
```
2018-11-15 11:00:32 -08:00
Danielle Tomlinson
e5c641daa9
scheduler: Allow comparisons of nil values
...
This commit allows the ConstraintChecker to test values that do not exist.
This is useful when wanting to _exclude_ given nodes from executing a
job, for example, if you wanted to give canary nodes an attribute, and
not run critical services on them, you may specify something like the
below, but not want to tag all other nodes with the inverse.
```hcl
constraint {
attribute = "${node.attr.canary}
operator = "!="
value = "1"
}
```
This also requires all constraint checkers to allow for nil target
values, as they will no longer be short circuited by resolving a target.
2018-11-13 13:36:51 -08:00
Alex Dadgar
a7ca737fb6
review comments
2018-11-07 11:31:52 -08:00
Alex Dadgar
6fa893c801
affinities
2018-11-07 10:32:03 -08:00
Alex Dadgar
feb83a2be3
assign devices
2018-11-07 10:32:03 -08:00
Preetha Appan
53c3f8151b
fix linting
2018-10-16 18:29:49 -05:00
Alex Dadgar
f5a76d8411
review comments
2018-10-15 15:31:13 -07:00
Alex Dadgar
7ecd65109a
Check constraints on devices
2018-10-14 13:35:47 -07:00
Alex Dadgar
5284554fcc
rework device checker
2018-10-13 16:47:53 -07:00
Alex Dadgar
9b5aaac410
Device feasability checker
2018-10-13 12:27:49 -07:00
Alex Dadgar
3c19d01d7a
server
2018-09-15 16:23:13 -07:00
Preetha Appan
038ed52877
Fix after rename to ConstraintSetContainsAny
2018-09-04 16:10:11 -05:00
Preetha Appan
dccb693221
test for setcontainsany, and treat set_contains same as set_contains_all
2018-09-04 16:10:11 -05:00
Preetha Appan
5eacd6ada4
Implement affinity support in generic scheduler
2018-09-04 16:10:11 -05:00
Chelsea Holland Komlo
329605b7cc
fix up scheduling test
2018-03-21 15:54:03 -04:00
Chelsea Holland Komlo
60f12d206f
improve comments; update watchDriver
2018-03-21 15:15:26 -04:00
Chelsea Holland Komlo
d92703617c
simplify logic
...
bump log level
2018-03-21 15:15:26 -04:00
Chelsea Holland Komlo
d8f68e5ef8
fix up codereview feedback
2018-03-21 15:15:26 -04:00
Chelsea Holland Komlo
3aa726baab
fix scheduler driver name; create node structs file
2018-03-21 15:15:25 -04:00
Chelsea Holland Komlo
3cba95e8a7
allow nomad to schedule based on the status of a client driver health check
...
Slight updates for go style
2018-03-21 15:15:25 -04:00
Alex Dadgar
c1cc51dbee
sync
2017-10-13 14:36:02 -07: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
989827e402
Add set contains
2016-10-19 13:06:28 -07:00
Sean Chittenden
dc28ab0cb5
Speling police
2016-05-15 09:41:34 -07: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
5018f5dd1e
Only interpret vars wrapped in braces
2016-02-04 17:26:46 -08:00
Alex Dadgar
9dc22532e5
Respond to comments
2016-01-26 16:43:42 -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
Alex Dadgar
5e71751a1d
Add node class to constraints
2015-12-21 17:15:34 -08:00
Alex Dadgar
3cdbfc010f
Remove weight and hard/soft fields from constraint
2015-10-27 14:31:14 -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