Nomad
Nomad volume specification capability block
| Placement | volume -> capability |
The capability block allows validating that a volume meets the requested
capabilities.
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. Theaccess_modeandattachment_modefrom the volume request must exactly match one of the volume'scapabilityblocks.For CSI volumes the
access_modeis required. Can be one of the following:"single-node-reader-only": Jobs can only request the volume with read-only access, and only one node can mount the volume at a time."single-node-writer": Jobs can request the volume with read/write or read-only access, and only one node can mount the volume at a time."multi-node-reader-only": Jobs can only request the volume with read-only access, but multiple nodes can mount the volume simultaneously."multi-node-single-writer": Jobs can request the volume with read/write or read-only access, but the scheduler only allows one allocation to have read/write access. Multiple nodes can mount the volume simultaneously."multi-node-multi-writer": Jobs can request the volume with read/write or read-only access, and the scheduler allows multiple allocations to have read/write access. Multiple nodes can mount the volume simultaneously.
Most CSI plugins support only single-node modes. Consult the documentation of the storage provider and CSI plugin.
For dynamic host volumes the
access_modeis optional. Can be one of the following:"single-node-writer": Jobs can only request the volume with read/write access."single-node-reader-only": Jobs can only request the volume with read-only access."single-node-single-writer": Jobs can request either read/write or read-only access, but the scheduler only allows one allocation to have read/write access."single-node-multi-writer": Jobs can request either read/write or read-only access, and the scheduler allows multiple allocations to have read/write access.
In the job specification, the default is
single-node-writerunlessread_only = true, which translates tosingle-node-reader-only.
attachment_mode(string)- The storage API used by the volume. One of"file-system"or"block-device". Theaccess_modeandattachment_modefrom the volume request must exactly match one of the volume'scapabilityblocks.For CSI volumes the
attachment_modefield 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_modefield is optional and defaults to"file-system".
Example
This examples shows a volume that must satisfy multiple capability requirements.
capability {
access_mode = "single-node-reader-only"
attachment_mode = "file-system"
}
capability {
access_mode = "single-node-writer"
attachment_mode = "file-system"
}