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)
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
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"
}
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
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.