hashicorp / hashicorp/nomad

include driver capabilities in client fingerprint

Open
#9,063 0 comments 1 reaction 0 assignees View on GitHub
stage/needs-discussion theme/driver theme/fingerprint type/enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.