Alex Dadgar
5198ff05c3
convert driver to device for device constraint/attributes
2019-01-23 10:58:45 -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
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
1089e13b14
add to stack
2018-10-13 12:27:49 -07:00
Alex Dadgar
9b5aaac410
Device feasability checker
2018-10-13 12:27:49 -07: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
d92703617c
simplify logic
...
bump log level
2018-03-21 15:15:26 -04:00
Chelsea Holland Komlo
c7fd0bd8a1
fix up scheduler mocks
2018-03-21 15:15:25 -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
Josh Soref
ed8db9992e
spelling: feasibility
2018-03-11 18:07:09 +00:00
Michael Schurter
a66c53d45a
Remove `structs` import from `api`
...
Goes a step further and removes structs import from api's tests as well
by moving GenerateUUID to its own package.
2017-09-29 10:36:08 -07:00
Alex Dadgar
4173834231
Enable more linters
2017-09-26 15:26:33 -07:00
Alex Dadgar
84d06f6abe
Sync namespace changes
2017-09-07 17:04:21 -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
8169590d76
Fix tests
2017-05-01 13:54:26 -07: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
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
Alex Dadgar
2de9299cab
ProposedAllocs dedups in-place updated allocations
2016-03-21 18:09:32 -07:00
Alex Dadgar
5018f5dd1e
Only interpret vars wrapped in braces
2016-02-04 17:26:46 -08:00
Alex Dadgar
151fe5ed88
Make computed node class a string and add versioning
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
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
fd9c2baf02
Constants for constraints and renaming to use undescore instead of camel
2015-10-26 13:47:56 -07:00
Alex Dadgar
ecc4f98f3a
Change "unique" to "distinctHosts"
2015-10-22 17:40:41 -07:00
Alex Dadgar
910dcc49fb
DynamicConstraintIterator that implements the unique constraint
2015-10-22 14:31:12 -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
692efe513d
Use valid driver values in test
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
Armon Dadgar
5b45705165
scheduler: allow StaticIterator to update base set
2015-09-07 11:26:16 -07:00
Armon Dadgar
5832b2f147
nomad: adding drain as node property
2015-09-06 19:47:02 -07:00