dcos storage provider create
Create a new volume provider.
Synopsis
Arguments:
<path> A URL or local path to the volume provider configuration JSON. If
this is omitted the volume provider configuration JSON is read
from STDIN.
For more information regarding volume providers and when you would use them, run
dcos storage provider --help. The following section assumes that you are
familiar with them and will describe their configurations as well as give some
examples.
You configure a volume provider by passing a JSON document to this command. The
JSON configuration is read from <path> or from STDIN if no <path> is
specified.
The provider configuration consists of multiple fields: name, description
and spec.
The name field uniquely identifies the volume provider. It is a string of up
to 128 characters. The name must consist of the characters from [A-Za-z0-9\-],
and must start with a letter. It must be unique throughout the cluster. This
field is required.
The description item allows you to specify a human-readable description for
the volume provider to add some extra context. This is a string of up to 512
characters. This field is optional.
The spec field is itself a nested structure containing the following fields:
plugin, node, plugin-configuration and labels. When you later configure
volume profiles you can select which volume providers to use by filtering on the
fields in their spec. This field is required.
The spec.plugin field specifies the name of a DC/OS Storage Plugin (e.g.,
“lvm”). See the Volume Plugins section of the DC/OS Storage Service
documentation (</mesosphere/dcos/services/storage/>).
This field is required.
The spec.node field specifies the Mesos agent ID of a specific agent to which
a local volume provider is bound. This field is required for local volume
providers and must be omitted for external volume providers.
The spec.plugin-configuration field is plugin specific. Consult the supported
configuration items under the Volume Plugins section of the DC/OS Storage
Service documentation (</mesosphere/dcos/services/storage/>).
This field is required.
Example plugin-configuration for a “lvm” volume provider:
{
"name": "lvm-ssds",
"description": "LVM volume group backed by SSDs.",
"spec": {
"plugin": {
"name": "lvm",
"config-version": "latest"
},
"node": "c67efa5d-34fa-4bc5-8b21-2a5e0bd52385-S1",
"plugin-configuration": {
"devices": ["xvdb", "xvdc"]
},
"labels": { ... }
}
}
The spec.labels section allows you to label the volume provider. Labels are
not interpreted by DC/OS and it is up to the user to ensure that they are
meaningful. Labels consist of key-value pairs. The keys must be strings of 128
characters or fewer. The values must be strings of 128 characters or fewer. At
maximum 64 labels can be defined although some plugins might further limit the
number and format of labels. This field is optional.
An example for labels:
{
"name": "...",
"description": "...",
"spec": {
"plugin": "...",
"node": "...",
"provider-configuration": { ... },
"labels": {
"rotational": "false",
"manufacturer": "samsung",
"nvme": "true",
"raid": "1"
}
}
}
dcos storage provider create [<path>] [flags]
Examples
- Create a LVM volume group called
volume-group-1from configuration in a local file calledprovider.json:
cat provider.json
{
"name": "volume-group-1",
"description": "the primary volume group",
"spec": {
"plugin": {
"name": "lvm",
"version": "latest"
},
"node": "c67efa5d-34fa-4bc5-8b21-2a5e0bd52385-S1",
"plugin-configuration": {
"devices": ["xvdb", "xvdc"]
},
"labels": {"rotational": "false"}
}
}
dcos storage provider create provider.json
Successfully created "volume-group-1"
- Create a LVM volume group called
volume-group-1from configuration passed on stdin:
cat <<EOF | dcos storage provider create
{
"name": "volume-group-1",
"description": "the primary volume group",
"spec": {
"plugin": {
"name": "lvm",
"version": "latest"
},
"node": "c67efa5d-34fa-4bc5-8b21-2a5e0bd52385-S1",
"plugin-configuration": {
"devices": ["xvdb", "xvdc"]
},
"labels": {"rotational": "false"}
}
}
EOF
Successfully created "volume-group-1"
Options inherited from parent commands
| Name | Description |
|---|---|
-h,--help |
Help for this command. |
--timeout duration |
Override the default operation timeout. (default 55s) |
-v,--verbose |
Verbose mode. |
Storage Documentation