Exploring the Diamanti CLI

This guide provides a comprehensive reference to the Diamanti command line interface (CLI). The Diamanti CLI offers a set of commands that makes it easy to manage Diamanti D-Series clusters, nodes (appliances), storage volumes, networks, and more.

Note: Users issue standard Kubernetes commands to manage pods, containers, and other Kubernetes resources in the environment.

Overview

The dctl utility allows users to configure, manage, and monitor objects in the Diamanti cluster.

Note: Users need to download the Diamanti tools to run the Diamanti CLI on a local machine.

Understanding Roles

The Diamanti software uses role-based access control (RBAC) to regulate access to resources within the environment. Users therefore need to be assigned specific roles to run dctl commands.

Each command described in this chapter includes the role needed to run the command (if applicable). In addition, users need to be assigned the following roles to run Kubernetes commands:

  • container-view/namespace role to run the kubectl get and kubectl describe commands

  • container-edit/namespace role to run all kubectl commands

Note that Diamanti roles include a qualifier, either view or edit. For example, the roles related to node commands are node-view and node-edit. The view qualifier applies to read-only operations while the edit qualifier indicates a read-write operation (such as creating or removing an object). Roles with an edit qualifier include view privileges for an object.

For more information about RBAC, see the dctl user role command.

Synopsis

Configure and control the Diamanti cluster.

dctl [global options] <command> [command options] [arguments...]

Note: All commands, except the dctl cluster create and dctl cluster info commands, require users to be logged into the cluster (using the dctl login command).

Commands

port                port commands
help, h             Shows a list of commands or help for one command

CLUSTER-COMMANDS:
 cluster            Cluster commands
 config             Config commands
 login              Provide credentials for authentication
 logout             Logout from the current user session.
 node               Node commands
 passwd             Change password for the logged in user

MULTI-CLUSTER COMMANDS:
 mcm                Multi-cluster commands

NETWORK-COMMANDS:
 endpoint           Endpoint commands
 network            Network commands

OTHER-COMMANDS:
 event              Event commands
 diagnosticbundle   DiagnosticBundle commands
 feature            Feature commands
 zone               Zone commands

QOS-COMMANDS:
 perf-tier          Performance tier commands

RBAC-COMMANDS:
 namespace          Manage namespace for the current user context; see also 'kubectl config current-context'
 user               User commands
 whoami             Display user for the current session

STORAGE-COMMANDS:
 drive              Drive commands
 snapshot           Snapshot commands
 snapshot-group     Snapshot group commands
 volume             Volume commands
 volume-group       Volume group commands

Global Options

--debug                             Print additional information [$DEBUG]
--output simple, -o simple          Output response in given format  (simple or `json`)
                                    (default: "simple | wide")
--server value, -s value            Ex: 67.238.64.123 (default: "127.0.0.1") [$VIRTUAL_IP]
--ca-cert value                     Path to PEM formatted Certificate Authority to use for
                                    validation of Server's identity [$CA_CERT]
--config value, -c value            json or yaml config file
--insecure, -i                      perform operations in insecure mode (ignore ca.crt)
--dctlconfig value                  dctl config path (default: "/home/rktripathi") [$DCTL_CONFIG]
--timeout value                     timeout for any dctl operation in seconds
                                    (default: 30) [$DCTL_TIMEOUT]
--help, -h                          show help
--version, -v                       print the version

dctl cluster

Manage clusters, including creating and destroying clusters. Use also to add and remove nodes in a cluster, as well as display the status of a cluster, among other operations.

Syntax

dctl [global options] cluster <command> [command options] [arguments...]

Commands

create          Create a cluster
destroy         Destroy the cluster
status          Status of the cluster
configure       Configure the cluster
license         License check operations
export          Export cluster configuration
                (Only JSON output format supported)
info            Report minimal information about the
                cluster for unauthenticated users
etcd-add        Add node to the etcd cluster
etcd-remove     Remove node from the etcd cluster
add             Add node(s) to the cluster
remove          Remove node(s) from the cluster
update          Update node(s) in the cluster

Options

--help, -h        Show help

dctl cluster create

Create a cluster.

Syntax

dctl cluster create [command options] [arguments...]

Options

--masters value, -m value                  Comma separated list of master/etcd
                                           nodes in the cluster
--virtual-ip value, --vip value            IP address for managing the cluster
--poddns-domain value, --poddns value      Domain name for the kubedns service
                                           for all containers deployed in the
                                           cluster (default: "cluster.local")
--storage-vlan value, --svlan value        VLAN for networked storage
                                           (0: Disable, default) (default: 0)
--admin-password value, -p value           Password for the 'admin' user
--ca-cert value                            Certificate Authority for the Cluster
--tls-cert value                           TLS Certificate for the Cluster
--tls-key value                            TLS Private Key for the Cluster
--multizone value                          Enable/Disable multizone support
--vip-mgmt value                           VIP Management (external/local)
                                           (default: "local")
--skip-min-node                            Skip minimum nodes and quorom size
                                           checks

Example

dctl -s node-01 cluster create mycluster node-01,node-02,node-03
--vip 192.168.30.10 --poddns mycluster.diamanti.com --storage-vlan 2

dctl cluster add

Add node(s) to the cluster.

Syntax

dctl [global options] cluster add [arguments...]

Example

dctl cluster add node-04

For more information, see Add and remove Node for AWS and Add and Remove node for GCP.

dctl cluster update certificate

Update user-supplied certificates in a cluster.

Syntax

dctl [global options] cluster update certificate [command options]
   [arguments...]

Options

--ca-cert value        Absolute path of ca certificate
--server-cert value    Absolute path of server certificate
--server-key value     Absolute path of server certificate key

Example

$ dctl cluster update certificate --ca-cert sample_certs1/ca.crt
   --server-key sample_certs1/server.key --server-cert sample_certs1/server.crt

dctl cluster update software

Update the Diamanti software in the cluster.

Syntax

dctl [global options] cluster update software [command options] [arguments...]

Options

 --image value, -i value               (Required) The absolute path of the
                                       RPM image file on the master node
--node-list value, -l value            List of nodes to update
--force, -f                            Force rpm update
--no-reboot, --nr                      Skip reboot after upgrade
--abort-on-failure, -t                 Abort on failure
--no-drain, --nd                       Skip draining pods during upgrade
--parallel-count value, -p value       Number of nodes to activate image
                                       in parallel (default: 1)

Example

dctl cluster update software --image
   "/home/diamanti/diamanti-cx-2.0.1-1.x86_64.rpm"

dctl cluster update status

Display the status of a Diamanti software update.

Syntax

dctl [global options] cluster update status [arguments...]

Example

dctl cluster update status

dctl cluster remove

Remove node(s) from the cluster.

Syntax

dctl [global options] cluster remove [command options] [arguments...]

Options

--no-reboot, --nr     Skip reboot after removal
--assume-yes, -y      Assume yes for prompt

Example

dctl cluster remove node-04

For more information, see Add and Remove node for GCP.

dctl cluster etcd-add

Add node to the etcd cluster.

Syntax

dctl [global options] cluster etcd-add [arguments...]

Example

dctl cluster etcd-add node-04

dctl cluster etcd-remove

Remove node from the etcd cluster.

Syntax

dctl [global options] cluster etcd-remove [command options] [arguments...]

Options

--no-reboot, --nr     Skip reboot after removal
--assume-yes, -y      Assume yes for prompt
--skip-min-node       Skip minimum nodes and quorom size checks

