Files
nomad/website/content/docs/other-specifications/volume/capability.mdx
Aimee Ukasick c12ad24de0 Docs: SEO updates to operations, other specs sections (#25518)
* seo operation section

* other specifications section

* Update website/content/docs/other-specifications/variables.mdx

Co-authored-by: Jeff Boruszak <104028618+boruszak@users.noreply.github.com>

---------

Co-authored-by: Jeff Boruszak <104028618+boruszak@users.noreply.github.com>
2025-05-22 07:47:05 -05:00

95 lines
2.8 KiB
Plaintext

---
layout: docs
page_title: Nomad volume specification capability block
description: |-
Configure Container Storage Interface (CSI) and dynamic host storage volume capability in the `capability`block of the Nomad volume specification. Set single node or multiple node access and file system or block device attachment mode.
---
# Nomad volume specification capability block
<Placement
groups={[
['volume', 'capability'],
]}
/>
The `capability` block allows validating that a volume meets the requested
capabilities.
```hcl
id = "ebs_prod_db1"
namespace = "default"
name = "database"
type = "csi"
plugin_id = "ebs-prod"
capacity_max = "200G"
capacity_min = "100G"
capability {
access_mode = "single-node-reader-only"
attachment_mode = "file-system"
}
```
You must provide at least one `capability` block, and you must provide a block
for each capability you intend to use in a job's [`volume`] block.
## Parameters
- `access_mode` `(string)` - Defines whether a volume should be available
concurrently. The `access_mode` and `attachment_mode` from the volume request
must exactly match one of the volume's `capability` blocks.
- For CSI volumes the `access_mode` is required. Can be one of the following:
- `"single-node-reader-only"`
- `"single-node-writer"`
- `"multi-node-reader-only"`
- `"multi-node-single-writer"`
- `"multi-node-multi-writer"`
Most CSI plugins support only single-node modes.
Consult the documentation of the storage provider and CSI plugin.
- For dynamic host volumes the `access_mode` is optional. Can be one of the following:
- `"single-node-writer"`
- `"single-node-reader-only"`
- `"single-node-single-writer"`
- `"single-node-multi-writer"`
In the job specification, the default is `single-node-writer` unless
`read_only = true`, which translates to `single-node-reader-only`.
- `attachment_mode` `(string)` - The storage API used by the volume. One of
`"file-system"` or `"block-device"`. The `access_mode` and `attachment_mode`
from the volume request must exactly match one of the volume's `capability`
blocks.
- For CSI volumes the `attachment_mode` field is required. Most storage
providers support `"file-system"`, to mount volumes using the CSI
filesystem API. Some storage providers support `"block-device"`, which
mounts the volume with the CSI block device API within the container.
- For dynamic host volumes the `attachment_mode` field is optional and
defaults to `"file-system"`.
## Example
This examples shows a volume that must satisfy multiple capability
requirements.
```hcl
capability {
access_mode = "single-node-reader-only"
attachment_mode = "file-system"
}
capability {
access_mode = "single-node-writer"
attachment_mode = "file-system"
}
```
[`volume`]: /nomad/docs/job-specification/volume