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-1
from 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-1
from 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. |