Examples

dctl cluster etcd-remove node-04

dctl cluster configure

Configure the cluster.

Syntax

dctl [global options] cluster configure [command options] [arguments...]

Options

--storage-vlan value,       (Required) VLAN for networked storage
 --svlan value              (0: Disable, default) (default: 0)
--master value              Master for the cluster
--assume-yes, -y            Assume yes for prompt

Examples

dctl cluster configure --svlan 22 --master <new-master>

dctl cluster export

Export cluster configuration (Only JSON output format supported)

Syntax

dctl [global options] cluster export [arguments...]

Example

dctl -o json cluster export

dctl cluster destroy

Destroy the cluster. The command prompts for confirmation. Use with care; this action cannot be undone.

Syntax

dctl [global options] cluster destroy [command options] [arguments...]

Options

--delete-volumes, -d  Delete volumes in the cluster
--no-reboot, --nr     Skip reboot nodes in the cluster
--assume-yes, -y      Assume yes for prompt

Example

dctl cluster destroy 0b58792c-cb99-11e5-814f-080027767789

For more information, see Cluster deletion for GCP and Cluster deletion for AWS.

dctl cluster status

Display the status of the cluster.

Syntax

dctl [global options] cluster status [arguments...]

Example

dctl cluster status

Output

Cluster status
Name                  The name of the cluster.
UUID                  The universally unique identifier of the cluster.
State                 The state of the cluster.
Version               The Diamanti software version.
Etcd State            The state of the quorum, from among the following:
                        - Healthy — The number of healthy quorum members is
                             greater than the quorum size and the number of
                             members in the etcd cluster is odd.
                        - Degraded — The number of healthy quorum members is
                             greater than the quorum size and the number of
                             members in the etcd cluster is even.
                        - NoFaultTolerance — The number of healthy quorum
                             members is equal to the quorum size.
Virtual IP            The cluster virtual IP address.
Pod DNS Domain        The DNS server for the pod.

Nodes status
Name                  The DNS (short) name of the node.
Node-Status           The status of the node.
K8S-Status            The Kubernetes status of the node.
Role                  The Kubernetes role of the node.
Millicores            The used and available physical CPU cores (times 1000).
Memory                The used and available memory.
Storage               The used and available storage.
SCTRLS                The number of used and available storage controllers.
(Total, Remote)

dctl cluster info

Report minimal information about the cluster for unauthenticated users.

Syntax

dctl [global options] cluster info [command options] [arguments...]

Options

--quiet, -q                                 Quiet mode
--save, -s                                  Store cluster configuration
--insecure, --insecure-skip-tls-verify, -i  Skip server certificate verification
                                            when running dctl commands
--insecure-k8s                              Skip server certificate verification
                                            when running kubectl commands
--proxy, -p                                 Configure Proxy mode for K8S
--assume-yes, -y                            Assume yes for prompt
--ca-cert                                   Display CA Certificate used by dctl
--k8s-ca-cert                               Display CA Certificate used by kubectl
--all-servers                               Display List of All Cluster Endpoints

Note: The command only works using the VIP or FQDN. When specifying the FQDN, DNS needs to be enabled in your environment. Note also that users can save the cluster and certification information for a single Diamanti cluster, only at any given time.

dctl config

Generate cluster configuration files.

Syntax

dctl [global options] config <command> [command options] [arguments...]

Commands

get-cluster     Display cluster configuration
set-cluster     Set cluster configuration

Options

--help, -h    Show help

dctl config set-cluster

Manually generate a configuration file to access the Diamanti cluster. This command is equivalent to the dctl -s [node ip] cluster info --save command.

Syntax

dctl [global options] config set-cluster [command options] [arguments...]

Options

--api-version <version>                           (Required) The API version
                                                  for dctl cluster
                                                  configuration entry. The
                                                  default is v1.
--virtual-ip <cluster-virtual-ip>,                (Required) The IP address
   --vip <cluster-virtual-ip>                     for managing the cluster.
--certificate-authority <certificate-file>,       (Required) The path to the
   --ca <certificate-file>                        certificate authority file
                                                  whose contents are to be
                                                  embedded in the
                                                  configuration file.
--k8s-certificate-authority <certificate-file>,   The path to certificate
   --k8s-ca <certificate-file>                    authority file whose
                                                  contents are to be
                                                  embedded in the
                                                  .kube/config file.
--proxy-k8s, --proxy                              The proxy mode for the
                                                  Kubernetes API server.

--insecure-k8s                                    Enable Insecure mode for
                                                  K8S APIServer Operations
                                                  (ignore ca.crt if set)
--insecure                                        Enable Insecure Mode for
                                                  DCTL Operations (ignore
                                                  ca.crt if set)
--secure                                          Enable Secure Mode for
                                                  DCTL Operations
--quiet, -q                                       Quiet mode
--dns-name value, -d value                        Fully Qualified Domain
                                                  Name for the Cluster
                                                  APIServer
--server value, -s value                          Server Endpoint to use
                                                  for dctl operations

Example

dctl config set-cluster mycluster --api-version v1 --virtual-ip 192.168.30.10
   --ca /etc/diamanti/certs/ca.crt

dctl drive

Manage drives, including listing and formatting drives.

Syntax

dctl [global options] drive <command> [command options] [arguments...]

Commands

get                   Get drive information
list                  List drives on cluster-wide (default) or a
                      specific node
format                Format drives on a specific node
rotate-key            Rotate Cluster-Wide drive encryption master
                      key
set-transit-key       Set transit key against all Self-Encrypting
                      drives for a node
remove-transit-key    Remove transit key against all
                      Self-Encrypting drives for a node

Options

--help, -h    Show help

dctl drive get

Display information about a specific drive.

Syntax

dctl [global options] drive get [command options] [arguments...]

Options

--node <node-name>, -n <node-name>         (Required) The name of the node.
--slot <slot-number>, -s <slot-number>     The slot number for the drive.

Example

dctl drive get -n node-01 -s 0

dctl drive list

List drives on cluster-wide (default) or a specific node.

Syntax

dctl [global options] drive list [command options] [arguments...]

Options

--node <node-name>, -n <node-name>        The name of the node.

Example

dctl drive list -n node-01

Output

Node                The node associated with the drive.
Slot                The slot in which the drive resides.
S/N                 The serial number of the drive.
Driveset            The drive set with which the drive is associated.
Raw Capacity        The raw capacity of the drive.
Usable Capacity     The usable capacity of the drive.
Allocated           The current allocation of the drive.
Firmware            The firmware of the drive.
State               The state of the drive, from among the following:
                      - Up — The drive is up.
                      - Down — The drive is down because of some failure.
                      - Missing — The drive is missing from the node (the
                        drive was part of the node, but was removed).
                      - Uninitialized — The drive is uninitialized. This
                        can happen when a new drive is inserted in the
                        server but has not been added to Diamanti storage.
                      - Foreign — A drive from another node is discovered
                        in the node.
                      - Formatting — The drive is being formatted.
Self-Encrypted     If the drive is self encrypted or not.

dctl endpoint

Manage endpoints, including listing and deleting endpoints, as well as displaying information about specific endpoints.

Syntax

dctl [global options] endpoint <command> [command options] [arguments...]

Commands

create            Create a persistent endpoint.
list              Display a summary of all endpoints.
get               Display information about a specific endpoint.
delete            Delete an endpoint

Options

--help, -h        Show help.

dctl endpoint create

