Fuzzball Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Storage Driver Management

An administrator may either manage storage drivers from CLI or web UI. This document will cover CLI usage. You can manage storage drivers with the fuzzball CLI binary. The root command is fuzzball admin storage driver with the following sub commands:

Usage:
  fuzzball admin storage driver [command]

Aliases:
  driver, dr

Available Commands:
  export      Export driver definition as YAML
  info        Get information about a storage driver
  install     Install a storage driver
  list        List storage drivers
  uninstall   Uninstall a storage driver
  update      Update a storage driver definition

Flags:
  -h, --help   help for driver

Global Flags:
  -c, --color string   Set the color output for fuzzball ($FUZZBALL_COLOR) (default "auto")
      --disable-auth   Disables auth ($FUZZBALL_DISABLE_AUTH)
      --disable-tls    Disables tls ($FUZZBALL_DISABLE_TLS)
      --insecure       Enable insecure connections ($FUZZBALL_INSECURE)
  -j, --json           Output in json ($FUZZBALL_JSON)

Install a storage driver

As a concrete example for storage driver management let’s set up a minimal NFS driver that will allow fuzzball to provision storage volumes from NFS servers for jobs running in containers. Volumes are backed by subdirectories on the NFS server. Here is a minimal driver definition for an NFS driver.

# cat <<'__EOF__' > nfs_storage_definition.yaml
version: v1
name: nfs.csi.k8s.io
description: NFS CSI Driver
image:
  uri: docker://registry.k8s.io/sig-storage/nfsplugin:v4.2.0
args:
  - --nodeid=${CSI_NODE_ID}
  - --endpoint=${CSI_ENDPOINT}
  - -v=10
__EOF__

Please note that the single quotes around '__EOF__' are necessary. The yaml file is intended to include the literal strings ${CSI_NODE_ID} and ${CSI_ENDPOINT} rather than the current (non-existent) values of these variables.

We can install this driver for our organization with:

# fuzzball admin storage driver install nfs_storage_definition.yaml

The command should return a message like:

Driver "9c35fed2-26a1-3313-97f6-f25dc2366dd9" installed

Obtain information about installed storage drivers

Administrators can view the storage driver installed for an organization like so:

# fuzzball admin storage driver list
ID                                   | NAME           | DESCRIPTION    | CREATED TIME          | LAST UPDATED          | CLUSTER
9c35fed2-26a1-3313-97f6-f25dc2366dd9 | nfs.csi.k8s.io | NFS CSI Driver | 2025-04-14 07:31:04PM | 2025-04-14 07:31:04PM | unset-cluster

To obtain more detailed information in a machine-parsable format use the --json flag like so:

# fuzzball admin storage driver info --json 9c35fed2-26a1-3313-97f6-f25dc2366dd9
{
  "id": "9c35fed2-26a1-3313-97f6-f25dc2366dd9",
  "create_time": {
    "seconds": 1744659064,
    "nanos": 687581000
  },
  "update_time": {
    "seconds": 1744659064,
    "nanos": 687582000
  },
  "driver": {
    "version": "v1",
    "name": "nfs.csi.k8s.io",
    "description": "NFS CSI Driver",
    "image": {
      "uri": "docker://registry.k8s.io/sig-storage/nfsplugin:v4.2.0"
    },
    "args": [
      "--nodeid=${CSI_NODE_ID}",
      "--endpoint=${CSI_ENDPOINT}",
      "-v=10"
    ]
  },
  "driver_error": {},
  "cluster_id": "36ad0001-35f7-c17d-2f75-e910a16292cf"
}

Update a storage driver

You can update a storage driver definition for an organization. Note that name field is immutable after the driver install, so changing the driver name will return an error when updating.

To update a driver according to a new specification file issue the following command.

# fuzzball admin storage driver update -i 9c35fed2-26a1-3313-97f6-f25dc2366dd9 nfs_storage_definition_new.yaml

Uninstall a storage driver

Administrators can also uninstall a storage driver for an organization. If there are existing storage volumes that depend on the driver, the uninstall command will return an error reporting that there are storage volumes that depend upon it.

To uninstall a driver you would use the uninstall subcommand like so:

# fuzzball admin storage driver uninstall 8be7e85f-6e23-4f91-9d90-b848b9f6f0a3

We will continue to use the NFS driver when we set up storage classes later so if you delete your driver for testing you will have to re-install an NFS driver to follow the examples in the next sections.