tmpfs volumes
- Dominant language
- Go
- Stars
- 17k
- Forks
- 2.1k
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 105
Description
### Proposal
Add a `tmpfs` [volume type](https://www.nomadproject.io/docs/job-specification/volume#type).
#### Memory Accounting
Unforutantely since the volume is specified at the group level and mounted at the task level, I'm unsure how to appropriate account for the memory resources as memory is a per-task resource as of 1.1.0.
#### Constraints
Not all client nodes may support tmpfs, so we should likely fingerprint and add an implicit constraint for scheduling it properly.
### Use-cases
If a sidecar wants to share secrets with a main task and not risk those secrets being persisted to disk.
### Attempted Solutions
Support docker run arg --tmpfs #4714 is a Docker-specific version of this but does not allow for tasks in an alloc to share a tmpfs.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing Nomad's volume-type handling, group and task memory accounting, and client fingerprinting or scheduling constraints; the issue names no files or tests. Done means a group-level tmpfs can be mounted by multiple tasks, its memory impact is accounted for, and allocations are placed only on capable clients.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, linux
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100