Create a persistent endpoint.

Syntax

dctl [global options] endpoint create <endpoint-name> [command options]
   [arguments...]

Options

--ip <ip-address>, -i <ip-address>            The IP address.
--network <network-name>, -n <network-name>   The name of the network
                                              associated with the endpoint.
--labels <label>, -l <label>                  The labels associated with
                                              the node.
--namespace <namespace>, --ns <namespace>     The namespace for the
                                              endpoint. The default value
                                              is “default”.

Example

dctl endpoint create ep1 -n blue -ns default

dctl endpoint list

Display a summary of all endpoints.

Syntax

dctl [global options] endpoint list [arguments...]

Example

dctl endpoint list

Output

Name                  The name of the endpoint.
Namespace             The namespace associated with the endpoint.
Container             The container associated with the endpoint.
Network               The network associated with the endpoint.
IP                    The IP address of the endpoint.
MAC                   The MAC address of the endpoint.
Gateway               The gateway associated with the endpoint.
VLAN                  The VLAN associated with the endpoint.
VF                    The virtual function associate with the endpoint.
PORT                  The port number.
Node                  The node associated with the endpoint.
Labels                The labels associated with the endpoint.

dctl endpoint delete

Delete an endpoint.

Syntax

dctl [global options] endpoint delete <endpoint-name> [command options]
   [arguments...]

Options

--assume-yes, -y            Assume yes for the confirmation prompt.
--force, -f                 Force delete the endpoint.
--namespace <name>,         The namespace for the endpoint. The default
   --ns <name>              value is “default”.

Example

dctl endpoint delete endpoint-01

dctl event

Display events, and configure and show event policies.

Syntax

dctl [global options] event <command> [command options] [arguments...]

Commands

list              Display events. By default, the 50 most recent events
                  are displayed.
status            Display event policies.
configure         Configure policies for events, such as the event retention
                  period (in days).

Options

--help, -h        Show help

dctl event list

Display events, and configure and show event policies.

Syntax

dctl [global options] event list [command options] [arguments...]

Options

--namespace <namespace>,             Display events related to the specified
   --ns <namespace>                  namespace.
--node <node-name>, -n <node-name>   Display events related to the specified
                                     node (or "all" nodes).
--pod <pod-name>, -p <pod-name>      Display events related to the specified
                                     pod (or "all" pods).
--volume <volume-name>,              Display events related to the specified
   -v <volume-name>                  volume (or "all" volumes).
--source <source-name>,              Display events related to the specified
   -s <source-name>                  source, for example "scheduler".
--severity <value>, --sev <value>    Filter by severity, for example "ERROR".
--limit <number-of-events>,          Limit the number of events displayed,
   -l <number-of-events>             up to 1000. The default value is 50.
--offset <offset-value>,             Set the offset to start displaying
   -o <offset-value>                 events from the number specified by
                                     offset-value. For example, an
                                     offset-value of 500 starts displaying
                                     the 500th most recent event. The
                                     default value is 0.

Example

dctl event list

Output

First-seen                When the event was first seen.
Last-seen                 When the event was last seen.
Count                     The number of times the event was seen.
Severity                  The severity of the event.
Namespace                 The namespace of the event.
Name                      The name of entity responsible for the event.
UUID                      The universally unique identifier of the entity.
Kind                      The kind of event.
Host                      The host on which the event occurred.
Component                 The component related to the event.
Reason                    The reason for the event.
Message                   The event message.

dctl event status

Display event policies.

Syntax

dctl [global options] event status [arguments...]

Example

dctl event status

Output

Retention Days            The number of days that events are retained.
SNMP Enabled              Indicates whether SNMP is enabled.

dctl event configure

Configure policies for events, such as the event retention period (in days).

Syntax

dctl [global options] event configure [command options] [arguments...]

Options

--retention-days <n>              The number of days to retain events. By
                                  default, events are retained for 30 days.
--snmp-enable=<true|false>        Enable SNMP traps (true or false). When
                                  enabled, the Diamanti appliance
                                  generates SNMPv2 traps containing all
                                  information from event records. In
                                  addition, the appliance supplies a
                                  MIB file to install on the receiver to
                                  interpret the traps (available at /usr/
                                  share/diamanti/mibs/DW-EVENT-MIB.txt).
--snmp-community “<string>”       The SNMP community string (in double
                                  quotes). The default is "public".
--snmp-receiver=<ip-address-1     The IP addresses of the SNMP receivers
   [,ip-address-2,ip-address-3]>  (up to three, separated by commas). This
                                  is required when SNMP traps are enabled.

Example

dctl event configure --retention-days 60 --snmp-enable=true
   --snmp-receiver=172.16.6.105

dctl event configure --retention-days 30 --snmp-enable=true
   --snmp-receiver=172.16.6.105,172.16.6.106,172.16.6.107

dctl login

Log in to a cluster (from any node in the cluster) to perform authenticated operations.

There are two ways to log in to a cluster:

  • Insecure mode — Use when user-supplied certificates were used to create the cluster and the certificate authority (ca.crt) is not available for the user. This allows the user to configure dctl to ignore server certificate validation. This is the default login mode.

  • Kubernetes proxy mode — In certain environments (such as with an SSL passthrough load-balancer), kubectl commands are not properly relayed to the API server causing kubectl commands to fail with an error message. In these cases, use the proxy option, which relays kubectl commands through the Diamanti server.

Note: Before logging in to the cluster for the first time, users need to save the cluster configuration using the dctl cluster info --save command. The command only works using the VIP or FQDN. When specifying the FQDN, DNS needs to be enabled in your environment. (See the Examples section.)

Syntax

dctl login [command options] [arguments...]

Options

--username <username>, -u <username>        The user name. The default
                                            is "admin".
--password <password>, -p password>         The password associated with
                                            the user name.
--namespace <namespace>, -n <namespace>     The namespace for the kubectl
                                            context.
--bc, -b                                    Login backward compatibility
--quiet, -q                                 Run the command in quiet mode.
--proxy, --proxy-k8s                        Log in to the cluster using
                                            Kubernetes proxy mode. The
                                            default is false.
--insecure                                  Enable insecure mode for
                                            appliance API server requests.
                                            The default is false.
--insecure-k8s                              Enable insecure mode for
                                            Kubernetes API server requests.
                                            The default is false.
--expiry-time value                         Authentication token max expiry
                                            time, sec (default: 900)

Example

dctl login --user myuser --password myPassw0rd!

dctl logout

Log out from the current user session.

Syntax

dctl logout [arguments...]

Example

dctl logout

dctl namespace

Manage the namespace for the current user context.

Note: See also kubectl config current-context.

Syntax

dctl [global options] namespace <command> [command options] [arguments...]

Commands

list          List the namespaces for the current user context.
set           Set the namespace when a user has access to multiple
              namespaces on the Kubernetes cluster.
get           Get the namespace for the current user context.

Options

--help, -h    Show help

dctl namespace list

List the namespaces for the current user context.

Syntax

dctl [global options] namespace list [arguments...]

Example

dctl namespace list

Output

Name            The name of the namespace available to the current user.

dctl namespace set

Set the namespace when a user has access to multiple namespaces on the Kubernetes cluster.

Syntax

dctl [global options] namespace set <namespace>

Example

dctl namespace set mynamespace

dctl namespace get

Get the namespace for the current user context.

Syntax

dctl [global options] namespace get [arguments...]

Example

dctl namespace get

dctl network

