include driver capabilities in client fingerprint
- Dominant language
- Go
- Stars
- 17k
- Forks
- 2.1k
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 105
Description
Currently driver capabilities aren’t part of scheduling decisions, and driver capabilities aren’t included in the fingerprint ([`DriverInfo`](https://github.com/hashicorp/nomad/blob/v0.12.5/nomad/structs/node.go#L221-L229)). With network isolation and volume mount, we now have driver capabilities that can impact scheduling. We can't simply derive this information from code on the scheduler because:
* Drivers on clients can be on different versions of Nomad and therefore have potentially different capabilities
* Drivers on clients may be out-of-tree drivers (ex. podman, LXC) and not exist at all in the server code.
Having this information available in the fingerprint would allow us to catch driver capability issues (ex. using volumes with raw_exec) at plan/submit time instead of after placement.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with DriverInfo in nomad/structs/node.go, then trace how client fingerprints reach scheduling and plan/submit validation. Confirm how driver capabilities are represented and carried in the fingerprint; done means capability-dependent scheduling issues, such as unsupported volume use, can be detected before placement.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100