Skip to content

rune volume

Terminal window
rune volume <subcommand> [flags]
rune vol <subcommand> [flags] # short alias

A Volume is a namespaced unit of durable storage backed by a driver. See the storage concept for the lifecycle and how services consume them via claim / claimTemplate.

CommandPurpose
rune volume listList volumes in a namespace.
rune volume get <name>Show one volume’s full status.
rune volume delete <name>Delete the row; reclaim policy decides the rest.
rune volume detach <name>Clear Bound state so a replacement can attach.
rune volume retry-provision <name>Re-drive a Failed/Stalled volume back to Pending.
rune volume restore <name>Provision a new volume from a snapshot.
Terminal window
# List in current namespace
rune volume list
# Across all namespaces
rune vol list -A
# Show one
rune volume get pgdata-postgres-0 -n prod -o yaml
# Apply from a spec — Volumes are created via `rune cast`, the same
# declarative path used for every other resource.
rune cast web-data.yaml
# Delete (reclaim policy applies — see storage concept)
rune volume delete web-data
# Volume stuck Bound after the instance vanished — break the bind
rune volume detach pgdata-postgres-1 -n prod
# Provisioning failed — fix the underlying problem, then re-drive
rune volume retry-provision pgdata-postgres-1 -n prod
# Restore from a snapshot into a new volume row
rune volume restore web-data-restored \
--from-snapshot web-data-2025-11-15 \
--snapshot-namespace prod \
--storage-class local \
-n prod
volume:
name: web-data
namespace: default
storageClassName: local
size: 5Gi
accessMode: ReadWriteOnce
reclaimPolicy: retain

For local-host, declare the host path on the volume itself:

volume:
name: shared-cache
namespace: default
storageClassName: local-host
size: 0 # informational — not enforced for hostPath
accessMode: ReadWriteOnce
parameters:
hostPath: /mnt/rune/shared-cache

The path must sit under one of runefile.[storage].hostPathAllowlist, and must already exist unless [storage] allowCreateMissing = true.

FlagDefaultNotes
-n, --namespacedefaultTarget namespace.
-A, --all-namespacesfalseList across every namespace.
-o, --outputtabletable, json, yaml, name.
-l, --selectorLabel selector.
--field-selectorField selector (key=value,key=value).
FlagDefaultNotes
-n, --namespacedefaultTarget namespace.
-o, --outputtabletable, json, yaml.

delete <name> / detach <name> / retry-provision <name>

Section titled “delete <name> / detach <name> / retry-provision <name>”
FlagDefaultNotes
-n, --namespacedefaultTarget namespace.
FlagDefaultNotes
-n, --namespacedefaultNamespace for the new volume.
--from-snapshotRequired. Snapshot name to restore from.
--snapshot-namespace-nNamespace of the source snapshot. Defaults to -n.
--storage-classStorage class for the new volume. Defaults to source.