It is used as a clusterwide private network used for pod to pod communication..

Syntax

dctl [global options] network <command> [command options] [arguments...]

Commands

overlay       Overlay Network commands

Options

--help, -h    Show help

dctl network get

Display information about a specific network.

Syntax

dctl [global options] network get <network-name> [arguments...]

Example

dctl network get blue

Output

Name                      The name of the network.
Type                      The type of network.
Start Address             The starting network IP address on the pool.
Total                     The total number of IP addresses in the network.
Used                      The number of IP addresses used in the network.
Gateway                   The IP address of the network gateway.
VLAN                      The VLAN identifier for the network.

dctl network list

Display a summary of all networks.

Syntax

dctl [global options] network list [command options] [arguments...]

Options

--type value, -t value      Type of network: storage, host, container,
                            ipvlan, macvlan. Type is optional:
                            Default is container

Example

dctl network list

Output

Name                      The name of the network.
Type                      The type of network.
Start Address             The starting network IP address on the pool.
Total                     The total number of IP addresses in the network.
Used                      The number of IP addresses used in the network.
Gateway                   The IP address of the network gateway.
VLAN                      The VLAN identifier for the network.

dctl network update

Update a network.

Syntax

dctl [global options] network update <network-name> [command options]
   [arguments...]

Options

--set-default                                     Set the default network.
--clear-default                                   Clear the default network.
--host-network                                    Set as host network
--network-group <group-name>, -n <group-name>     The network group name.
--selectors <selectors>,                          The node selector for
   --sel <selectors>                              host endpoints.
--perf-tier <perf-tier>,                          The performance tier for
   -p <perf-tier>                                 host endpoints.
--end <end-address>                               Update the end address to
                                                  extend the range.

Example

dctl network update blue --set-default

dctl network delete

Delete a network.

Syntax

dctl [global options] network delete <network-name> [command options]
   [arguments...]

Options

--assume-yes, -y     Assume yes for the confirmation prompt.

Example

dctl network delete blue

dctl network overlay

Manage private networks, including creating, listing, and deleting networks, as well as displaying information about specific private networks.

Syntax

dctl [global options] network overlay <command> [command options] [arguments...]

Commands

create                Create a private network.
get                   Display information about a specific private network.
list                  Display a summary of all private networks.
list-namespaces       Display a summary of the namespaces.
update                Update a private network.
delete                Delete a private network.

Options

--help, -h    Show help

dctl network overlay create

Create the overlay network.

Syntax

dctl [global options] network overlay create <overlay-network-name>
   [command options] [arguments...]

Options

--subnet <subnet/class>, -s <subnet/class>   (Required) The subnet for
                                             the network (in CIDR format).
--overlay-nw=<network-name>                  The network on which to overlay
                                             the private network.
--overlay-nw-group=<group-name>,             The network group name.
   -n=<group-name>
--isolate-ns=<true|false>                    (Optional) Specifies whether to
                                             isolate the private network.
                                             The default is true.
--set-default                                Set as default network

Example

dctl network overlay create red -s 172.30.0.0/16 <--overlay-nw=blue
   | --overlay-nw-group=blueGP>  [--isolate-ns=true] [--set-default]

Note: The network specified for the overlay-nw parameter should already be created and have host-network enabled for it.

dctl network overlay get

Display information about a specific overlay network.

Syntax

dctl [global options] network overlay get <network-name> [arguments...]

Example

dctl network overlay get pvt-network-1

Output

Name               The name of the network.
Type               The type of network, either public or private.
Subnet             The network subnet.
Overlay-NW         The name of the overlay network.
Isolate-NS         Indicates whether the namespace is isolated.
Network-Group      The group associated with the network.

dctl network overlay list

Display a summary of all overlay networks.

Syntax

dctl [global options] network overlay list [arguments...]

Example

dctl network overlay list

Output

Name               The name of the network.
Type               The type of network, either public or private.
Subnet             The network subnet.
Overlay-NW         The name of the overlay network.
Isolate-NS         Indicates whether the namespace is isolated.
Network-Group      The group associated with the network.

dctl network overlay list-namespaces

List network namespaces for an overlay network.

Syntax

dctl [global options] network overlay list-namespaces <network-name>
   [arguments...]

Example

dctl network list-namespaces pvt-network-1

Output

Name          The name of the namespace.

dctl network overlay update

Update a private network.

Syntax

dctl [global options] network overlay update <overlay-network-name>
   [command options] [arguments...]

Options

  --set-default               Set the default private network.
  --clear-default             Clear the default private network.
  --join-namespaces value     Join namespaces for an overlay
                              network. [dctl network overlay
                              update red --join-namespaces
                              ns1,ns2,ns3]
--isolate-namespaces value    Isolate namespaces for an overlay
                              network. [dctl network overlay
                              update red --isolate-namespaces
                              ns1]

Example

dctl network overlay update red --set-default

dctl network overlay delete

Delete a overlay network.

Syntax

dctl [global options] network overlay delete <network-name> [command options]
   [arguments...]

Options

--assume-yes, -y     Assume yes for the confirmation prompt.

Example

dctl network overlay delete red

dctl node

Manage nodes, including discovering and listing nodes.

Syntax

dctl [global options] node <command> [command options] [arguments...]

Commands

license               Node license commands
inventory             Display an inventory of discovered Diamanti nodes.
list                  Display a summary of all nodes.
get                   Display information about a specific node.
health                Display the health status of the node.
network               Display the status of the management network and the
                      network ports.
label                 Manage labels associated with a node.
rediscover            Rediscover a node to update the drive inventory.

Options

--help, -h            Show help

dctl node license

Node license commands.

Syntax

dctl [global options] node license [command options] [arguments...]

Commands

status    Get licensing status of a node/nodes in the cluster
list      Get license list of a node/nodes in the cluster
add       Add license to the node in the cluster
activate  Activate the provisioned licenses of the node
clean     Clean expired/inactive licenses

Options

--help, -h            Show help

dctl node license status

Get licensing status of a node/nodes in the cluster.

Syntax

dctl [global options] node license status [arguments...]

Example

dctl node license status [[<node-name>][,<node-name>]...]

dctl node license list

Get license list of a node/nodes in the cluster.

Syntax

dctl [global options] node license list [arguments...]

Example

dctl node license list [[<node-name>][,<node-name>]...]

dctl node license add

Add license to the node in the cluster.

Syntax

dctl [global options] node license add [arguments...]

Example

dctl node license add <node-name> <full-path-to-license-file>

dctl node license activate

Activate the provisioned licenses of the node.

Syntax

dctl [global options] node license activate [arguments...]

Example

dctl node license activate [[<node-name>][,<node-name>]...]

dctl node license clean

Clean expired/inactive licenses.

Syntax

dctl [global options] node license clean [command options] [arguments...]

Options

--expired   Expired license flag
--inactive  Inactive license flag

Example

dctl node license clean [[<node-name>][,<node-name>]...] [ [--inactive] | [--expired] ]

dctl node inventory

Display an inventory of discovered Diamanti nodes.

Syntax

dctl [global options] node inventory [arguments...]

Example

dctl node inventory

dctl node list

Display a summary of all nodes.

Syntax

dctl [global options] node list [arguments...]

Example

dctl node list

Output

Name                   The DNS (short) name of the node.
Node-Status            The status of the node.
K8S-Status             The Kubernetes status of the node.
Role                   The Kubernetes role of the node.
Millicores             The used and available physical CPU cores
                       (times 1000).
