hashicorp / hashicorp/nomad

tmpfs volumes

Open
#10,368 0 comments 4 reactions 0 assignees View on GitHub
theme/storage type/enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.