open-nomad/website/content/docs/job-specification/volume_mount.mdx

73 lines
2.3 KiB
Plaintext

---
layout: docs
page_title: volume_mount Block - Job Specification
description: |-
The "volume_mount" block allows the task to specify where a group "volume"
should be mounted.
---
# `volume_mount` Block
<Placement groups={['job', 'group', 'task', 'volume_mount']} />
The `volume_mount` block allows the task to specify how a group
[`volume`][volume] should be mounted into the task.
```hcl
job "docs" {
group "example" {
volume "certs" {
type = "host"
read_only = true
source = "ca-certificates"
}
task "example" {
volume_mount {
volume = "certs"
destination = "/etc/ssl/certs"
propagation_mode = "private"
}
}
}
}
```
The Nomad client will make the volumes available to tasks according to this
configuration, and it will fail the allocation if the client configuration
updates to remove a volume that it depends on.
## `volume_mount` Parameters
- `volume` `(string: "")` - Specifies the group volume that the mount is going
to access.
- `destination` `(string: "")` - Specifies where the volume should be mounted
inside the task's allocation.
- `read_only` `(bool: false)` - When a group volume is writeable, you may
specify that it is `read_only` on a per mount level using the `read_only`
option here.
- `propagation_mode` `(string: "private")` - Specifies the mount propagation
mode for nested volumes. Possible values are:
- `private` - the task is not allowed to access nested mounts.
- `host-to-task` - allows new mounts that have been created outside of the
task to be visible inside the task.
- `bidirectional` - allows the task to both access new mounts from the host
and also create new mounts. This mode requires `ReadWrite` permission.
~> **Warning:** `bidirectional` propagation mode can be dangerous to use
and cause problems in the host operating system if a task creates a mount
but does not clean it up properly before exiting.
For examples of how to use [HCL2] interpolation for fine-grained control of
volumes, see [Volume Interpolation].
[volume]: /nomad/docs/job-specification/volume 'Nomad volume Job Specification'
[volume interpolation]: /nomad/docs/job-specification/volume#volume-interpolation
[hcl2]: /nomad/docs/job-specification/hcl2