Memory                 The used and available memory.
Storage                The used and available storage.
SCTRLS                 The number of used and available storage controllers.
(Total, Remote)

dctl node get

Display information about a specific node.

Syntax

dctl [global options] node get <node-name> [arguments...]

Example

dctl node get node-01

dctl node health

Display the health status of the node.

Syntax

dctl [global options] node health <command> <node-name> [command options]
   [arguments...]

Commands

status                Get health of a node in the cluster.

Options

--help, -h    Show help

Example

dctl node health status node-01

Ouput

General
Hostname                  The name of the node.
UUID                      The universally unique identifier of the node.
Node Health               The health of the node.
K8s Health                The Kubernetes health of the node.
Schedulable               Whether the node is schedulable or not.
Node State                The state of the node.

Kubernetes Conditions
MemoryPressure            True if pressure exists on the node memory, that
                          is if the node memory is low; otherwise false.
DiskPressure              True if pressure exists on the disk size, that is
                          if the disk capacity is low; otherwise false.
PIDPressure               Default False.
Ready                     Whether the node is ready, from among the
                          following:
                            - true if the node is healthy and ready to
                              accept pods
                            - false if the node is not healthy and is not
                              accepting pods
                            - unknown if the node controller has not heard
                              from the node in the last 40 seconds

Power Supplies
PS                        The power supply.
Status                    The status of the power supply.
Fan                       The status of the power supply fan.

System Fans
Fan                       The system fan.
Status                    The status of the system fan.

dctl node network

Display the status of the management network and the network ports.

Syntax

dctl [global options] node network <command> <node-name> [command options]
   [arguments...]

Options

--help, -h    Show help

Example

dctl node network status node-01

Ouput

General
Hostname                  The name of the node.
UUID                      The universally unique identifier of the node.

Management Network
Name                      The name of the host or interface.
IP Address                The IP address of the host or interface.
MAC Address               The MAC address of the host or interface.
Gateway                   The gateway of the host or interface.
Status                    The status of the host or interface.
DNS                       The domain name servers associated with the host
                          or interface.

Network Ports
Port                      The network port.
Status                    The status of the network port.

dctl node label

Manage labels associated with a node.

Syntax

dctl [global options] node label <node-name> <label=value> [command options]
   [arguments...]

Options

--overwrite, -o       Overwrite a label.

Examples

// Add a label to a node
dctl node label node-01 node=web-tier

// Overwrite a label
dctl node label node-01 node=db-tier -o

// Remove a label from a node
$ dctl node label node-01 node-

dctl node rediscover

Rediscover a node to update the drive inventory.

Syntax

dctl [global options] node rediscover <node-name> [arguments...]

Example

dctl node rediscover node-01

dctl passwd

Change the password of the logged in user.

Syntax

dctl [global options] passwd [command options] [arguments...]

Options

--current-password <password>             The current password.
--password <password>, -p <password>      The new password.

Example

dctl passwd --current-password myPassw0rd! --password newPassw0rd!

dctl perf-tier

Manage performance tiers, including creating, listing, and deleting templates, as well as dis- playing information about specific performance tiers.

Syntax

dctl [global options] perf-tier <command> [command options] [arguments...]

Commands

create        Create a performance tier.
delete        Stop and delete the specified performance tier.
get           Display information about a specific performance tier.
list          Display a summary of all performance tiers.

Options

--help, -h    Show help.

dctl perf-tier create

Create a performance tier.

Syntax

dctl [global options] perf-tier create <perf-tier> [command options]
   [arguments...]

OPTIONS:

--storage-iops <storage-iops>,        The input/output operations per second
   -i <storage-iops>                  associated with the performance tier.
--max-storage-iops <storage-iops>,    The maximum storage IOPS
   -I <storage-iops>                  (in kilobytes).
--network-bw <network-bandwidth>,     The network bandwidth associated with
   -b <network-bandwidth>             the performance tier.
--max-network-bw value,               The maximum network bandwidth
   -B <network-bandwidth>             (in gigabytes).
--labels <labels>, -l <labels>        The labels associated with the
                                      performance tier, using the following
                                      format: key=value.

Example

dctl perf-tier create perf-tier1 -i 1k -b 1G -l type=backend

dctl perf-tier delete

Stop and delete the specified performance tier.

Syntax

dctl [global options] perf-tier delete <perf-tier> [command options]
   [arguments...]

Options

--assume-yes, -y     Assume yes for the confirmation prompt.

Example

dctl perf-tier delete perf-tier1

dctl perf-tier get

Display information about a specific performance tier.

Syntax

dctl [global options] perf-tier get <perf-tier> [arguments...]

Example

dctl perf-tier get perf-tier1

Output

Name                      The name of the performance tier.
Storage IOPS              The input/output operations per second associated
                          with the performance tier.
Network Bandwidth         The network bandwidth associated with the
                          performance tier.
Max Storage IOPS          The maximum storage IOPS.
Max Network Bandwidth     The maximum network bandwidth.
Labels                    The labels associated with the performance tier.

dctl perf-tier list

Display a summary of all performance tiers.

Syntax

dctl [global options] perf-tier list [command options] [arguments...]

Options

--labels <labels>, -l <labels>     The labels associated with the
                                   performance tier, using the following
                                   format: key=value.

Example

dctl perf-tier list

Output

Name                      The name of the performance tier.
Storage IOPS              The input/output operations per second associated
                          with the performance tier.
Network Bandwidth         The network bandwidth associated with the
                          performance tier.
Max Storage IOPS          The maximum storage IOPS.
Max Network Bandwidth     The maximum network bandwidth.
Labels                    The labels associated with the performance tier.

dctl snapshot

Manage snapshots, including listing and deleting snapshots, as well as displaying information about specific snapshots.

Syntax

dctl [global options] snapshot <command> [command options] [arguments...]

Commands

create            Create a snapshot.
delete            Delete a snapshot
get               Display information about a specific snapshot.
list              Display a summary of all snapshots.
describe          Describe a snapshot

Options

--help, -h        Show help.

dctl snapshot create

Create a snapshot.

Syntax

dctl [global options] snapshot create <snapshot-name> [command options]
   [arguments...]

Options

--source <volume>, --src <volume>     The source volume for the snapshot.
--mirror-count <value>, -m <value>    The mirror count. The default is 1.
--prefix <prefix>, -p <prefix>        The prefix to add to the snapshot name.
--selectors <value>, --sel <value>    The selectors to constrain the node
                                      selection, using the following format:
                                      [key|key=val][,key|key=val]*

Example

dctl snapshot create [snap1 | --prefix snap1] --src vol-01

dctl snapshot delete

Delete a snapshot.

Syntax

dctl [global options] snapshot delete <snapshot-name> [command options]
   [arguments...]

Options

--assume-yes, -y     Assume yes for the confirmation prompt.

Example

dctl snapshot delete snap1

dctl snapshot get

Display information about a specific snapshot.

Syntax

dctl [global options] snapshot get <snapshot-name>

Example

dctl snapshot get snap1

Output

Name        The name of the snapshot.
Size        The size of the snapshot.
Node        The node associated with the snapshot.
Labels      The labels associated with the snapshot.
Parent      The parent of the snapshot.
Phase       The phase of the snapshot.
Status      The status of the snapshot.
Age         The age of the snapshot.

dctl snapshot list

Display a summary of all snapshots of a volume.

Syntax

dctl [global options] snapshot list [command options] [arguments...]

Options

