mirror of
https://github.com/kemko/nomad.git
synced 2026-01-09 20:05:42 +03:00
* 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>
95 lines
2.8 KiB
Plaintext
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
|