opencontainers / opencontainers/image-spec
Volume mountpoints should have additional flags
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 4.5k
- Forks
- 891
- Avg merge
- 27d 2h
- Merged PRs (30d)
- 1
Description
Volume mountpoints in a container should have data explaining how they are used to help runtimes decide what should be done with them. The first and most obvious is a "readonly" boolean. There are a couple other flags which also could be useful.
readonly:
true if the container only needs to read from the mountpoint (generally implemented by mounting a readonly volume)
example: directory for process config files
temporary:
true if the volume should be cleared between runs of the container process (generally implemented by mounting a tmpfs)
example: directory for pid files or secrets that only exist for the current run of the process
data:
true if the image has data in this directory that can be used to initialize the volume (generally implemented by copying data out of the container when creating the volume)
example: directory with an initial database
The purpose of these flags might be illustrated with an example. Lets say I'm making a mysql container. I might have the following mountpoints defined:
"volumes": [
# config files
{"name": "config",
"path": "/etc/mysql",
"readonly": true, # config should be modified from the outside
"data": true}, # because the default config lives here
# pid files
{"name": "run",
"path": "/var/run/mysql",
"temporary": true}, # for the pid file
# uds socket
{"name": "tmp",
"path": "/tmp",
"temporary": true}, # for the mysql socket file
# db files
{"name": "db",
"path": "/var/lib/mysql",
"data": true}, # because a default db exists here
# log files
{"name": "log",
"path": "/var/log/mysql"},
]
Clearly some of these could be consolidated using symlinks (tmp and run could share the same dir, as well as db and logs), but I wanted to give a verbose description.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or tests are named. Start by reviewing the image-spec definition of volume mountpoints and the issue's proposed readonly, temporary, and data flags, then read the six-comment thread for unresolved design questions. Done means the flag semantics and representation are agreed and reflected consistently in the specification.
Written by the indexing model from the issue text.
Assessment
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100