--source value, -s value  List all snapshots of a volume.

Example

dctl snapshot list -s vol1

Output

Name        The name of the snapshot.
Size        The size of the snapshot.
Node        The node associated with the snapshot.
Labels      The labels associated with the snapshot.
Parent      The parent of the snapshot.
Phase       The phase of the snapshot.
Status      The status of the snapshot.
Age         The age of the snapshot.

dctl user

Manage users, including creating, editing, listing, and deleting users.

Syntax

dctl [global options] user <command> [command options] [arguments...]

Commands

create            Create a user.
edit              Edit a user.
delete            Delete a user.
get               Display information about a specific user.
list              Display a summary of all users.
role              Role commands.
group             Group commands.
auth-server       Authentication server commands.

Options

--help, -h        Show help.

dctl user create

Create a user.

Syntax

dctl [global options] user create <user-name> [command options] [arguments...]

Options

--local-auth                           Specifies that the user is to be
                                       authenticated locally by validating
                                       a supplied password against
                                       credentials stored in the local
                                       configuration. The default is false.
--password <password>, -p <password>   The password associated with the user.
--group-list <group-list>,             The list of groups to which the
   -g <group-list>                     user belongs.

Note: Local groups defined in the Diamanti system are used to give users specific permissions. In contrast, remote groups are simply a collection of users and do not give users specific permissions.

Example

dctl user create user1 --local-auth --password myPassw0rd!
   --group-list group1,group2

dctl user edit

Edit the specified user.

Syntax

dctl [global options] user edit <user-name> [command options] [arguments...]

Options

--local-auth                           Specifies that the user is to be
                                       authenticated locally by  validating
                                       a supplied password against
                                       credentials stored in the local
                                       configuration. The default is false.
--reset-password, -r                   Reset password from input.
--group-list <group-list>,             The list of groups to which the
   -g <group-list>                     user belongs.

Note: Local groups defined in the Diamanti system are used to give users specific permissions. In contrast, remote groups are simply a collection of users and do not give users specific permissions.

Example

dctl user edit myuser [--local-auth] [--group-list mygroup1,mygroup2]
   [--reset-password]

dctl user delete

Delete the specified User.

Syntax

dctl [global options] user delete <user-name> [command options] [arguments...]

Options

--assume-yes, -y     Assume yes for the confirmation prompt.

Example

dctl user delete myuser

dctl user get

Display information about a specific user.

Syntax

dctl [global options] user get <user-name>

Example

dctl user get user1

Output

Name                  The name of the built-in or custom user.
Built-in              Specifies whether the user is built-in (true) or
                      custom (false).
Local Auth            Indicates whether the user is authenticated locally
                      by validating a supplied password against credentials
                      stored in the local configuration.
Group List            The list of groups associated with the user.

dctl user list

Display a summary of all users.

Syntax

dctl [global options] user list [arguments...]

Example

dctl user list

Output

Name                  The name of the built-in or custom user.
Built-in              Specifies whether the user is built-in (true) or
                      custom (false).
Local Auth            Indicates whether the user is authenticated locally
                      by validating a supplied password against credentials
                      stored in the local configuration.
Group List            The list of groups associated with the user.

dctl user auth-server

Manage authentication servers, including creating, listing, and deleting authentication servers, as well as displaying information about specific authentication servers.

Syntax

dctl [global options] user auth-server <command> [command options]
   [arguments...]

Commands

create            Create the specified authentication server.
edit              Edit the specified authentication server.
delete            Delete the specified authentication server.
get               Display information about a specific authentication server.
list              Display a summary of all authentication servers.

Options

--help, -h        Show help

dctl user auth-server create

Create the specified authentication server.

Syntax

dctl [global options] user auth-server create [command options]
   [arguments...]

Options

--server value, -S value    Server name or IP
--port value, -p value      Port for authentication server
                            (default: 389)
--enable                    Enable authentication;
                            default false
--base-dn value, -l value   Base string to use in LDAP
                            authentication request
--bind-dn value             Distinguished Name (DN) used
                            to bind to the LDAP server
--bind-password value       Password used to bind to the
                            LDAP server
--user-filter value         LDAP user name filter string,
                            e.g. '(sAMAccountName=%s)'
--group-name-attr value     LDAP group name attribute as
                            it is used in group object to
                            get name of a group.
--usessl                    Secure LDAP (LDAPS), default
                            is false for STARTTLS
--cacert value              Path to PEM format file for
                            LDAP server certificate
                            authority

Example

dctl user auth-server create myauth --server ldap1.example.com --port
   389 --base-dn 'dc=example,dc=com' --bind-dn 'cn=mybinddn'
   --bind-password 'mybindpassword' --user-filter '(sAMAccountName=%s)'
   [--group-name-attr 'name'] [--enable] [--usessl] [--cacert ca.pem]

dctl user auth-server create ldap-auth -S ds1.example.com --port 636
   --base-dn 'CN=Users,DC=example,DC=com'
   --bind-dn 'CN=Administrator,CN=Users,DC=example,DC=com'
   --bind-password '111Password' --user-filter '(sAMAccountName=%s)'
   --usessl --cacert windows-ca.crt

// Non-secured example
dctl user auth-server create ldap-auth -S ds1.example.com --port 389
   --base-dn 'CN=Users,DC=example,DC=com'
   --bind-dn 'CN=Administrator,CN=Users,DC=example,DC=com'
   --bind-password '111Password' --user-filter '(sAMAccountName=%s)'

dctl user auth-server edit

Edit the specified authentication server.

Syntax

dctl [global options] user auth-server edit [command options]
   [arguments...]

Options

--server value, -S value       Server name or IP
--port value, -p value         Port for authentication server
                               (default: 0)
--enable                       Enable for user authentication
--base-dn value, -l value      Base string to use in LDAP
                               authentication request
--bind-dn value                Distinguished Name (DN) used
                               to bind to the LDAP server
--bind-password value          Password used to bind to the
                               LDAP server
--reset-bind-password          Reset password used to bind to
                               the LDAP server from input
--user-filter value            LDAP user name filter string,
                               e.g. '(sAMAccountName=%s)'
--group-name-attr value        LDAP group name attribute as
                               it is used in group object to
                               get name of a group
--usessl                       Secure LDAP (LDAPS), default
                               to false for STARTTLS
--cacert value                 Path to PEM format file for
                               LDAP server certificate
                               authority; empty file to
                               remove

Example

dctl user auth-server edit myauth [--server ldap.example.com]
   [--port 389] [--base-dn 'dc=example,dc=com'] [--bind-dn 'cn=mybinddn']
   --bind-password 'mybindpassword' [--reset-bind-password]
   [--user-filter '(sAMAccountName=%s)'] [--group-name-attr 'name']
   [--enable] [--usessl] [--cacert ca.pem]

dctl user auth-server delete

Delete the specified authentication server.

Syntax

dctl [global options] user auth-server delete <auth-server-name>
   [command options] [arguments...]

Options

--assume-yes, -y     Assume yes for the confirmation prompt.

Example

dctl user auth-server delete myauth

dctl user auth-server get

Display information about a specific authentication server.

Syntax

dctl [global options] user auth-server get <auth-server-name>

Example

dctl user auth-server get ldap-auth

Output

Name                  The name of the authentication server.
Server                The DNS name of the authentication server.
Port                  The port number of the authentication server.
Enable                If the authentication server is enable.
Domain                The domain name for the authentication server.

dctl user auth-server list

Display a summary of all authentication servers.

Syntax

dctl [global options] user auth-server list [arguments...]

Example

dctl user auth-server list

Output

Name                  The name of the authentication server.
Server                The DNS name of the authentication server.
Port                  The port number of the authentication server.
Enable                The current state of every authentication server.
Domain                The domain for which the authentication server will
                      authenticate users.

dctl user group

Manage groups, including creating, editing, listing, and deleting groups, as well as displaying information about specific groups.

Syntax

dctl [global options] user group <command> [command options] [arguments...]

Commands

create            Create a group.
edit              Edit a group.
delete            Delete a group.
get               Display information about a specific group.
list              Display a summary of all groups.

Options

--help, -h        Show help.

dctl user group create

Create the specified group.

Syntax

dctl [global options] user group create [command options] [arguments...]

Options

--role-list <role-list>,            (Optional) The list of roles associated
   -r <role-list>                   with the group, separated by commas.
--external-group <external-group>   (Optional) The principal group name
                                    of the externally authenticated and
                                    managed group whose users, when
                                    authenticated, are associated with
                                    the user group.

Example

dctl user group create mygroup --role-list network-view,container-edit/mynamespace
   --external-group group@domain

dctl user group edit

Edit the specified group.

Syntax

dctl [global options] user group edit <group-name> [command options]
   [arguments...]

Options

--role-list <role-list>,            (Optional) The list of roles associated
   -r <role-list>                   with the group, separated by commas.
--external-group <external-group>   (Optional) The principal group name
                                    of the externally authenticated and
                                    managed group whose users, when
                                    authenticated, are associated with
                                    the user group.

Example

dctl user group edit mygroup --role-list network-view,container-edit/mynamespace
   --external-group group@domain

dctl user group delete

Delete the specified group.

Syntax

dctl [global options] user group delete <group-name> [command options]
   [arguments...]

Options

--assume-yes, -y     Assume yes for the confirmation prompt.

Example

dctl user group delete group1

dctl user group get

Display information about a specific group.

Syntax

dctl [global options] user group get <group-name>

Example

dctl user group get group1

Output

Name                  The name of the group.
Built-in              Specifies whether the group is built-in/local (true)
                      or custom (false).
Role List             The list of roles associated with the group.

dctl user group list

Display a summary of all groups.

Syntax

dctl [global options] user group list [arguments...]

Example

dctl user group list

Output

Name                  The name of the group.
Built-in              Specifies whether the group is built-in/local (true)
                      or custom (false).
Role List             The list of roles associated with the group.

dctl user role

Manage roles, including listing roles, as well as displaying information about specific roles.

Syntax

dctl [global options] user role <command> [command options] [arguments...]

Commands

get               Display information about a specific role.
list              Display a summary of all roles.

Options

--help, -h        Show help.

dctl user role get

Display information about a specific role.

Syntax

dctl [global options] user group role <role-name>

Example

dctl user role get container-edit

Output

Name                  The name of the built-in or custom role.
Built-in              Specifies whether the role is built-in (true)
                      or custom (false).
Scope                 The scope of the role, either Cluster or Resource.
API Permissions       The permissions of the role.

dctl user role list

Display a summary of all roles.

Syntax

dctl [global options] user role list [arguments...]

Example

dctl user role list

Output

Name                  The name of the built-in or custom role.
Built-in              Specifies whether the role is built-in (true)
                      or custom (false).
Scope                 The scope of the role, either Cluster or Resource.
API Permissions       The permissions of the role.

dctl volume

Manage volumes, including creating and deleting volumes, as well as listing volumes and showing information about specific volumes.

Syntax

dctl [global options] volume <command> [command options] [arguments...]

Commands

create                Create a volume.
delete                Delete a volume.
list                  Display a summary of all volumes.
get                   Display information about a specific volume.
describe              Describe a specific volume.
restore               Restore volume from snapshot.
update                Update a volume.
plex-delete           Delete a mirror (plex) associated with a volume.
rotate-key            Rotate Cluster-Wide secure volumes encryption master key
set-transit-key       Set transit or temporary encryption master key
remove-transit-key    Remove transit or temporary encryption master key

Options

--help, -h            Show help.

dctl volume create

Create a volume.

Syntax

dctl [global options] volume create <volume-name> [command options]
   [arguments...]

Options

--size <size>, -s <size>                  The size of the storage volume,
                                          notated as nnM or nnG. For
                                          example, 500M or 1G.
--labels <labels>, -l <labels>            The labels associated with the
                                          volume, using the following
                                          format: key=value.
--selectors <label>, --sel <label>        The node on which to create the
                                          volume, selected by label using
                                          the following format: key=value.
--mirror-count <new-mirror-count>,        The new mirror count when adding
   -m <new-mirror-count>                  a mirror to a volume (with one or
                                          two mirrors). This value must be
                                          one larger than the current mirror
                                          count.
--perf-tier <perf-tier>, -p <perf-tier>   The performance tier associated
                                          with the volume.
--fs-type <filesystem-type>,              The filesystem type for the volume.
   -f <filesystem-type>

--source <snapshot-name>,                 The snapshot name to use to create
   --src <snapshot-name>                  the volume. This option is only
                                          applicable when creating a volume
                                          from a snapshot.
--alloc-ratio value, -a value             The allocation ratio for the
                                          volume. This option is only
                                          applicable when creating a volume
--read-only, --ro                         Create read only volume
--driver <driver>, -d <driver>            The driver for volume life cycle
                                          management.
--block, -b                               Specifies the volume export mode is
                                          block.
--volumeuser <user>, -u <user>            The volume user, for example, 'kvm'.
--secure, --sec                           Securing volume data at rest using
                                          encryption method

Example

dctl volume create vol-01 -s 1Gi

dctl volume delete

Delete a volume.

Syntax

dctl [global options] volume delete [command options] [arguments...]

Options

--assume-yes, -y     Assume yes for the confirmation prompt.
--force, -f          Force delete the volume.

Example

dctl volume delete vol1

dctl volume list

Display a summary of all volumes.

Syntax

dctl [global options] volume list [command options] [arguments...]

Options

--labels <labels>, -l <labels>    The labels associated with the volume,
                                  using the following format: key=value.

Example

dctl volume list

Output

Name                  The name of the volume.
Size                  The size of the volume.
Node                  The node or nodes (in case of mirroring) on which the
                      volume resides.
Labels                The labels associated with the volume.
Phase                 The phase of the volume, either Pending or Available.
Status                The status of the volume, from among the following:
                        - Busy - attached to a container
                        - Available - for attachment
Attached-To           The container to which the volume is attached.
Device-Path           The device-path associated with the volume.
Parent                The parent of the volume.
Age                   The age of the volume.

dctl volume get

Display information about a specific volume.

Syntax

dctl [global options] volume get <volume-name>

Example

dctl volume get vol1

Output

Name                  The name of the volume.
Size                  The size of the volume.
Node                  The node or nodes (in case of mirroring) on which the
                      volume resides.
Labels                The labels associated with the volume.
Phase                 The phase of the volume, either Pending or Available.
Status                The status of the volume, from among the following:
                        - Busy - attached to a container
                        - Available - for attachment
Attached-To           The container to which the volume is attached.
Device-Path           The device-path associated with the volume.
Parent                The parent of the volume.
Age                   The age of the volume.

dctl volume describe

Describe a specific volume.

Syntax

dctl [global options] volume describe <volume-name>

Example

dctl volume describe vol1

Output

General
Name                  The name of the volume.
Size                  The size of the volume.
Encryption            Encryption status of the volume.
Node                  The node or nodes (in case of mirroring) on which the
                      volume resides.
Label                 The labels associated with the volume.
Node Selector         The node selector associated with the volume.
Phase                 The phase of the volume, either Pending or Available.
Status                The status of the volume.
Attached-To           The container to which the volume is attached.
Device-Path           The device-path associated with the volume.
Age                   The age of the volume.
Perf-Tier             The performance tier associated with the volume.
Mode                  The mode of the volume, E.g. Filesystem.
Fs-Type               The type of file system used with the volume.
Scheduled Plexes      Number of scheduled plexes vs actual.
/ Actual Plexes

Plexes
Name                  The name of the plex.
Nodes                 The nodes associated with the plex.
State                 The state of the plex.
Condition             The condition of the plex.
Out-of-sync-age       The out-of-sync age of the plex.
Resync-Progress       The resynchronization progress of the plex.
Delete-Progress       The delete progress of the plex.

dctl volume update

Update a volume.

Syntax

dctl [global options] volume update <volume-name> [command options]
   [arguments...]

Options

--size <size>, -s <size>                 The new size of the volume.
--mirror-count <new-mirror-count>,       The new mirror count when adding a
   -m <new-mirror-count>                 mirror to a volume (with one or two
                                         mirrors). This value must be one
                                         larger than the current mirror count.
--fs-type <type>, -f <type>              The filesystem type for the volume
                                         being exported in filesystem mode.
--overwrite, -o                          Overwrite labels.
--selectors <labels>, --sel <labels>     The labels associated with the
                                         volume, using the following
                                         format: key=value.
--volumeuser <user>, -u <user>           The volume user, for example, 'kvm'.
--cancel resize                          Cancel a resize operation.

Note: Diamanti volumes need to be offline (detached) before resizing a volume. The volume remains in Pending state if the Diamanti node does not have enough storage to complete the operation. In this case, issue another volume update command to cancel the resize operation.

Example

dctl volume update vol-01 -m 2 --sel label -s 2G

dctl volume plex-delete

Delete a mirror (plex) associated with a volume.

Syntax

dctl [global options] volume plex-delete <volume-name> p<plex-number>

Example

dctl volume plex-delete vol-01 p0

dctl volume restore

Restore a volume from a valid point-in-time snapshot.

Syntax

dctl [global options] volume restore [command options] [arguments...]

Options

--latest-snapshot, -l                 Restore a volume from the latest
                                      snapshot.
--source-snapshot <snapshot-name>,    The source snapshot for the volume
   -s <snapshot-name>                 restore.
--assume-yes, -y                      Assume yes for the confirmation prompt.

Example

dctl volume restore vol-1 --latest-snapshot
dctl volume restore vol-01 --source-snapshot snap-01

Note: Diamanti volumes need to be offline (detached) before restoring from any point-in-time snapshot. All snapshots created after the snapshot being used for the volume restore are deleted after the restore operation has successfully completed. Volumes retain their size, in case the volume size is different from the snapshot size due to a volume resize operation.

dctl whoami

Display the user for the current session.

Syntax

dctl [global options] whoami [arguments...]

Example

dctl whoami

# Examples

This section provides example configuration files that can be used with dctl commands.

Cluster Configuration File

This following is an example of a configuration file that can be used with the dctl cluster create command.

{
  "name": "cluster",
    "spec": {
        "config": {
            "adminUserPassword": "Fk#$yt+ew$KuHG*hvF",
            "certificateAuthority": "-----BEGIN CERTIFICATE-----
\nMIIFVTCCAz2gAwIBAgIJAP21KXcASURQMA0GCSqGSIb3DQEBCwUAMCUxIzAhBgNV\nBAMMGmRpYW1hbnRpLXNpZ25lckA
xNTI0NjQ1NzY5MB4XDTE4MDQyNTA4NDI0OVoX\nDTI4MDQyMjA4NDI0OVowJTEjMCEGA1UEAwwaZGlhbWFudGktc2lnbmVy
QDE1MjQ2\nNDU3NjkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDbyFuhuRCVbqmj\nEqdVdqo3fQ0MsCchmn6
.
.
.
ltNTlNhIfosw4LdIUBSsMwNkyRPr5+Joccz5jlSQ4h4h2o\nkXuLa07f7pPK7tQjhfki4aKwZJxSV9CeTbxKYRMvLICdkf3
hDYLDmEaSNiWy8FDG\n76VeG6ZBZhT/9CM77HaqqCbZ/+GZRn3Mzg==\n-----END CERTIFICATE-----",
"podDnsDomain": "cluster.local",
"serverCertificate": "-----BEGIN CERTIFICATE-----
\nMIIE3DCCAsSgAwIBAgIBATANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpkaWFt\nYW50aS1zaWduZXJAMTUyNDY0NTc
2OTAeFw0xODA0MjUwODQzMDBaFw0yODA0MjIw\nODQzMDBaMBIxEDAOBgNVBAMMB2NsdXN0ZXIwggEiMA0GCSqGSIb3DQEB
AQUAA4IB\nDwAwggEKAoIBAQC6s8gcGvwhzsr0giTQHs40NRgpt6CfPmZLYkHRVV5Byk/
.
.
.
Um4h6cHBX64LijqCgfFcb+sG7sp+8SWvMDILaPqhnxq+lkUDZRKwXNwWpH+\nVCxl51Wz3COHJEuMhoquht2CV451bXF6vD
Ph2tFsdfrt60OQbvXVZ94Dd6ZMH78F\nVEcTEFsxkT0jn1rslxgdYkST93CpqvNfzL+WP1uzB0ee0N/
uB1cFFxZYekmJJMMc\n-----END CERTIFICATE-----",
"serverPrivateKey": "-----BEGIN PRIVATE KEY-----
\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC6s8gcGvwhzsr0\ngiTQHs40NRgpt6CfPmZLYkHRVV5
Byk/4giqRV351HPiE8vgbEwnCQ+MFF6haF+0n\nRbtZKm0wE5uxy7nSwTCeOjNOXf82xZ9YZKSJrXosF+7mkk9/
u1hNVn423MVeNsMj\nREmUjnF+SCohbL4TgPDySWartQxfmcYZr3BEjK8Ahy3ox16hQeyh5+95PTO7tOxD\na+TfwTXnULm
AyN2YPy+PJYu6KmbO3H048AeKkjBdSS8IDIzwYXr5GXVQlGIIR9KL\nbxcjKBCd54VtAJiG5JlWByISVRvtqHpooBM8DE8J
.
.
.
DWDvA1bdYn0pwNxWwXhtYuYQYmST2lx8o5tcENAowVAZx1u+dyt4ijH5U\nJQPCBEYIaPSW1w6Vp1jRSiKeINN2OUFqdYXy
CqAaYDoIntT+uiaBisX6A1eoblTt\nX7dnJDxU49hPl0C5QhImlIUcYQ==\n-----END PRIVATE KEY-----",
            "storageVlan": 500,
            "virtualIP": "172.16.20.251"
        },
        "nodes": [
            "appserv76",
            "appserv77",
            "appserv78"
        ]
      }
}

Trademarks

Diamanti and the Diamanti UI are trademarks or service marks of Diamanti, in the U.S. and other countries, and may not be used without Diamanti’s express written consent. All other product and company names herein may be trademarks of their respective owners.